aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
Diffstat (limited to 'bfd')
-rw-r--r--bfd/archive.c8
-rw-r--r--bfd/bfd-in2.h15
-rw-r--r--bfd/bfd.c42
-rw-r--r--bfd/coff-alpha.c119
-rw-r--r--bfd/coffgen.c15
-rw-r--r--bfd/compress.c51
-rw-r--r--bfd/cpu-riscv.c1
-rw-r--r--bfd/cpu-riscv.h1
-rw-r--r--bfd/elf-eh-frame.c2
-rw-r--r--bfd/elf.c119
-rw-r--r--bfd/elf32-arm.c3
-rw-r--r--bfd/elf32-sh.c4
-rw-r--r--bfd/elf64-s390.c19
-rw-r--r--bfd/elf64-x86-64.c14
-rw-r--r--bfd/elflink.c8
-rw-r--r--bfd/elfnn-aarch64.c3
-rw-r--r--bfd/elfnn-loongarch.c370
-rw-r--r--bfd/elfnn-riscv.c302
-rw-r--r--bfd/elfxx-aarch64.c2
-rw-r--r--bfd/elfxx-loongarch.c17
-rw-r--r--bfd/elfxx-riscv.c361
-rw-r--r--bfd/elfxx-riscv.h19
-rw-r--r--bfd/libbfd.h1
-rw-r--r--bfd/pe-aarch64.c2
-rw-r--r--bfd/pe-arm.c2
-rw-r--r--bfd/pe-i386.c2
-rw-r--r--bfd/pe-x86_64.c2
-rw-r--r--bfd/peXXigen.c51
-rw-r--r--bfd/pei-aarch64.c2
-rw-r--r--bfd/pei-arm.c2
-rw-r--r--bfd/pei-i386.c2
-rw-r--r--bfd/pei-loongarch64.c2
-rw-r--r--bfd/pei-riscv64.c2
-rw-r--r--bfd/pei-x86_64.c2
-rw-r--r--bfd/po/ms.po2670
-rw-r--r--bfd/reloc.c6
-rw-r--r--bfd/syms.c1
-rw-r--r--bfd/version.h2
38 files changed, 2727 insertions, 1519 deletions
diff --git a/bfd/archive.c b/bfd/archive.c
index 6cda73c..8e20554 100644
--- a/bfd/archive.c
+++ b/bfd/archive.c
@@ -2399,12 +2399,8 @@ _bfd_compute_and_write_armap (bfd *arch, unsigned int elength)
map = new_map;
}
- if (syms[src_count]->name != NULL
- && syms[src_count]->name[0] == '_'
- && syms[src_count]->name[1] == '_'
- && strcmp (syms[src_count]->name
- + (syms[src_count]->name[2] == '_'),
- "__gnu_lto_slim") == 0
+ if (bfd_lto_slim_symbol_p (current,
+ syms[src_count]->name)
&& report_plugin_err)
{
report_plugin_err = false;
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index ec60f23..d5d1b51 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -2302,6 +2302,16 @@ bfd_get_lto_type (const bfd *abfd)
return abfd->lto_type;
}
+static inline bool
+bfd_lto_slim_symbol_p (const bfd *abfd, const char *name)
+{
+ return (bfd_get_lto_type (abfd) != lto_non_ir_object
+ && name != NULL
+ && name[0] == '_'
+ && name[1] == '_'
+ && strcmp (name + (name[2] == '_'), "__gnu_lto_slim") == 0);
+}
+
static inline flagword
bfd_get_file_flags (const bfd *abfd)
{
@@ -7015,6 +7025,11 @@ enum bfd_reloc_code_real
assembler and not (currently) written to any object files. */
BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC,
+ /* AArch64 9 bit pc-relative conditional branch and compare & branch.
+ The lowest two bits must be zero and are not stored in the
+ instruction, giving an 11 bit signed byte offset. */
+ BFD_RELOC_AARCH64_BRANCH9,
+
/* Tilera TILEPro Relocations. */
BFD_RELOC_TILEPRO_COPY,
BFD_RELOC_TILEPRO_GLOB_DAT,
diff --git a/bfd/bfd.c b/bfd/bfd.c
index a8d1314..858ab5c 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -470,6 +470,16 @@ EXTERNAL
. return abfd->lto_type;
.}
.
+.static inline bool
+.bfd_lto_slim_symbol_p (const bfd *abfd, const char *name)
+.{
+. return (bfd_get_lto_type (abfd) != lto_non_ir_object
+. && name != NULL
+. && name[0] == '_'
+. && name[1] == '_'
+. && strcmp (name + (name[2] == '_'), "__gnu_lto_slim") == 0);
+.}
+.
.static inline flagword
.bfd_get_file_flags (const bfd *abfd)
.{
@@ -709,6 +719,12 @@ EXTERNAL
#define EXIT_FAILURE 1
#endif
+#ifdef TLS
+#define THREAD_LOCAL TLS
+#else
+#define THREAD_LOCAL
+#endif
+
/* provide storage for subsystem, stack and heap data which may have been
passed in on the command line. Ld puts this data into a bfd_link_info
@@ -799,8 +815,8 @@ const char *const bfd_errmsgs[] =
N_("#<invalid error code>")
};
-static TLS bfd_error_type bfd_error;
-static TLS char *_bfd_error_buf;
+static THREAD_LOCAL bfd_error_type bfd_error;
+static THREAD_LOCAL char *_bfd_error_buf;
/* Free any data associated with the BFD error. */
@@ -1679,7 +1695,7 @@ _bfd_per_xvec_warn (struct per_xvec_messages *messages, size_t alloc)
error_handler_sprintf; when NULL, _bfd_error_internal will be used
instead. */
-static TLS struct per_xvec_messages *error_handler_messages;
+static THREAD_LOCAL struct per_xvec_messages *error_handler_messages;
/* A special value for error_handler_messages that indicates that the
error should simply be ignored. */
@@ -2012,18 +2028,20 @@ DESCRIPTION
Initialize BFD threading. The functions passed in will be
used to lock and unlock global data structures. This may only
be called a single time in a given process. Returns true on
- success and false on error. DATA is passed verbatim to the
- lock and unlock functions. The lock and unlock functions
- should return true on success, or set the BFD error and return
- false on failure. Note also that the lock must be a recursive
- lock: BFD may attempt to acquire the lock when it is already
- held by the current thread.
+ success and false on error. On error, the caller should
+ assume that BFD cannot be used by multiple threads. DATA is
+ passed verbatim to the lock and unlock functions. The lock
+ and unlock functions should return true on success, or set the
+ BFD error and return false on failure. Note also that the
+ lock must be a recursive lock: BFD may attempt to acquire the
+ lock when it is already held by the current thread.
*/
bool
bfd_thread_init (bfd_lock_unlock_fn_type lock, bfd_lock_unlock_fn_type unlock,
void *data)
{
+#ifdef TLS
/* Both functions must be set, and this cannot have been called
before. */
if (lock == NULL || unlock == NULL || unlock_fn != NULL)
@@ -2036,6 +2054,12 @@ bfd_thread_init (bfd_lock_unlock_fn_type lock, bfd_lock_unlock_fn_type unlock,
unlock_fn = unlock;
lock_data = data;
return true;
+#else /* TLS */
+ /* If thread-local storage wasn't found by configure, we disallow
+ threaded operation. */
+ bfd_set_error (bfd_error_invalid_operation);
+ return false;
+#endif /* TLS */
}
/*
diff --git a/bfd/coff-alpha.c b/bfd/coff-alpha.c
index e2f1a4d..fcc8aef 100644
--- a/bfd/coff-alpha.c
+++ b/bfd/coff-alpha.c
@@ -517,8 +517,7 @@ alpha_ecoff_swap_reloc_in (bfd *abfd,
value is not actually a symbol index, but is instead a
special code. We put the code in the r_size field, and
clobber the symndx. */
- if (intern->r_size != 0)
- abort ();
+ BFD_ASSERT (intern->r_size == 0);
intern->r_size = intern->r_symndx;
intern->r_symndx = RELOC_SECTION_NONE;
}
@@ -526,12 +525,16 @@ alpha_ecoff_swap_reloc_in (bfd *abfd,
{
/* The IGNORE reloc generally follows a GPDISP reloc, and is
against the .lita section. The section is irrelevant. */
- if (! intern->r_extern &&
- intern->r_symndx == RELOC_SECTION_ABS)
- abort ();
+ BFD_ASSERT (intern->r_extern || intern->r_symndx != RELOC_SECTION_ABS);
if (! intern->r_extern && intern->r_symndx == RELOC_SECTION_LITA)
intern->r_symndx = RELOC_SECTION_ABS;
}
+ else if (intern->r_type == ALPHA_R_OP_STORE)
+ {
+ /* Size of 64 bits is encoded as 0 in this 6-bit field. */
+ if (intern->r_size == 0)
+ intern->r_size = 64;
+ }
}
/* Swap a reloc out. */
@@ -713,6 +716,50 @@ alpha_adjust_reloc_out (bfd *abfd ATTRIBUTE_UNUSED,
}
}
+/* Write VAL to a little-endian bitfield specified by BITOFFSET and
+ BITSIZE at CONTENTS + SECOFFSET. Verify that these parameter are
+ valid for SEC in ABFD. */
+
+static bool
+write_bit_field (bfd *abfd, asection *sec,
+ bfd_byte *contents, bfd_size_type secoffset,
+ unsigned int bitoffset, unsigned int bitsize, uint64_t val)
+{
+ if (bitsize == 0)
+ return true;
+
+ bfd_size_type secsize = bfd_get_section_limit_octets (abfd, sec);
+ unsigned int startbyte = bitoffset >> 3;
+ unsigned int endbyte = (bitoffset + bitsize - 1) >> 3;
+
+ if (secoffset > secsize || secsize - secoffset <= endbyte)
+ return false;
+
+ unsigned int startbit = bitoffset & 7;
+ unsigned int endbit = (bitoffset + bitsize - 1) & 7;
+ unsigned int mask = -1u << startbit;
+ unsigned char *p = contents + secoffset;
+ if (startbyte != endbyte)
+ {
+ p[startbyte] = (p[startbyte] & ~mask) | ((val << startbit) & mask);
+ val = val >> (8 - startbit);
+
+ for (unsigned int off = startbyte + 1; off < endbyte; ++off)
+ {
+ p[off] = val;
+ val >>= 8;
+ }
+ mask = ~(-1u << (1 + endbit));
+ }
+ else
+ {
+ val = val << startbit;
+ mask = mask & ~(-1u << (1 + endbit));
+ }
+ p[endbyte] = (p[endbyte] & ~mask) | (val & mask);
+ return true;
+}
+
/* The size of the stack for the relocation evaluator. */
#define RELOC_STACKSIZE (10)
@@ -1005,31 +1052,10 @@ alpha_ecoff_get_relocated_section_contents (bfd *abfd,
into the addend field by alpha_adjust_reloc_in. */
unsigned int offset = (rel->addend >> 8) & 0xff;
unsigned int size = rel->addend & 0xff;
- unsigned int startbyte = offset >> 3;
- unsigned int endbyte = (offset + size + 7) >> 3;
- unsigned int bytes = endbyte + 1 - startbyte;
-
- if (bytes <= 8
- && rel->address + startbyte + bytes >= rel->address
- && (rel->address + startbyte + bytes
- <= bfd_get_section_limit_octets (input_bfd, input_section)))
- {
- uint64_t val = 0;
- for (int off = bytes - 1; off >= 0; --off)
- val = (val << 8) | data[rel->address + startbyte + off];
-
- offset -= startbyte << 3;
- size -= startbyte << 3;
- uint64_t mask = (((uint64_t) 1 << size) - 1) << offset;
- val = (val & ~mask) | ((stack[--tos] << offset) & mask);
-
- for (unsigned int off = 0; off < bytes; ++off)
- {
- data[rel->address + startbyte + off] = val & 0xff;
- val >>= 8;
- }
- }
- else
+
+ if (!write_bit_field (input_bfd, input_section,
+ data, rel->address,
+ offset, size, stack[--tos]))
r = bfd_reloc_outofrange;
}
break;
@@ -1779,33 +1805,12 @@ alpha_relocate_section (bfd *output_bfd,
adjust the address of the reloc. */
if (! bfd_link_relocatable (info))
{
- unsigned int startbyte = r_offset >> 3;
- unsigned int endbyte = (r_offset + r_size + 7) >> 3;
- unsigned int bytes = endbyte + 1 - startbyte;
-
- if (bytes <= 8
- && r_vaddr >= input_section->vma
- && r_vaddr - input_section->vma < input_section->size
- && (input_section->size - (r_vaddr - input_section->vma)
- >= startbyte + bytes))
- {
- bfd_byte *p = contents + (r_vaddr - input_section->vma);
- uint64_t val = 0;
- for (int off = bytes - 1; off >= 0; --off)
- val = (val << 8) | p[startbyte + off];
-
- r_offset -= startbyte << 3;
- r_size -= startbyte << 3;
- uint64_t mask = (((uint64_t) 1 << r_size) - 1) << r_offset;
- val = (val & ~mask) | ((stack[--tos] << r_offset) & mask);
-
- for (unsigned int off = 0; off < bytes; ++off)
- {
- p[startbyte + off] = val & 0xff;
- val >>= 8;
- }
- }
- else
+ if (tos == 0)
+ r = bfd_reloc_notsupported;
+ else if (!write_bit_field (input_bfd, input_section,
+ contents,
+ r_vaddr - input_section->vma,
+ r_offset, r_size, stack[--tos]))
r = bfd_reloc_outofrange;
}
break;
diff --git a/bfd/coffgen.c b/bfd/coffgen.c
index ab4d790..c1811cb 100644
--- a/bfd/coffgen.c
+++ b/bfd/coffgen.c
@@ -44,6 +44,7 @@
#include "libcoff.h"
#include "elf-bfd.h"
#include "hashtab.h"
+#include "safe-ctype.h"
/* Extract a long section name at STRINDEX and copy it to the bfd objstack.
Return NULL in case of error. */
@@ -3120,6 +3121,19 @@ coff_gc_sweep_symbol (struct coff_link_hash_entry *h,
typedef bool (*gc_sweep_hook_fn)
(bfd *, struct bfd_link_info *, asection *, const struct internal_reloc *);
+static inline bool
+is_subsection (const char *str, const char *prefix)
+{
+ size_t n = strlen (prefix);
+ if (strncmp (str, prefix, n) != 0)
+ return false;
+ if (str[n] == 0)
+ return true;
+ else if (str[n] != '$')
+ return false;
+ return ISDIGIT (str[n + 1]) && str[n + 2] == 0;
+}
+
static bool
coff_gc_sweep (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info *info)
{
@@ -3141,6 +3155,7 @@ coff_gc_sweep (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info *info)
else if (startswith (o->name, ".idata")
|| startswith (o->name, ".pdata")
|| startswith (o->name, ".xdata")
+ || is_subsection (o->name, ".didat")
|| startswith (o->name, ".rsrc"))
o->gc_mark = 1;
diff --git a/bfd/compress.c b/bfd/compress.c
index b635750..2878837 100644
--- a/bfd/compress.c
+++ b/bfd/compress.c
@@ -517,40 +517,23 @@ decompress_contents (bool is_zstd, bfd_byte *compressed_buffer,
#endif
}
- z_stream strm;
- int rc;
-
/* It is possible the section consists of several compressed
buffers concatenated together, so we uncompress in a loop. */
- /* PR 18313: The state field in the z_stream structure is supposed
- to be invisible to the user (ie us), but some compilers will
- still complain about it being used without initialisation. So
- we first zero the entire z_stream structure and then set the fields
- that we need. */
- memset (& strm, 0, sizeof strm);
- strm.avail_in = compressed_size;
- strm.next_in = (Bytef*) compressed_buffer;
- strm.avail_out = uncompressed_size;
- /* FIXME: strm.avail_in and strm.avail_out are typically unsigned
- int. Supporting sizes that don't fit in an unsigned int is
- possible but will require some rewriting of this function. */
- if (strm.avail_in != compressed_size || strm.avail_out != uncompressed_size)
- return false;
-
- BFD_ASSERT (Z_OK == 0);
- rc = inflateInit (&strm);
- while (strm.avail_in > 0 && strm.avail_out > 0)
+ do
{
+ uLongf dst_len = uncompressed_size;
+ uLong src_len = compressed_size;
+ int rc = uncompress2 ((Bytef *) uncompressed_buffer, &dst_len,
+ (Bytef *) compressed_buffer, &src_len);
if (rc != Z_OK)
- break;
- strm.next_out = ((Bytef*) uncompressed_buffer
- + (uncompressed_size - strm.avail_out));
- rc = inflate (&strm, Z_FINISH);
- if (rc != Z_STREAM_END)
- break;
- rc = inflateReset (&strm);
+ return false;
+ uncompressed_buffer += dst_len;
+ uncompressed_size -= dst_len;
+ compressed_buffer += src_len;
+ compressed_size -= src_len;
}
- return inflateEnd (&strm) == Z_OK && rc == Z_OK && strm.avail_out == 0;
+ while (compressed_size > 0 && uncompressed_size > 0);
+ return compressed_size == 0 && uncompressed_size == 0;
}
/* Compress section contents using zlib/zstd and store
@@ -987,7 +970,6 @@ bfd_init_section_decompress_status (bfd *abfd, sec_ptr sec)
bfd_size_type uncompressed_size;
unsigned int uncompressed_alignment_power = 0;
enum compression_type ch_type;
- z_stream strm;
compression_header_size = bfd_get_compression_header_size (abfd, sec);
if (compression_header_size > MAX_COMPRESSION_HEADER_SIZE)
@@ -1025,10 +1007,11 @@ bfd_init_section_decompress_status (bfd *abfd, sec_ptr sec)
return false;
}
- /* PR28530, reject sizes unsupported by decompress_contents. */
- strm.avail_in = sec->size;
- strm.avail_out = uncompressed_size;
- if (strm.avail_in != sec->size || strm.avail_out != uncompressed_size)
+ /* PR28530, reject sizes unsupported by decompress_contents. zlib
+ supports only up to 4 GiB input on machines whose long is 32 bits. */
+ if (ch_type == ch_compress_zlib
+ && (sec->size != (uLong) sec->size
+ || uncompressed_size != (uLongf) uncompressed_size))
{
bfd_set_error (bfd_error_nonrepresentable_section);
return false;
diff --git a/bfd/cpu-riscv.c b/bfd/cpu-riscv.c
index ea25e78..67ee601 100644
--- a/bfd/cpu-riscv.c
+++ b/bfd/cpu-riscv.c
@@ -118,6 +118,7 @@ const struct riscv_spec riscv_priv_specs[] =
{"1.10", PRIV_SPEC_CLASS_1P10},
{"1.11", PRIV_SPEC_CLASS_1P11},
{"1.12", PRIV_SPEC_CLASS_1P12},
+ {"1.13", PRIV_SPEC_CLASS_1P13},
};
/* Get the corresponding CSR version class by giving privilege
diff --git a/bfd/cpu-riscv.h b/bfd/cpu-riscv.h
index 93a3f52..b07fcf8 100644
--- a/bfd/cpu-riscv.h
+++ b/bfd/cpu-riscv.h
@@ -33,6 +33,7 @@ enum riscv_spec_class
PRIV_SPEC_CLASS_1P10,
PRIV_SPEC_CLASS_1P11,
PRIV_SPEC_CLASS_1P12,
+ PRIV_SPEC_CLASS_1P13,
PRIV_SPEC_CLASS_DRAFT,
};
diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c
index 78b3ecb..0250a8f 100644
--- a/bfd/elf-eh-frame.c
+++ b/bfd/elf-eh-frame.c
@@ -2506,7 +2506,7 @@ write_dwarf_eh_frame_hdr (bfd *abfd, struct bfd_link_info *info)
/* FIXME: octets_per_byte. */
if (!bfd_set_section_contents (abfd, sec->output_section, contents,
(file_ptr) sec->output_offset,
- sec->size))
+ size))
retval = false;
out:
free (contents);
diff --git a/bfd/elf.c b/bfd/elf.c
index b6f5070..ee894eb 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -504,17 +504,44 @@ bfd_elf_get_elf_syms (bfd *ibfd,
shndx = extshndx_buf;
isym < isymend;
esym += extsym_size, isym++, shndx = shndx != NULL ? shndx + 1 : NULL)
- if (!(*bed->s->swap_symbol_in) (ibfd, esym, shndx, isym))
- {
- symoffset += (esym - (bfd_byte *) extsym_buf) / extsym_size;
- /* xgettext:c-format */
- _bfd_error_handler (_("%pB symbol number %lu references"
- " nonexistent SHT_SYMTAB_SHNDX section"),
- ibfd, (unsigned long) symoffset);
- free (alloc_intsym);
- intsym_buf = NULL;
- goto out1;
- }
+ {
+ if (!(*bed->s->swap_symbol_in) (ibfd, esym, shndx, isym))
+ {
+ symoffset += (esym - (bfd_byte *) extsym_buf) / extsym_size;
+ /* xgettext:c-format */
+ _bfd_error_handler (_("%pB symbol number %lu references"
+ " nonexistent SHT_SYMTAB_SHNDX section"),
+ ibfd, (unsigned long) symoffset);
+ free (alloc_intsym);
+ intsym_buf = NULL;
+ goto out1;
+ }
+
+ /* PR 33019: Do not accept unsupported binding values - they will
+ likely cause problems later on. */
+ int bind = ELF_ST_BIND (isym->st_info);
+ if (bind > STB_WEAK && bind < STB_LOOS)
+ {
+ /* xgettext:c-format */
+ _bfd_error_handler (_("%pB symbol number %lu uses unsupported binding of %u"),
+ ibfd, (unsigned long) (isym - intsym_buf), bind);
+ free (alloc_intsym);
+ intsym_buf = NULL;
+ goto out1;
+ }
+
+ /* Paranoia: Also refuse to accept the only undefined symbol type: 7. */
+ int t = ELF_ST_TYPE (isym->st_info);
+ if (t == 7)
+ {
+ /* xgettext:c-format */
+ _bfd_error_handler (_("%pB symbol number %lu uses unsupported type of %u"),
+ ibfd, (unsigned long) (isym - intsym_buf), t);
+ free (alloc_intsym);
+ intsym_buf = NULL;
+ goto out1;
+ }
+ }
out1:
_bfd_munmap_temporary (alloc_extshndx, alloc_extshndx_size);
@@ -3469,7 +3496,7 @@ _bfd_elf_init_reloc_shdr (bfd *abfd,
struct bfd_elf_section_reloc_data *reldata,
const char *sec_name,
bool use_rela_p,
- bool delay_st_name_p)
+ bool delay_sh_name_p)
{
Elf_Internal_Shdr *rel_hdr;
const struct elf_backend_data *bed = get_elf_backend_data (abfd);
@@ -3480,7 +3507,7 @@ _bfd_elf_init_reloc_shdr (bfd *abfd,
return false;
reldata->hdr = rel_hdr;
- if (delay_st_name_p)
+ if (delay_sh_name_p)
rel_hdr->sh_name = (unsigned int) -1;
else if (!_bfd_elf_set_reloc_sh_name (abfd, rel_hdr, sec_name,
use_rela_p))
@@ -3526,7 +3553,7 @@ elf_fake_sections (bfd *abfd, asection *asect, void *fsarg)
Elf_Internal_Shdr *this_hdr;
unsigned int sh_type;
const char *name = asect->name;
- bool delay_st_name_p = false;
+ bool delay_sh_name_p = false;
bfd_vma mask;
if (arg->failed)
@@ -3543,16 +3570,17 @@ elf_fake_sections (bfd *abfd, asection *asect, void *fsarg)
&& (abfd->flags & BFD_COMPRESS) != 0
&& (asect->flags & SEC_DEBUGGING) != 0
&& (asect->flags & SEC_ALLOC) == 0
+ && (asect->flags & SEC_HAS_CONTENTS) != 0
&& name[1] == 'd'
&& name[6] == '_')
{
/* If this section will be compressed, delay adding section
name to section name section after it is compressed in
_bfd_elf_assign_file_positions_for_non_load. */
- delay_st_name_p = true;
+ delay_sh_name_p = true;
}
- if (delay_st_name_p)
+ if (delay_sh_name_p)
this_hdr->sh_name = (unsigned int) -1;
else
{
@@ -3751,14 +3779,14 @@ elf_fake_sections (bfd *abfd, asection *asect, void *fsarg)
{
if (esd->rel.count && esd->rel.hdr == NULL
&& !_bfd_elf_init_reloc_shdr (abfd, &esd->rel, name,
- false, delay_st_name_p))
+ false, delay_sh_name_p))
{
arg->failed = true;
return;
}
if (esd->rela.count && esd->rela.hdr == NULL
&& !_bfd_elf_init_reloc_shdr (abfd, &esd->rela, name,
- true, delay_st_name_p))
+ true, delay_sh_name_p))
{
arg->failed = true;
return;
@@ -3769,7 +3797,7 @@ elf_fake_sections (bfd *abfd, asection *asect, void *fsarg)
? &esd->rela : &esd->rel),
name,
asect->use_rela_p,
- delay_st_name_p))
+ delay_sh_name_p))
{
arg->failed = true;
return;
@@ -3943,20 +3971,17 @@ bfd_elf_set_group_contents (bfd *abfd, asection *sec, void *failedptrarg)
break;
}
- /* We should always get here with loc == sec->contents + 4, but it is
- possible to craft bogus SHT_GROUP sections that will cause segfaults
- in objcopy without checking loc here and in the loop above. */
- if (loc == sec->contents)
- BFD_ASSERT (0);
- else
+ /* We should always get here with loc == sec->contents + 4. Return
+ an error for bogus SHT_GROUP sections. */
+ loc -= 4;
+ if (loc != sec->contents)
{
- loc -= 4;
- if (loc != sec->contents)
- {
- BFD_ASSERT (0);
- memset (sec->contents + 4, 0, loc - sec->contents);
- loc = sec->contents;
- }
+ /* xgettext:c-format */
+ _bfd_error_handler (_("%pB: corrupted group section: `%pA'"),
+ abfd, sec);
+ bfd_set_error (bfd_error_bad_value);
+ *failedptr = true;
+ return;
}
H_PUT_32 (abfd, sec->flags & SEC_LINK_ONCE ? GRP_COMDAT : 0, loc);
@@ -4474,7 +4499,11 @@ elf_map_symbols (bfd *abfd, unsigned int *pnum_locals)
asection *sec = sym->section;
if (sec->owner != abfd)
- sec = sec->output_section;
+ {
+ sec = sec->output_section;
+ if (sec == NULL)
+ return false;
+ }
sect_syms[sec->index] = syms[idx];
}
@@ -10392,6 +10421,12 @@ elfcore_grok_xstatereg (bfd *abfd, Elf_Internal_Note *note)
}
static bool
+elfcore_grok_sspreg (bfd *abfd, Elf_Internal_Note *note)
+{
+ return elfcore_make_note_pseudosection (abfd, ".reg-ssp", note);
+}
+
+static bool
elfcore_grok_ppc_vmx (bfd *abfd, Elf_Internal_Note *note)
{
return elfcore_make_note_pseudosection (abfd, ".reg-ppc-vmx", note);
@@ -11086,6 +11121,13 @@ elfcore_grok_note (bfd *abfd, Elf_Internal_Note *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)
@@ -12536,6 +12578,15 @@ elfcore_write_xstatereg (bfd *abfd, char *buf, int *bufsiz,
note_name, NT_X86_XSTATE, xfpregs, size);
}
+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);
+}
+
char *
elfcore_write_x86_segbases (bfd *abfd, char *buf, int *bufsiz,
const void *regs, int size)
@@ -13131,6 +13182,8 @@ elfcore_write_register_note (bfd *abfd,
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)
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 5a87462..c913f2b 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -18394,6 +18394,9 @@ elf32_arm_output_arch_local_syms (bfd *output_bfd,
struct arm_local_iplt_info **local_iplt;
unsigned int i, num_syms;
+ if (!is_arm_elf (input_bfd))
+ continue;
+
local_iplt = elf32_arm_local_iplt (input_bfd);
if (local_iplt != NULL)
{
diff --git a/bfd/elf32-sh.c b/bfd/elf32-sh.c
index 39a837c..abb7f5e 100644
--- a/bfd/elf32-sh.c
+++ b/bfd/elf32-sh.c
@@ -1429,9 +1429,9 @@ sh_elf_swap_insns (bfd *abfd, asection *sec, void *relocs,
off = irel->r_offset + 4 + irel->r_addend;
if (off == addr)
- irel->r_offset += 2;
+ irel->r_addend += 2;
else if (off == addr + 2)
- irel->r_offset -= 2;
+ irel->r_addend -= 2;
}
if (irel->r_offset == addr)
diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c
index 259ad13..e758d08 100644
--- a/bfd/elf64-s390.c
+++ b/bfd/elf64-s390.c
@@ -2276,9 +2276,6 @@ elf_s390_relocate_section (bfd *output_bfd,
|| SYMBOL_REFERENCES_LOCAL (info, h)
|| resolved_to_zero)
{
- Elf_Internal_Sym *isym;
- asection *sym_sec;
-
/* This is actually a static link, or it is a
-Bsymbolic link and the symbol is defined
locally, or the symbol was forced to be local
@@ -2318,16 +2315,13 @@ elf_s390_relocate_section (bfd *output_bfd,
& 0xff00f000) == 0xe300c000
&& bfd_get_8 (input_bfd,
contents + rel->r_offset + 3) == 0x04))
- && (isym = bfd_sym_from_r_symndx (&htab->elf.sym_cache,
- input_bfd, r_symndx))
- && isym->st_shndx != SHN_ABS
+ && !bfd_is_abs_symbol (&h->root)
&& h != htab->elf.hdynamic
&& h != htab->elf.hgot
&& h != htab->elf.hplt
- && !(isym->st_value & 1)
- && (sym_sec = bfd_section_from_elf_index (input_bfd,
- isym->st_shndx))
- && sym_sec->alignment_power)
+ && !((h->root.u.def.value
+ + sec->output_section->vma
+ + sec->output_offset) & 1))
{
unsigned short new_insn =
(0xc000 | (bfd_get_8 (input_bfd,
@@ -3204,13 +3198,14 @@ elf_s390_relocate_section (bfd *output_bfd,
_bfd_error_handler
/* xgettext:c-format */
(_("%pB(%pA+%#" PRIx64 "): "
- "misaligned symbol `%s' (%#" PRIx64 ") for relocation %s"),
+ "relocation %s against misaligned symbol `%s' (%#" PRIx64 ") in %pB"),
input_bfd,
input_section,
(uint64_t) rel->r_offset,
+ howto->name,
h->root.root.string,
(uint64_t)relocation,
- howto->name);
+ sec->owner);
return false;
}
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index 1e08f2e..6867d49 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -2552,7 +2552,13 @@ elf_x86_64_scan_relocs (bfd *abfd, struct bfd_link_info *info,
}
howto = elf_x86_64_rtype_to_howto (abfd, r_type);
- if (rel->r_offset + bfd_get_reloc_size (howto) > sec->size)
+ if (howto == NULL)
+ {
+ _bfd_error_handler (_("%pB: unsupported relocation type %#x"),
+ abfd, r_type);
+ goto error_return;
+ }
+ if (!bfd_reloc_offset_in_range (howto, abfd, sec, rel->r_offset))
{
/* xgettext:c-format */
_bfd_error_handler
@@ -5241,6 +5247,9 @@ elf_x86_64_finish_dynamic_symbol (bfd *output_bfd,
+ got_offset);
if (PLT_LOCAL_IFUNC_P (info, h))
{
+ if (h->root.u.def.section == NULL)
+ return false;
+
info->callbacks->minfo (_("Local IFUNC function `%s' in %pB\n"),
h->root.root.string,
h->root.u.def.section->owner);
@@ -5409,6 +5418,9 @@ elf_x86_64_finish_dynamic_symbol (bfd *output_bfd,
}
if (SYMBOL_REFERENCES_LOCAL_P (info, h))
{
+ if (h->root.u.def.section == NULL)
+ return false;
+
info->callbacks->minfo (_("Local IFUNC function `%s' in %pB\n"),
h->root.root.string,
h->root.u.def.section->owner);
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 919f2a7..666399b 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -12232,9 +12232,9 @@ elf_link_input_bfd (struct elf_final_link_info *flinfo, bfd *input_bfd)
break;
case SEC_INFO_TYPE_SFRAME:
{
- /* Merge .sframe sections into the ctf frame encoder
- context of the output_bfd's section. The final .sframe
- output section will be written out later. */
+ /* Merge SFrame section into the SFrame encoder context of the
+ output_bfd's section. The final .sframe output section will
+ be written out later. */
if (!_bfd_elf_merge_section_sframe (output_bfd, flinfo->info,
o, contents))
return false;
@@ -14058,7 +14058,7 @@ _bfd_elf_gc_mark_rsec (struct bfd_link_info *info, asection *sec,
h = get_ext_sym_hash_from_cookie (cookie, r_symndx);
if (h == NULL)
{
- /* A corrup tinput file can lead to a situation where the index
+ /* A corrupt input file can lead to a situation where the index
does not reference either a local or an external symbol. */
if (r_symndx >= cookie->locsymcount)
return NULL;
diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
index 548da1f..8f39920 100644
--- a/bfd/elfnn-aarch64.c
+++ b/bfd/elfnn-aarch64.c
@@ -2268,6 +2268,9 @@ elfNN_aarch64_howto_from_bfd_reloc (bfd_reloc_code_real_type code)
if (code == BFD_RELOC_AARCH64_NONE)
return &elfNN_aarch64_howto_none;
+ if (code == BFD_RELOC_AARCH64_BRANCH9)
+ return &elfNN_aarch64_howto_none;
+
return NULL;
}
diff --git a/bfd/elfnn-loongarch.c b/bfd/elfnn-loongarch.c
index faad512..a480a70 100644
--- a/bfd/elfnn-loongarch.c
+++ b/bfd/elfnn-loongarch.c
@@ -25,6 +25,7 @@
#define ARCH_SIZE NN
#include "elf-bfd.h"
#include "objalloc.h"
+#include "splay-tree.h"
#include "elf/loongarch.h"
#include "elfxx-loongarch.h"
#include "opcode/loongarch.h"
@@ -134,6 +135,10 @@ struct loongarch_elf_link_hash_table
a partially updated state (some sections have vma updated but the
others do not), and it's unsafe to do the normal relaxation. */
bool layout_mutating_for_relr;
+
+ /* Pending relaxation (byte deletion) operations meant for roughly
+ sequential access. */
+ splay_tree pending_delete_ops;
};
struct loongarch_elf_section_data
@@ -2933,11 +2938,21 @@ perform_relocation (const Elf_Internal_Rela *rel, asection *input_section,
{
value -= sec_addr (input_section) + rel->r_offset;
value += rel->r_addend;
- bfd_vma word = bfd_get (howto->bitsize, input_bfd,
- contents + rel->r_offset);
- word = (word & ~howto->dst_mask) | (value & howto->dst_mask);
- bfd_put (howto->bitsize, input_bfd, word, contents + rel->r_offset);
- r = bfd_reloc_ok;
+ /* Check overflow. */
+ if (ELFNN_R_TYPE (rel->r_info) == R_LARCH_32_PCREL)
+ {
+ r = loongarch_reloc_rewrite_imm_insn (rel, input_section,
+ howto, input_bfd,
+ contents, value);
+ }
+ else
+ {
+ bfd_vma word = bfd_get (howto->bitsize, input_bfd,
+ contents + rel->r_offset);
+ word = (word & ~howto->dst_mask) | (value & howto->dst_mask);
+ bfd_put (howto->bitsize, input_bfd, word, contents + rel->r_offset);
+ r = bfd_reloc_ok;
+ }
break;
}
@@ -4714,43 +4729,230 @@ loongarch_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
return !fatal;
}
-static bool
+/* A pending delete op during a linker relaxation trip, to be stored in a
+ splay tree.
+ The key is the starting offset of this op's deletion range, interpreted
+ as if no delete op were executed for this trip. */
+struct pending_delete_op
+{
+ /* Number of bytes to delete at the address. */
+ bfd_size_type size;
+
+ /* The total offset adjustment at the address as if all preceding delete
+ ops had been executed. Used for calculating expected addresses after
+ relaxation without actually adjusting anything. */
+ bfd_size_type cumulative_offset;
+};
+
+static int
+pending_delete_op_compare (splay_tree_key a, splay_tree_key b)
+{
+ bfd_vma off_a = (bfd_vma)a;
+ bfd_vma off_b = (bfd_vma)b;
+
+ if (off_a < off_b)
+ return -1;
+ else if (off_a > off_b)
+ return 1;
+ else
+ return 0;
+}
+
+static void *
+_allocate_on_bfd (int wanted, void *data)
+{
+ bfd *abfd = (bfd *)data;
+ return bfd_alloc (abfd, wanted);
+}
+
+static void
+_deallocate_on_bfd (void *p ATTRIBUTE_UNUSED, void *data ATTRIBUTE_UNUSED)
+{
+ /* Nothing to do; the data will get released along with the associated BFD
+ or an early bfd_release call. */
+}
+
+static splay_tree
+pending_delete_ops_new (bfd *abfd)
+{
+ /* The node values are allocated with bfd_zalloc, so they are automatically
+ taken care of at BFD release time. */
+ return splay_tree_new_with_allocator (pending_delete_op_compare, NULL, NULL,
+ _allocate_on_bfd, _deallocate_on_bfd, abfd);
+}
+
+static bfd_vma
+loongarch_calc_relaxed_addr (struct bfd_link_info *info, bfd_vma offset)
+{
+ struct loongarch_elf_link_hash_table *htab = loongarch_elf_hash_table (info);
+ splay_tree pdops = htab->pending_delete_ops;
+ struct pending_delete_op *op;
+ splay_tree_node node;
+
+ BFD_ASSERT (pdops != NULL);
+
+ /* Find the op that starts just before the given address. */
+ node = splay_tree_predecessor (pdops, (splay_tree_key)offset);
+ if (node == NULL)
+ /* Nothing has been deleted yet. */
+ return offset;
+ BFD_ASSERT (((bfd_vma)node->key) < offset);
+ op = (struct pending_delete_op *)node->value;
+
+ /* If offset is inside this op's range, it is actually one of the deleted
+ bytes, so the adjusted node->key should be returned in this case. */
+ bfd_vma op_end_off = (bfd_vma)node->key + op->size;
+ if (offset < op_end_off)
+ {
+ offset = (bfd_vma)node->key;
+ node = splay_tree_predecessor (pdops, node->key);
+ op = node ? (struct pending_delete_op *)node->value : NULL;
+ }
+
+ return offset - (op ? op->cumulative_offset : 0);
+}
+
+static void
loongarch_relax_delete_bytes (bfd *abfd,
- asection *sec,
bfd_vma addr,
size_t count,
struct bfd_link_info *link_info)
{
+ struct loongarch_elf_link_hash_table *htab
+ = loongarch_elf_hash_table (link_info);
+ splay_tree pdops = htab->pending_delete_ops;
+ splay_tree_node node;
+ struct pending_delete_op *op = NULL, *new_op = NULL;
+ bool need_new_node = true;
+
+ if (count == 0)
+ return;
+
+ BFD_ASSERT (pdops != NULL);
+
+ node = splay_tree_predecessor (pdops, addr);
+ if (node)
+ {
+ op = (struct pending_delete_op *)node->value;
+ if ((bfd_vma)node->key + op->size >= addr)
+ {
+ /* The previous op already covers this offset, coalesce the new op
+ into it. */
+ op->size += count;
+ op->cumulative_offset += count;
+ need_new_node = false;
+ }
+ }
+
+ if (need_new_node)
+ {
+ new_op = bfd_zalloc (abfd, sizeof (struct pending_delete_op));
+ new_op->size = count;
+ new_op->cumulative_offset = (op ? op->cumulative_offset : 0) + count;
+ node = splay_tree_insert (pdops, (splay_tree_key)addr,
+ (splay_tree_value)new_op);
+ }
+
+ /* Adjust all cumulative offsets after this op. At this point either:
+ - a new node is created, in which case `node` has been updated with the
+ new value, or
+ - an existing node is to be reused, in which case `node` is untouched by
+ the new node logic above and appropriate to use,
+ so we can just re-use `node` here. */
+ for (node = splay_tree_successor (pdops, node->key); node != NULL;
+ node = splay_tree_successor (pdops, node->key))
+ {
+ op = (struct pending_delete_op *)node->value;
+ op->cumulative_offset += count;
+ }
+}
+
+static void
+loongarch_relax_perform_deletes (bfd *abfd, asection *sec,
+ struct bfd_link_info *link_info)
+{
unsigned int i, symcount;
bfd_vma toaddr = sec->size;
struct elf_link_hash_entry **sym_hashes = elf_sym_hashes (abfd);
Elf_Internal_Shdr *symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
unsigned int sec_shndx = _bfd_elf_section_from_bfd_section (abfd, sec);
struct bfd_elf_section_data *data = elf_section_data (sec);
- bfd_byte *contents = data->this_hdr.contents;
+ bfd_byte *contents = data->this_hdr.contents, *contents_end = NULL;
struct relr_entry *relr = loongarch_elf_section_data (sec)->relr;
struct loongarch_elf_link_hash_table *htab =
loongarch_elf_hash_table (link_info);
struct relr_entry *relr_end = NULL;
+ splay_tree pdops = htab->pending_delete_ops;
+ splay_tree_node node1 = NULL, node2 = NULL;
if (htab->relr_count)
relr_end = htab->relr + htab->relr_count;
- /* Actually delete the bytes. */
- sec->size -= count;
- memmove (contents + addr, contents + addr + count, toaddr - addr - count);
+ BFD_ASSERT (pdops != NULL);
+ node1 = splay_tree_min (pdops);
+
+ if (node1 == NULL)
+ /* No pending delete ops, nothing to do. */
+ return;
+
+ /* Actually delete the bytes. For each delete op the pointer arithmetics
+ look like this:
+
+ node1->key -\ /- node2->key
+ |<- op1->size ->| |
+ v v v
+ ...-DDDDDD-------xxxxxxxxxxxxxxxxxSSSSSSxxxxxxxxxx----...
+ ^ ^ ^
+ contents_end node1->key + op1->size
+ |
+ contents_end after this memmove
+
+ where the "S" and "D" bytes are the memmove's source and destination
+ respectively. In case node1 is the first op, contents_end is initialized
+ to the op's start; in case node2 == NULL, the chunk's end is the section's
+ end. The contents_end pointer will be bumped to the new end of content
+ after each memmove. As no byte is added during the process, it is
+ guaranteed to trail behind the delete ops, and all bytes overwritten are
+ either already copied by an earlier memmove or meant to be discarded.
+
+ For memmove, we need to translate offsets to pointers by adding them to
+ `contents`. */
+ for (; node1; node1 = node2)
+ {
+ struct pending_delete_op *op1 = (struct pending_delete_op *)node1->value;
+ bfd_vma op1_start_off = (bfd_vma)node1->key;
+ bfd_vma op1_end_off = op1_start_off + op1->size;
+ node2 = splay_tree_successor (pdops, node1->key);
+ bfd_vma op2_start_off = node2 ? (bfd_vma)node2->key : toaddr;
+ bfd_size_type count = op2_start_off - op1_end_off;
+
+ if (count)
+ {
+ if (contents_end == NULL)
+ /* Start from the end of the first unmodified content chunk. */
+ contents_end = contents + op1_start_off;
+
+ memmove (contents_end, contents + op1_end_off, count);
+ contents_end += count;
+ }
+
+ /* Adjust the section size once, when we have reached the end. */
+ if (node2 == NULL)
+ sec->size -= op1->cumulative_offset;
+ }
/* Adjust the location of all of the relocs. Note that we need not
adjust the addends, since all PC-relative references must be against
symbols, which we will adjust below. */
for (i = 0; i < sec->reloc_count; i++)
- if (data->relocs[i].r_offset > addr && data->relocs[i].r_offset < toaddr)
- data->relocs[i].r_offset -= count;
+ if (data->relocs[i].r_offset < toaddr)
+ data->relocs[i].r_offset = loongarch_calc_relaxed_addr (
+ link_info, data->relocs[i].r_offset);
/* Likewise for relative relocs to be packed into .relr. */
for (; relr && relr < relr_end && relr->sec == sec; relr++)
- if (relr->off > addr && relr->off < toaddr)
- relr->off -= count;
+ if (relr->off < toaddr)
+ relr->off = loongarch_calc_relaxed_addr (link_info, relr->off);
/* Adjust the local symbols defined in this section. */
for (i = 0; i < symtab_hdr->sh_info; i++)
@@ -4758,24 +4960,35 @@ loongarch_relax_delete_bytes (bfd *abfd,
Elf_Internal_Sym *sym = (Elf_Internal_Sym *) symtab_hdr->contents + i;
if (sym->st_shndx == sec_shndx)
{
- /* If the symbol is in the range of memory we just moved, we
- have to adjust its value. */
- if (sym->st_value > addr && sym->st_value <= toaddr)
- sym->st_value -= count;
+ bfd_vma orig_value = sym->st_value;
+ if (orig_value <= toaddr)
+ sym->st_value
+ = loongarch_calc_relaxed_addr (link_info, orig_value);
- /* If the symbol *spans* the bytes we just deleted (i.e. its
- *end* is in the moved bytes but its *start* isn't), then we
- must adjust its size.
+ /* If the symbol *spans* some deleted bytes, that is its *end* is in
+ the moved bytes but its *start* isn't, then we must adjust its
+ size.
This test needs to use the original value of st_value, otherwise
we might accidentally decrease size when deleting bytes right
- before the symbol. But since deleted relocs can't span across
- symbols, we can't have both a st_value and a st_size decrease,
- so it is simpler to just use an else. */
- else if (sym->st_value <= addr
- && sym->st_value + sym->st_size > addr
- && sym->st_value + sym->st_size <= toaddr)
- sym->st_size -= count;
+ before the symbol. */
+ bfd_vma sym_end = orig_value + sym->st_size;
+ if (sym_end <= toaddr)
+ {
+ splay_tree_node node = splay_tree_predecessor (
+ pdops, (splay_tree_key)orig_value);
+ for (; node; node = splay_tree_successor (pdops, node->key))
+ {
+ bfd_vma addr = (bfd_vma)node->key;
+ struct pending_delete_op *op
+ = (struct pending_delete_op *)node->value;
+
+ if (addr >= sym_end)
+ break;
+ if (orig_value <= addr && sym_end > addr)
+ sym->st_size -= op->size;
+ }
+ }
}
}
@@ -4820,20 +5033,33 @@ loongarch_relax_delete_bytes (bfd *abfd,
|| sym_hash->root.type == bfd_link_hash_defweak)
&& sym_hash->root.u.def.section == sec)
{
- /* As above, adjust the value if needed. */
- if (sym_hash->root.u.def.value > addr
- && sym_hash->root.u.def.value <= toaddr)
- sym_hash->root.u.def.value -= count;
+ bfd_vma orig_value = sym_hash->root.u.def.value;
+
+ /* As above, adjust the value. */
+ if (orig_value <= toaddr)
+ sym_hash->root.u.def.value
+ = loongarch_calc_relaxed_addr (link_info, orig_value);
/* As above, adjust the size if needed. */
- else if (sym_hash->root.u.def.value <= addr
- && sym_hash->root.u.def.value + sym_hash->size > addr
- && sym_hash->root.u.def.value + sym_hash->size <= toaddr)
- sym_hash->size -= count;
+ bfd_vma sym_end = orig_value + sym_hash->size;
+ if (sym_end <= toaddr)
+ {
+ splay_tree_node node = splay_tree_predecessor (
+ pdops, (splay_tree_key)orig_value);
+ for (; node; node = splay_tree_successor (pdops, node->key))
+ {
+ bfd_vma addr = (bfd_vma)node->key;
+ struct pending_delete_op *op
+ = (struct pending_delete_op *)node->value;
+
+ if (addr >= sym_end)
+ break;
+ if (orig_value <= addr && sym_end > addr)
+ sym_hash->size -= op->size;
+ }
+ }
}
}
-
- return true;
}
/* Start perform TLS type transition.
@@ -4909,7 +5135,7 @@ loongarch_tls_perform_trans (bfd *abfd, asection *sec,
bfd_put (32, abfd, LARCH_NOP, contents + rel->r_offset);
/* link with -relax option will delete NOP. */
if (!info->disable_target_specific_optimizations)
- loongarch_relax_delete_bytes (abfd, sec, rel->r_offset, 4, info);
+ loongarch_relax_delete_bytes (abfd, rel->r_offset, 4, info);
return true;
case R_LARCH_TLS_IE_PC_HI20:
@@ -4998,8 +5224,7 @@ loongarch_tls_perform_trans (bfd *abfd, asection *sec,
lu52i.d $rd,$rd,%le64_hi12(sym) => (deleted)
*/
static bool
-loongarch_relax_tls_le (bfd *abfd, asection *sec,
- asection *sym_sec ATTRIBUTE_UNUSED,
+loongarch_relax_tls_le (bfd *abfd, asection *sec, asection *sym_sec,
Elf_Internal_Rela *rel, bfd_vma symval,
struct bfd_link_info *link_info,
bool *agin ATTRIBUTE_UNUSED,
@@ -5009,6 +5234,8 @@ loongarch_relax_tls_le (bfd *abfd, asection *sec,
uint32_t insn = bfd_get (32, abfd, contents + rel->r_offset);
static uint32_t insn_rj,insn_rd;
symval = symval - elf_hash_table (link_info)->tls_sec->vma;
+ if (sym_sec == sec)
+ symval = loongarch_calc_relaxed_addr (link_info, symval);
/* The old LE instruction sequence can be relaxed when the symbol offset
is smaller than the 12-bit range. */
if (symval <= 0xfff)
@@ -5023,7 +5250,7 @@ loongarch_relax_tls_le (bfd *abfd, asection *sec,
if (symval < 0x800)
{
rel->r_info = ELFNN_R_INFO (0, R_LARCH_NONE);
- loongarch_relax_delete_bytes (abfd, sec, rel->r_offset,
+ loongarch_relax_delete_bytes (abfd, rel->r_offset,
4, link_info);
}
break;
@@ -5048,7 +5275,7 @@ loongarch_relax_tls_le (bfd *abfd, asection *sec,
case R_LARCH_TLS_LE64_LO20:
case R_LARCH_TLS_LE64_HI12:
rel->r_info = ELFNN_R_INFO (0, R_LARCH_NONE);
- loongarch_relax_delete_bytes (abfd, sec, rel->r_offset,
+ loongarch_relax_delete_bytes (abfd, rel->r_offset,
4, link_info);
break;
@@ -5106,7 +5333,11 @@ loongarch_relax_pcala_addi (bfd *abfd, asection *sec, asection *sym_sec,
size_input_section already took care of updating it after relaxation,
so we additionally update once here. */
sec->output_offset = sec->output_section->size;
- bfd_vma pc = sec_addr (sec) + rel_hi->r_offset;
+ bfd_vma pc = sec_addr (sec)
+ + loongarch_calc_relaxed_addr (info, rel_hi->r_offset);
+ if (sym_sec == sec)
+ symval = sec_addr (sec)
+ + loongarch_calc_relaxed_addr (info, symval - sec_addr (sec));
/* If pc and symbol not in the same segment, add/sub segment alignment. */
if (!loongarch_two_sections_in_same_segment (info->output_bfd,
@@ -5145,7 +5376,7 @@ loongarch_relax_pcala_addi (bfd *abfd, asection *sec, asection *sym_sec,
R_LARCH_PCREL20_S2);
rel_lo->r_info = ELFNN_R_INFO (0, R_LARCH_NONE);
- loongarch_relax_delete_bytes (abfd, sec, rel_lo->r_offset, 4, info);
+ loongarch_relax_delete_bytes (abfd, rel_lo->r_offset, 4, info);
return true;
}
@@ -5167,7 +5398,11 @@ loongarch_relax_call36 (bfd *abfd, asection *sec, asection *sym_sec,
size_input_section already took care of updating it after relaxation,
so we additionally update once here. */
sec->output_offset = sec->output_section->size;
- bfd_vma pc = sec_addr (sec) + rel->r_offset;
+ bfd_vma pc = sec_addr (sec)
+ + loongarch_calc_relaxed_addr (info, rel->r_offset);
+ if (sym_sec == sec)
+ symval = sec_addr (sec)
+ + loongarch_calc_relaxed_addr (info, symval - sec_addr (sec));
/* If pc and symbol not in the same segment, add/sub segment alignment. */
if (!loongarch_two_sections_in_same_segment (info->output_bfd,
@@ -5201,7 +5436,7 @@ loongarch_relax_call36 (bfd *abfd, asection *sec, asection *sym_sec,
/* Adjust relocations. */
rel->r_info = ELFNN_R_INFO (ELFNN_R_SYM (rel->r_info), R_LARCH_B26);
/* Delete jirl instruction. */
- loongarch_relax_delete_bytes (abfd, sec, rel->r_offset + 4, 4, info);
+ loongarch_relax_delete_bytes (abfd, rel->r_offset + 4, 4, info);
return true;
}
@@ -5227,7 +5462,11 @@ loongarch_relax_pcala_ld (bfd *abfd, asection *sec,
size_input_section already took care of updating it after relaxation,
so we additionally update once here. */
sec->output_offset = sec->output_section->size;
- bfd_vma pc = sec_addr (sec) + rel_hi->r_offset;
+ bfd_vma pc = sec_addr (sec)
+ + loongarch_calc_relaxed_addr (info, rel_hi->r_offset);
+ if (sym_sec == sec)
+ symval = sec_addr (sec)
+ + loongarch_calc_relaxed_addr (info, symval - sec_addr (sec));
/* If pc and symbol not in the same segment, add/sub segment alignment. */
if (!loongarch_two_sections_in_same_segment (info->output_bfd,
@@ -5277,7 +5516,7 @@ bfd_elfNN_loongarch_set_data_segment_info (struct bfd_link_info *info,
static bool
loongarch_relax_align (bfd *abfd, asection *sec, asection *sym_sec,
Elf_Internal_Rela *rel,
- bfd_vma symval ATTRIBUTE_UNUSED,
+ bfd_vma symval,
struct bfd_link_info *link_info,
bool *again ATTRIBUTE_UNUSED,
bfd_vma max_alignment ATTRIBUTE_UNUSED)
@@ -5293,6 +5532,10 @@ loongarch_relax_align (bfd *abfd, asection *sec, asection *sym_sec,
else
alignment = rel->r_addend + 4;
+ if (sym_sec == sec)
+ symval = sec_addr (sec)
+ + loongarch_calc_relaxed_addr (link_info, symval - sec_addr (sec));
+
addend = alignment - 4; /* The bytes of NOPs added by R_LARCH_ALIGN. */
symval -= addend; /* The address of first NOP added by R_LARCH_ALIGN. */
bfd_vma aligned_addr = ((symval - 1) & ~(alignment - 1)) + alignment;
@@ -5318,17 +5561,19 @@ loongarch_relax_align (bfd *abfd, asection *sec, asection *sym_sec,
/* If skipping more bytes than the specified maximum,
then the alignment is not done at all and delete all NOPs. */
if (max > 0 && need_nop_bytes > max)
- return loongarch_relax_delete_bytes (abfd, sec, rel->r_offset,
- addend, link_info);
+ {
+ loongarch_relax_delete_bytes (abfd, rel->r_offset, addend, link_info);
+ return true;
+ }
/* If the number of NOPs is already correct, there's nothing to do. */
if (need_nop_bytes == addend)
return true;
/* Delete the excess NOPs. */
- return loongarch_relax_delete_bytes (abfd, sec,
- rel->r_offset + need_nop_bytes,
- addend - need_nop_bytes, link_info);
+ loongarch_relax_delete_bytes (abfd, rel->r_offset + need_nop_bytes,
+ addend - need_nop_bytes, link_info);
+ return true;
}
/* Relax pcalau12i + addi.d of TLS LD/GD/DESC to pcaddi. */
@@ -5349,7 +5594,11 @@ loongarch_relax_tls_ld_gd_desc (bfd *abfd, asection *sec, asection *sym_sec,
size_input_section already took care of updating it after relaxation,
so we additionally update once here. */
sec->output_offset = sec->output_section->size;
- bfd_vma pc = sec_addr (sec) + rel_hi->r_offset;
+ bfd_vma pc = sec_addr (sec)
+ + loongarch_calc_relaxed_addr (info, rel_hi->r_offset);
+ if (sym_sec == sec)
+ symval = sec_addr (sec)
+ + loongarch_calc_relaxed_addr (info, symval - sec_addr (sec));
/* If pc and symbol not in the same segment, add/sub segment alignment. */
if (!loongarch_two_sections_in_same_segment (info->output_bfd,
@@ -5404,7 +5653,7 @@ loongarch_relax_tls_ld_gd_desc (bfd *abfd, asection *sec, asection *sym_sec,
}
rel_lo->r_info = ELFNN_R_INFO (0, R_LARCH_NONE);
- loongarch_relax_delete_bytes (abfd, sec, rel_lo->r_offset, 4, info);
+ loongarch_relax_delete_bytes (abfd, rel_lo->r_offset, 4, info);
return true;
}
@@ -5492,6 +5741,9 @@ loongarch_elf_relax_section (bfd *abfd, asection *sec,
htab->max_alignment = max_alignment;
}
+ splay_tree pdops = pending_delete_ops_new (abfd);
+ htab->pending_delete_ops = pdops;
+
for (unsigned int i = 0; i < sec->reloc_count; i++)
{
char symtype;
@@ -5727,6 +5979,10 @@ loongarch_elf_relax_section (bfd *abfd, asection *sec,
info, again, max_alignment);
}
+ loongarch_relax_perform_deletes (abfd, sec, info);
+ htab->pending_delete_ops = NULL;
+ splay_tree_delete (pdops);
+
return true;
}
diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c
index 1c494f5..790f0397 100644
--- a/bfd/elfnn-riscv.c
+++ b/bfd/elfnn-riscv.c
@@ -176,6 +176,11 @@ struct _bfd_riscv_elf_obj_tdata
/* tls_type for each local got entry. */
char *local_got_tls_type;
+
+ /* All GNU_PROPERTY_RISCV_FEATURE_1_AND properties. */
+ uint32_t gnu_and_prop;
+ /* PLT type. */
+ riscv_plt_type plt_type;
};
#define _bfd_riscv_elf_tdata(abfd) \
@@ -232,6 +237,15 @@ struct riscv_elf_link_hash_table
/* Relocations for variant CC symbols may be present. */
int variant_cc;
+
+ /* The number of bytes in the PLT header and enties. */
+ bfd_size_type plt_header_size;
+ bfd_size_type plt_entry_size;
+
+ /* Functions to make PLT header and entries. */
+ bool (*make_plt_header) (bfd *output_bfd, struct riscv_elf_link_hash_table *htab);
+ bool (*make_plt_entry) (bfd *output_bfd, asection *got, bfd_vma got_offset,
+ asection *plt, bfd_vma plt_offset);
};
/* Instruction access functions. */
@@ -252,6 +266,12 @@ struct riscv_elf_link_hash_table
&& elf_hash_table_id (elf_hash_table (p)) == RISCV_ELF_DATA) \
? (struct riscv_elf_link_hash_table *) (p)->hash : NULL)
+/* Forward declaration PLT related functions. */
+static bool
+riscv_make_plt_header (bfd *, struct riscv_elf_link_hash_table *);
+static bool
+riscv_make_plt_entry (bfd *, asection *, bfd_vma, asection *, bfd_vma);
+
void
riscv_elfNN_set_options (struct bfd_link_info *link_info,
struct riscv_elf_params *params)
@@ -297,6 +317,12 @@ riscv_is_insn_reloc (const reloc_howto_type *howto)
#define PLT_ENTRY_INSNS 4
#define PLT_HEADER_SIZE (PLT_HEADER_INSNS * 4)
#define PLT_ENTRY_SIZE (PLT_ENTRY_INSNS * 4)
+
+#define PLT_ZICFILP_UNLABELED_HEADER_INSNS 12
+#define PLT_ZICFILP_UNLABELED_ENTRY_INSNS 4
+#define PLT_ZICFILP_UNLABELED_HEADER_SIZE (PLT_ZICFILP_UNLABELED_HEADER_INSNS * 4)
+#define PLT_ZICFILP_UNLABELED_ENTRY_SIZE (PLT_ZICFILP_UNLABELED_ENTRY_INSNS * 4)
+
#define GOT_ENTRY_SIZE RISCV_ELF_WORD_BYTES
#define TLS_GD_GOT_ENTRY_SIZE (RISCV_ELF_WORD_BYTES * 2)
#define TLS_IE_GOT_ENTRY_SIZE RISCV_ELF_WORD_BYTES
@@ -314,12 +340,42 @@ riscv_is_insn_reloc (const reloc_howto_type *howto)
# define MATCH_LREG MATCH_LD
#endif
+
+/* Check whether the compact PLT is used in this object. Tools need this
+ to dump the correct PLT header contents. */
+
+static long
+elfNN_riscv_get_synthetic_symtab (bfd *abfd,
+ long symcount,
+ asymbol **syms,
+ long dynsymcount,
+ asymbol **dynsyms,
+ asymbol **ret)
+{
+ /* Check Zicfilp PLT. */
+ elf_property *prop;
+ prop = _bfd_elf_get_property (abfd, GNU_PROPERTY_RISCV_FEATURE_1_AND, 4);
+ if (prop)
+ {
+ if (prop->u.number & GNU_PROPERTY_RISCV_FEATURE_1_CFI_LP_UNLABELED)
+ _bfd_riscv_elf_tdata (abfd)->plt_type |= PLT_ZICFILP_UNLABELED;
+ }
+
+ return _bfd_elf_get_synthetic_symtab (abfd, symcount, syms,
+ dynsymcount, dynsyms, ret);
+}
+
/* Generate a PLT header. */
static bool
-riscv_make_plt_header (bfd *output_bfd, bfd_vma gotplt_addr, bfd_vma addr,
- uint32_t *entry)
+riscv_make_plt_header (bfd *output_bfd, struct riscv_elf_link_hash_table *htab)
{
+ asection *splt = htab->elf.splt;
+ bfd_vma addr = sec_addr (splt);
+
+ asection *sgotplt = htab->elf.sgotplt;
+ bfd_vma gotplt_addr = sec_addr (sgotplt);
+
bfd_vma gotplt_offset_high = RISCV_PCREL_HIGH_PART (gotplt_addr, addr);
bfd_vma gotplt_offset_low = RISCV_PCREL_LOW_PART (gotplt_addr, addr);
@@ -340,6 +396,7 @@ riscv_make_plt_header (bfd *output_bfd, bfd_vma gotplt_addr, bfd_vma addr,
l[w|d] t0, PTRSIZE(t0) # link map
jr t3 */
+ uint32_t entry[PLT_HEADER_INSNS];
entry[0] = RISCV_UTYPE (AUIPC, X_T2, gotplt_offset_high);
entry[1] = RISCV_RTYPE (SUB, X_T1, X_T1, X_T3);
entry[2] = RISCV_ITYPE (LREG, X_T3, X_T2, gotplt_offset_low);
@@ -349,15 +406,78 @@ riscv_make_plt_header (bfd *output_bfd, bfd_vma gotplt_addr, bfd_vma addr,
entry[6] = RISCV_ITYPE (LREG, X_T0, X_T0, RISCV_ELF_WORD_BYTES);
entry[7] = RISCV_ITYPE (JALR, 0, X_T3, 0);
+ for (int i = 0; i < PLT_HEADER_INSNS; i++)
+ bfd_putl32 (entry[i], splt->contents + 4 * i);
+
+ return true;
+}
+
+static bool
+riscv_make_plt_zicfilp_unlabeled_header (bfd *output_bfd,
+ struct riscv_elf_link_hash_table *htab)
+{
+ /*
+ lpad 0 # disable label checking
+ auipc t2, %hi(.got.plt) # Rewrite this to using
+ sub t1, t1, t3 # shifted .got.plt offset + hdr size + 16
+ l[w|d] t3, %lo(1b)(t2) # _dl_runtime_resolve
+ addi t1, t1, -(hdr size + 12) # shifted .got.plt offset
+ addi t0, t2, %pcrel_lo(1b) # &.got.plt
+ srli t1, t1, log2(16/PTRSIZE) # .got.plt offset
+ l[w|d] t0, PTRSIZE(t0) # link map
+ jr t3
+ nop
+ nop
+ nop */
+
+ /* RVE has no t3 register, so this won't work, and is not supported. */
+ if (elf_elfheader (output_bfd)->e_flags & EF_RISCV_RVE)
+ {
+ _bfd_error_handler (_("%pB: warning: RVE PLT generation not supported"),
+ output_bfd);
+ return false;
+ }
+
+ asection *gotplt = htab->elf.sgotplt;
+ bfd_vma gotplt_addr = sec_addr (gotplt);
+
+ asection *splt = htab->elf.splt;
+ bfd_vma plt_header_addr = sec_addr (splt);
+
+ bfd_vma auipc_addr = plt_header_addr + 4;
+ /* Add INSN_BYTES to skip the lpad instruction. */
+ bfd_vma gotplt_offset_high = RISCV_PCREL_HIGH_PART (gotplt_addr, auipc_addr);
+ bfd_vma gotplt_offset_low = RISCV_PCREL_LOW_PART (gotplt_addr, auipc_addr);
+
+ uint32_t header[PLT_ZICFILP_UNLABELED_HEADER_INSNS];
+ header[0] = RISCV_UTYPE (LPAD, X_ZERO, 0);
+ header[1] = RISCV_UTYPE (AUIPC, X_T2, gotplt_offset_high);
+ header[2] = RISCV_RTYPE (SUB, X_T1, X_T1, X_T3);
+ header[3] = RISCV_ITYPE (LREG, X_T3, X_T2, gotplt_offset_low);
+ header[4] = RISCV_ITYPE (ADDI, X_T1, X_T1,
+ (uint32_t) -(PLT_ZICFILP_UNLABELED_HEADER_SIZE + 16));
+ header[5] = RISCV_ITYPE (ADDI, X_T0, X_T2, gotplt_offset_low);
+ header[6] = RISCV_ITYPE (SRLI, X_T1, X_T1, 4 - RISCV_ELF_LOG_WORD_BYTES);
+ header[7] = RISCV_ITYPE (LREG, X_T0, X_T0, RISCV_ELF_WORD_BYTES);
+ header[8] = RISCV_ITYPE (JALR, 0, X_T3, 0);
+ header[9] = RISCV_NOP;
+ header[10] = RISCV_NOP;
+ header[11] = RISCV_NOP;
+
+ for (int i = 0; i < PLT_ZICFILP_UNLABELED_HEADER_INSNS; i++)
+ bfd_putl32 (header[i], splt->contents + 4 * i);
+
return true;
}
/* Generate a PLT entry. */
static bool
-riscv_make_plt_entry (bfd *output_bfd, bfd_vma got, bfd_vma addr,
- uint32_t *entry)
+riscv_make_plt_entry (bfd *output_bfd, asection *gotsec, bfd_vma got_offset,
+ asection *pltsec, bfd_vma plt_offset)
{
+ bfd_vma got = sec_addr (gotsec) + got_offset;
+ bfd_vma addr = sec_addr (pltsec) + plt_offset;
/* RVE has no t3 register, so this won't work, and is not supported. */
if (elf_elfheader (output_bfd)->e_flags & EF_RISCV_RVE)
{
@@ -371,11 +491,50 @@ riscv_make_plt_entry (bfd *output_bfd, bfd_vma got, bfd_vma addr,
jalr t1, t3
nop */
+ uint32_t entry[PLT_ENTRY_INSNS];
entry[0] = RISCV_UTYPE (AUIPC, X_T3, RISCV_PCREL_HIGH_PART (got, addr));
entry[1] = RISCV_ITYPE (LREG, X_T3, X_T3, RISCV_PCREL_LOW_PART (got, addr));
entry[2] = RISCV_ITYPE (JALR, X_T1, X_T3, 0);
entry[3] = RISCV_NOP;
+ bfd_byte *loc = pltsec->contents + plt_offset;
+ for (int i = 0; i < PLT_ENTRY_INSNS; i++)
+ bfd_putl32 (entry[i], loc + 4 * i);
+
+ return true;
+}
+
+static bool
+riscv_make_plt_zicfilp_unlabeled_entry (bfd *output_bfd, asection *got,
+ bfd_vma got_offset, asection *plt,
+ bfd_vma plt_offset)
+{
+ /* lpad 0
+ 1: auipc t3, %pcrel_hi(function@.got.plt)
+ l[w|d] t3, %pcrel_lo(1b)(t3)
+ jalr t1, t3 */
+
+ /* RVE has no t3 register, so this won't work, and is not supported. */
+ if (elf_elfheader (output_bfd)->e_flags & EF_RISCV_RVE)
+ {
+ _bfd_error_handler (_("%pB: warning: RVE PLT generation not supported"),
+ output_bfd);
+ return false;
+ }
+
+ bfd_vma got_entry_addr = sec_addr(got) + got_offset;
+ bfd_vma plt_entry_addr = sec_addr(plt) + plt_offset;
+ bfd_vma auipc_addr = plt_entry_addr + 4;
+ uint32_t entry[PLT_ZICFILP_UNLABELED_ENTRY_INSNS];
+ entry[0] = RISCV_UTYPE (LPAD, X_ZERO, 0);
+ entry[1] = RISCV_UTYPE (AUIPC, X_T3, RISCV_PCREL_HIGH_PART (got_entry_addr, auipc_addr));
+ entry[2] = RISCV_ITYPE (LREG, X_T3, X_T3, RISCV_PCREL_LOW_PART (got_entry_addr, auipc_addr));
+ entry[3] = RISCV_ITYPE (JALR, X_T1, X_T3, 0);
+
+ bfd_byte *loc = plt->contents + plt_offset;
+ for (int i = 0; i < PLT_ZICFILP_UNLABELED_ENTRY_INSNS; i++)
+ bfd_putl32 (entry[i], loc + 4 * i);
+
return true;
}
@@ -489,6 +648,38 @@ riscv_elf_link_hash_table_free (bfd *obfd)
_bfd_elf_link_hash_table_free (obfd);
}
+/* Set up the PLT generation stubs in the hash table. */
+
+static void
+setup_plt_values (struct bfd *output_bfd,
+ struct riscv_elf_link_hash_table *htab,
+ unsigned plt_type)
+{
+ switch (plt_type)
+ {
+ case PLT_NORMAL:
+ htab->plt_header_size = PLT_HEADER_SIZE;
+ htab->plt_entry_size = PLT_ENTRY_SIZE;
+ htab->make_plt_header = riscv_make_plt_header;
+ htab->make_plt_entry = riscv_make_plt_entry;
+ break;
+
+ case PLT_ZICFILP_UNLABELED:
+ htab->plt_header_size = PLT_ZICFILP_UNLABELED_HEADER_SIZE;
+ htab->plt_entry_size = PLT_ZICFILP_UNLABELED_ENTRY_SIZE;
+ htab->make_plt_header = riscv_make_plt_zicfilp_unlabeled_header;
+ htab->make_plt_entry = riscv_make_plt_zicfilp_unlabeled_entry;
+ break;
+
+ default:
+ _bfd_error_handler (_("%pB: error: unsupported PLT type: %u"),
+ output_bfd,
+ plt_type);
+ bfd_set_error (bfd_error_bad_value);
+ break;
+ }
+}
+
/* Create a RISC-V ELF linker hash table. */
static struct bfd_link_hash_table *
@@ -511,6 +702,8 @@ riscv_elf_link_hash_table_create (bfd *abfd)
ret->max_alignment = (bfd_vma) -1;
ret->max_alignment_for_gp = (bfd_vma) -1;
+ setup_plt_values (abfd, ret, PLT_NORMAL);
+
/* Create hash table for local ifunc. */
ret->loc_hash_table = htab_try_create (1024,
riscv_elf_local_htab_hash,
@@ -1259,12 +1452,12 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
asection *s = htab->elf.splt;
if (s->size == 0)
- s->size = PLT_HEADER_SIZE;
+ s->size = htab->plt_header_size;
h->plt.offset = s->size;
/* Make room for this entry. */
- s->size += PLT_ENTRY_SIZE;
+ s->size += htab->plt_entry_size;
/* We also need to make an entry in the .got.plt section. */
htab->elf.sgotplt->size += GOT_ENTRY_SIZE;
@@ -1456,6 +1649,7 @@ allocate_ifunc_dynrelocs (struct elf_link_hash_entry *h,
void *inf)
{
struct bfd_link_info *info;
+ struct riscv_elf_link_hash_table *htab;
if (h->root.type == bfd_link_hash_indirect)
return true;
@@ -1464,6 +1658,7 @@ allocate_ifunc_dynrelocs (struct elf_link_hash_entry *h,
h = (struct elf_link_hash_entry *) h->root.u.i.link;
info = (struct bfd_link_info *) inf;
+ htab = riscv_elf_hash_table (info);
/* Since STT_GNU_IFUNC symbol must go through PLT, we handle it
here if it is defined and referenced in a non-shared object. */
@@ -1471,8 +1666,8 @@ allocate_ifunc_dynrelocs (struct elf_link_hash_entry *h,
&& h->def_regular)
return _bfd_elf_allocate_ifunc_dyn_relocs (info, h,
&h->dyn_relocs,
- PLT_ENTRY_SIZE,
- PLT_HEADER_SIZE,
+ htab->plt_entry_size,
+ htab->plt_header_size,
GOT_ENTRY_SIZE,
true);
return true;
@@ -2472,14 +2667,14 @@ riscv_elf_relocate_section (bfd *output_bfd,
if (htab->elf.splt != NULL)
{
- plt_idx = (h->plt.offset - PLT_HEADER_SIZE)
- / PLT_ENTRY_SIZE;
+ plt_idx = (h->plt.offset - htab->plt_header_size)
+ / htab->plt_entry_size;
off = GOTPLT_HEADER_SIZE + (plt_idx * GOT_ENTRY_SIZE);
base_got = htab->elf.sgotplt;
}
else
{
- plt_idx = h->plt.offset / PLT_ENTRY_SIZE;
+ plt_idx = h->plt.offset / htab->plt_entry_size;
off = plt_idx * GOT_ENTRY_SIZE;
base_got = htab->elf.igotplt;
}
@@ -3247,8 +3442,7 @@ riscv_elf_finish_dynamic_symbol (bfd *output_bfd,
{
/* We've decided to create a PLT entry for this symbol. */
bfd_byte *loc;
- bfd_vma i, header_address, plt_idx, got_offset, got_address;
- uint32_t plt_entry[PLT_ENTRY_INSNS];
+ bfd_vma plt_idx, got_offset, got_address;
Elf_Internal_Rela rela;
asection *plt, *gotplt, *relplt;
@@ -3278,36 +3472,29 @@ riscv_elf_finish_dynamic_symbol (bfd *output_bfd,
|| relplt == NULL)
abort ();
- /* Calculate the address of the PLT header. */
- header_address = sec_addr (plt);
-
/* Calculate the index of the entry and the offset of .got.plt entry.
For static executables, we don't reserve anything. */
if (plt == htab->elf.splt)
{
- plt_idx = (h->plt.offset - PLT_HEADER_SIZE) / PLT_ENTRY_SIZE;
+ plt_idx = (h->plt.offset - htab->plt_header_size)
+ / htab->plt_entry_size;
got_offset = GOTPLT_HEADER_SIZE + (plt_idx * GOT_ENTRY_SIZE);
}
else
{
- plt_idx = h->plt.offset / PLT_ENTRY_SIZE;
+ plt_idx = h->plt.offset / htab->plt_entry_size;
got_offset = plt_idx * GOT_ENTRY_SIZE;
}
/* Calculate the address of the .got.plt entry. */
got_address = sec_addr (gotplt) + got_offset;
- /* Find out where the .plt entry should go. */
- loc = plt->contents + h->plt.offset;
/* Fill in the PLT entry itself. */
- if (! riscv_make_plt_entry (output_bfd, got_address,
- header_address + h->plt.offset,
- plt_entry))
+ if (! htab->make_plt_entry (output_bfd, gotplt, got_offset,
+ plt, h->plt.offset))
return false;
- for (i = 0; i < PLT_ENTRY_INSNS; i++)
- bfd_putl32 (plt_entry[i], loc + 4*i);
/* Fill in the initial value of the .got.plt entry. */
loc = gotplt->contents + (got_address - sec_addr (gotplt));
@@ -3595,19 +3782,12 @@ riscv_elf_finish_dynamic_sections (bfd *output_bfd,
/* Fill in the head and tail entries in the procedure linkage table. */
if (splt->size > 0)
{
- int i;
- uint32_t plt_header[PLT_HEADER_INSNS];
- ret = riscv_make_plt_header (output_bfd,
- sec_addr (htab->elf.sgotplt),
- sec_addr (splt), plt_header);
+ ret = htab->make_plt_header (output_bfd, htab);
if (!ret)
return ret;
- for (i = 0; i < PLT_HEADER_INSNS; i++)
- bfd_putl32 (plt_header[i], splt->contents + 4*i);
-
elf_section_data (splt->output_section)->this_hdr.sh_entsize
- = PLT_ENTRY_SIZE;
+ = htab->plt_entry_size;
}
}
@@ -3661,7 +3841,18 @@ static bfd_vma
riscv_elf_plt_sym_val (bfd_vma i, const asection *plt,
const arelent *rel ATTRIBUTE_UNUSED)
{
- return plt->vma + PLT_HEADER_SIZE + i * PLT_ENTRY_SIZE;
+ unsigned plt_type = _bfd_riscv_elf_tdata (plt->owner)->plt_type;
+ switch (plt_type)
+ {
+ case PLT_NORMAL:
+ return plt->vma + (PLT_HEADER_SIZE) + (i * PLT_ENTRY_SIZE);
+
+ case PLT_ZICFILP_UNLABELED:
+ return plt->vma + PLT_ZICFILP_UNLABELED_HEADER_SIZE + (i * PLT_ZICFILP_UNLABELED_ENTRY_SIZE);
+
+ default:
+ abort ();
+ }
}
/* Used to decide how to sort relocs in an optimal manner for the
@@ -5753,6 +5944,43 @@ riscv_elf_merge_symbol_attribute (struct elf_link_hash_entry *h,
h->other |= STO_RISCV_VARIANT_CC;
}
+/* Implement elf_backend_setup_gnu_properties for RISC-V. It serves as a
+ wrapper function for _bfd_riscv_elf_link_setup_gnu_properties to account
+ for the effect of GNU properties of the output_bfd. */
+
+static bfd *
+elfNN_riscv_link_setup_gnu_properties (struct bfd_link_info *info)
+{
+ uint32_t and_prop = _bfd_riscv_elf_tdata (info->output_bfd)->gnu_and_prop;
+
+ bfd *pbfd = _bfd_riscv_elf_link_setup_gnu_properties (info, &and_prop);
+
+ _bfd_riscv_elf_tdata (info->output_bfd)->gnu_and_prop = and_prop;
+
+ if (and_prop & GNU_PROPERTY_RISCV_FEATURE_1_CFI_LP_UNLABELED)
+ _bfd_riscv_elf_tdata (info->output_bfd)->plt_type = PLT_ZICFILP_UNLABELED;
+
+ setup_plt_values (info->output_bfd, riscv_elf_hash_table (info),
+ _bfd_riscv_elf_tdata (info->output_bfd)->plt_type);
+
+ return pbfd;
+}
+
+/* Implement elf_backend_merge_gnu_properties for RISC-V. It serves as a
+ wrapper function for _bfd_riscv_elf_merge_gnu_properties to account
+ for the effect of GNU properties of the output_bfd. */
+
+static bool
+elfNN_riscv_merge_gnu_properties (struct bfd_link_info *info, bfd *abfd,
+ bfd *bbfd ATTRIBUTE_UNUSED,
+ elf_property *aprop, elf_property *bprop)
+{
+ uint32_t and_prop = _bfd_riscv_elf_tdata (info->output_bfd)->gnu_and_prop;
+
+ return _bfd_riscv_elf_merge_gnu_properties (info, abfd, aprop, bprop,
+ and_prop);
+}
+
#define TARGET_LITTLE_SYM riscv_elfNN_vec
#define TARGET_LITTLE_NAME "elfNN-littleriscv"
#define TARGET_BIG_SYM riscv_elfNN_be_vec
@@ -5785,6 +6013,7 @@ riscv_elf_merge_symbol_attribute (struct elf_link_hash_entry *h,
#define elf_info_to_howto riscv_info_to_howto_rela
#define bfd_elfNN_bfd_relax_section _bfd_riscv_relax_section
#define bfd_elfNN_mkobject elfNN_riscv_mkobject
+#define bfd_elfNN_get_synthetic_symtab elfNN_riscv_get_synthetic_symtab
#define elf_backend_additional_program_headers \
riscv_elf_additional_program_headers
#define elf_backend_modify_segment_map riscv_elf_modify_segment_map
@@ -5792,6 +6021,9 @@ riscv_elf_merge_symbol_attribute (struct elf_link_hash_entry *h,
#define elf_backend_init_index_section _bfd_elf_init_1_index_section
+#define elf_backend_setup_gnu_properties elfNN_riscv_link_setup_gnu_properties
+#define elf_backend_merge_gnu_properties elfNN_riscv_merge_gnu_properties
+
#define elf_backend_can_gc_sections 1
#define elf_backend_can_refcount 1
#define elf_backend_want_got_plt 1
diff --git a/bfd/elfxx-aarch64.c b/bfd/elfxx-aarch64.c
index 68e004ef..551f74e 100644
--- a/bfd/elfxx-aarch64.c
+++ b/bfd/elfxx-aarch64.c
@@ -708,7 +708,7 @@ static inline bool
bfd_is_non_dynamic_elf_object (bfd *abfd, const struct elf_backend_data *out_be)
{
const struct elf_backend_data *in_be = get_elf_backend_data (abfd);
-
+
return bfd_get_flavour (abfd) == bfd_target_elf_flavour
&& bfd_count_sections (abfd) != 0
&& (abfd->flags & (DYNAMIC | BFD_PLUGIN | BFD_LINKER_CREATED)) == 0
diff --git a/bfd/elfxx-loongarch.c b/bfd/elfxx-loongarch.c
index 9498022..6268c47 100644
--- a/bfd/elfxx-loongarch.c
+++ b/bfd/elfxx-loongarch.c
@@ -1390,7 +1390,7 @@ static loongarch_reloc_howto_type loongarch_howto_table[] =
0xffffffff, /* dst_mask */
false, /* pcrel_offset */
BFD_RELOC_LARCH_32_PCREL, /* bfd_reloc_code_real_type */
- NULL, /* adjust_reloc_bits */
+ reloc_sign_bits, /* adjust_reloc_bits */
NULL), /* larch_reloc_type_name */
/* The paired relocation may be relaxed. */
@@ -2171,11 +2171,11 @@ loongarch_elf_add_sub_reloc_uleb128 (bfd *abfd,
if (output_bfd != NULL)
return bfd_reloc_continue;
- relocation = symbol->value + symbol->section->output_section->vma
- + symbol->section->output_offset + reloc_entry->addend;
+ relocation = (symbol->value + symbol->section->output_section->vma
+ + symbol->section->output_offset + reloc_entry->addend);
- bfd_size_type octets = reloc_entry->address
- * bfd_octets_per_byte (abfd, input_section);
+ bfd_size_type octets = (reloc_entry->address
+ * bfd_octets_per_byte (abfd, input_section));
if (!bfd_reloc_offset_in_range (reloc_entry->howto, abfd,
input_section, octets))
return bfd_reloc_outofrange;
@@ -2195,8 +2195,11 @@ loongarch_elf_add_sub_reloc_uleb128 (bfd *abfd,
break;
}
- bfd_vma mask = (1 << (7 * len)) - 1;
- relocation = relocation & mask;
+ if (7 * len < sizeof (bfd_vma))
+ {
+ bfd_vma mask = ((bfd_vma) 1 << (7 * len)) - 1;
+ relocation = relocation & mask;
+ }
loongarch_write_unsigned_leb128 (p, len, relocation);
return bfd_reloc_ok;
}
diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
index ec25491..43d3c0d 100644
--- a/bfd/elfxx-riscv.c
+++ b/bfd/elfxx-riscv.c
@@ -1022,6 +1022,12 @@ static const struct elf_reloc_map riscv_reloc_map[] =
{ BFD_RELOC_RISCV_SUB_ULEB128, R_RISCV_SUB_ULEB128 },
};
+struct riscv_profiles
+{
+ const char *profile_name;
+ const char *profile_string;
+};
+
/* Given a BFD reloc type, return a howto structure. */
reloc_howto_type *
@@ -1148,7 +1154,8 @@ riscv_elf_ignore_reloc (bfd *abfd ATTRIBUTE_UNUSED,
/* Always add implicit extensions for the SUBSET. */
static bool
-check_implicit_always (riscv_subset_t *subset ATTRIBUTE_UNUSED)
+check_implicit_always (riscv_parse_subset_t *rps ATTRIBUTE_UNUSED,
+ const riscv_subset_t *subset ATTRIBUTE_UNUSED)
{
return true;
}
@@ -1156,20 +1163,34 @@ check_implicit_always (riscv_subset_t *subset ATTRIBUTE_UNUSED)
/* Add implicit extensions only when the version of SUBSET less than 2.1. */
static bool
-check_implicit_for_i (riscv_subset_t *subset)
+check_implicit_for_i (riscv_parse_subset_t *rps ATTRIBUTE_UNUSED,
+ const riscv_subset_t *subset ATTRIBUTE_UNUSED)
{
return (subset->major_version < 2
|| (subset->major_version == 2
&& subset->minor_version < 1));
}
+/* Add the IMPLICIT only when the 'f' extension is also available
+ and XLEN is 32. */
+
+static bool
+check_implicit_for_zcf (riscv_parse_subset_t *rps,
+ const riscv_subset_t *subset ATTRIBUTE_UNUSED)
+{
+ riscv_subset_t *tmp = NULL;
+ return *rps->xlen == 32
+ && riscv_lookup_subset (rps->subset_list, "f", &tmp);
+}
+
/* Record all implicit information for the subsets. */
struct riscv_implicit_subset
{
const char *ext;
const char *implicit_exts;
/* A function to determine if we need to add the implicit subsets. */
- bool (*check_func) (riscv_subset_t *);
+ bool (*check_func) (riscv_parse_subset_t *,
+ const riscv_subset_t *);
};
/* Please added in order since this table is only run once time. */
static struct riscv_implicit_subset riscv_implicit_subsets[] =
@@ -1191,6 +1212,9 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
{"xsfvqmaccdod", "+zve32x,+zvl128b", check_implicit_always},
{"xsfvfnrclipxfqf", "+zve32f", check_implicit_always},
+ {"xtheadvector", "+zicsr", check_implicit_always},
+ {"xtheadzvamo", "+zaamo", check_implicit_always},
+
{"v", "+zve64d,+zvl128b", check_implicit_always},
{"zvfh", "+zvfhmin,+zfhmin", check_implicit_always},
{"zvfhmin", "+zve32f", check_implicit_always},
@@ -1213,6 +1237,8 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
{"zvl128b", "+zvl64b", check_implicit_always},
{"zvl64b", "+zvl32b", check_implicit_always},
+ {"zce", "+zca,+zcb,+zcmp,+zcmt", check_implicit_always},
+ {"zce", "+zcf", check_implicit_for_zcf},
{"zcb", "+zca", check_implicit_always},
{"zcd", "+d,+zca", check_implicit_always},
{"zcf", "+f,+zca", check_implicit_always},
@@ -1222,6 +1248,9 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
{"zicfilp", "+zicsr", check_implicit_always},
{"zicfiss", "+zimop,+zicsr", check_implicit_always},
+ {"zclsd", "+zca,+zilsd", check_implicit_always},
+
+ {"sha", "+h,+ssstateen,+shcounterenw,+shvstvala,+shtvala,+shvstvecd,+shvsatpa,+shgatpa", check_implicit_always},
{"shcounterenw", "+h", check_implicit_always},
{"shgatpa", "+h", check_implicit_always},
@@ -1260,9 +1289,11 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
{"zvks", "+zvksed,+zvksh,+zvkb,+zvkt", check_implicit_always},
{"smaia", "+ssaia", check_implicit_always},
+ {"smcdeleg", "+ssccfg", check_implicit_always},
{"smcsrind", "+sscsrind", check_implicit_always},
{"smcntrpmf", "+zicsr", check_implicit_always},
{"smctr", "+zicsr", check_implicit_always},
+ {"smrnmi", "+zicsr", check_implicit_always},
{"smstateen", "+ssstateen", check_implicit_always},
{"smepmp", "+zicsr", check_implicit_always},
{"smdbltrp", "+zicsr", check_implicit_always},
@@ -1270,6 +1301,7 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
{"smmpm", "+zicsr", check_implicit_always},
{"ssaia", "+zicsr", check_implicit_always},
+ {"ssccfg", "+sscsrind", check_implicit_always},
{"sscsrind", "+zicsr", check_implicit_always},
{"sscofpmf", "+zicsr", check_implicit_always},
{"sscounterenw", "+zicsr", check_implicit_always},
@@ -1288,6 +1320,61 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
{NULL, NULL, NULL}
};
+/* This table records the mapping form RISC-V Profiles into march string. */
+static struct riscv_profiles riscv_profiles_table[] =
+{
+ /* RVI20U only contains the base extension 'i' as mandatory extension. */
+ {"rvi20u64", "rv64i"},
+ {"rvi20u32", "rv32i"},
+
+ /* RVA20U contains the 'i,m,a,f,d,c,zicsr,zicntr,ziccif,ziccrse,ziccamoa,
+ zicclsm,za128rs' as mandatory extensions. */
+ {"rva20u64", "rv64imafdc_zicsr_zicntr_ziccif_ziccrse_ziccamoa"
+ "_zicclsm_za128rs"},
+
+ /* RVA22U contains the 'i,m,a,f,d,c,zicsr,zihintpause,zba,zbb,zbs,zicntr,
+ zihpm,ziccif,ziccrse,ziccamoa, zicclsm,zic64b,za64rs,zicbom,zicbop,zicboz,
+ zfhmin,zkt' as mandatory extensions. */
+ {"rva22u64", "rv64imafdc_zicsr_zicntr_ziccif_ziccrse_ziccamoa"
+ "_zicclsm_zic64b_za64rs_zihintpause_zba_zbb_zbs_zicbom_zicbop"
+ "_zicboz_zfhmin_zkt"},
+
+ /* RVA23 contains all mandatory base ISA for RVA22U64 and the new extension
+ 'v,zihintntl,zvfhmin,zvbb,zvkt,zicond,zimop,zcmop,zfa,zawrs' as mandatory
+ extensions. */
+ {"rva23u64", "rv64imafdcbv_zicsr_zicntr_zihpm_ziccif_ziccrse_ziccamoa"
+ "_zicclsm_zic64b_za64rs_zihintpause_zba_zbb_zbs_zicbom_zicbop"
+ "_zicboz_zfhmin_zkt_zvfhmin_zvbb_zvkt_zihintntl_zicond_zimop_zcmop_zcb"
+ "_zfa_zawrs_supm"},
+
+ /* RVA23S contains all mandatory base ISA for RVA23U64 and the privileged
+ extensions as mandatory extensions. */
+ {"rva23s64", "rv64imafdcbv_zicsr_zicntr_zihpm_ziccif_ziccrse_ziccamoa"
+ "_zicclsm_zic64b_za64rs_zihintpause_zba_zbb_zbs_zicbom_zicbop"
+ "_zicboz_zfhmin_zkt_zvfhmin_zvbb_zvkt_zihintntl_zicond_zimop_zcmop_zcb"
+ "_zfa_zawrs_supm_svbare_svade_ssccptr_sstvecd_sstvala_sscounterenw_svpbmt"
+ "_svinval_svnapot_sstc_sscofpmf_ssnpm_ssu64xl_sha"},
+
+ /* RVB23 contains all mandatory base ISA for RVA22U64 and the new extension
+ 'zihintntl,zicond,zimop,zcmop,zfa,zawrs' as mandatory
+ extensions. */
+ {"rvb23u64", "rv64imafdcb_zicsr_zicntr_zihpm_ziccif_ziccrse_ziccamoa"
+ "_zicclsm_zic64b_za64rs_zihintpause_zba_zbb_zbs_zicbom_zicbop"
+ "_zicboz_zfhmin_zkt_zihintntl_zicond_zimop_zcmop_zcb"
+ "_zfa_zawrs_supm"},
+
+ /* RVB23S contains all mandatory base ISA for RVB23U64 and the privileged
+ extensions as mandatory extensions. */
+ {"rvb23s64", "rv64imafdcb_zicsr_zicntr_zihpm_ziccif_ziccrse_ziccamoa"
+ "_zicclsm_zic64b_za64rs_zihintpause_zba_zbb_zbs_zicbom_zicbop"
+ "_zicboz_zfhmin_zkt_zvfhmin_zvbb_zvkt_zihintntl_zicond_zimop_zcmop_zcb"
+ "_zfa_zawrs_supm_svbare_svade_ssccptr_sstvecd_sstvala_sscounterenw_svpbmt"
+ "_svinval_svnapot_sstc_sscofpmf_ssu64xl"},
+
+ /* Terminate the list. */
+ {NULL, NULL}
+};
+
/* For default_enable field, decide if the extension should
be enbaled by default. */
@@ -1363,6 +1450,7 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] =
{"zimop", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zicfiss", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zicfilp", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"zilsd", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zmmul", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"za64rs", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"za128rs", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
@@ -1437,16 +1525,19 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] =
{"ztso", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zca", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zcb", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"zce", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zcf", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zcd", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zcmop", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zcmp", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zcmt", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"zclsd", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{NULL, 0, 0, 0, 0}
};
static struct riscv_supported_ext riscv_supported_std_s_ext[] =
{
+ {"sha", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"shcounterenw", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"shgatpa", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"shtvala", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
@@ -1454,6 +1545,7 @@ static struct riscv_supported_ext riscv_supported_std_s_ext[] =
{"shvstvala", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"shvstvecd", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"smaia", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"smcdeleg", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"smcsrind", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"smcntrpmf", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"smctr", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
@@ -1462,6 +1554,7 @@ static struct riscv_supported_ext riscv_supported_std_s_ext[] =
{"smstateen", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"smdbltrp", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"ssaia", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"ssccfg", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"ssccptr", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"sscsrind", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"sscofpmf", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
@@ -1479,6 +1572,7 @@ static struct riscv_supported_ext riscv_supported_std_s_ext[] =
{"svinval", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"svnapot", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"svpbmt", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"svvptc", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"ssqosid", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"ssnpm", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"smnpm", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
@@ -1523,6 +1617,10 @@ static struct riscv_supported_ext riscv_supported_vendor_x_ext[] =
{"xsfvqmaccqoq", ISA_SPEC_CLASS_DRAFT, 1, 0, 0},
{"xsfvqmaccdod", ISA_SPEC_CLASS_DRAFT, 1, 0, 0},
{"xsfvfnrclipxfqf", ISA_SPEC_CLASS_DRAFT, 1, 0, 0},
+ {"xmipscbop", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"xmipscmov", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"xmipsexectl", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"xmipslsp", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{NULL, 0, 0, 0, 0}
};
@@ -1940,10 +2038,11 @@ riscv_parsing_subset_version (const char *p,
static const char *
riscv_parse_extensions (riscv_parse_subset_t *rps,
const char *arch,
- const char *p)
+ const char *p,
+ bool profile)
{
- /* First letter must start with i, e or g. */
- if (*p != 'e' && *p != 'i' && *p != 'g')
+ /* First letter must start with i, e, g or a profile. */
+ if (*p != 'e' && *p != 'i' && *p != 'g' && !profile)
{
rps->error_handler
(_("%s: first ISA extension must be `e', `i' or `g'"),
@@ -2076,7 +2175,7 @@ riscv_parse_add_implicit_subsets (riscv_parse_subset_t *rps)
{
riscv_subset_t *subset = NULL;
if (riscv_lookup_subset (rps->subset_list, t->ext, &subset)
- && t->check_func (subset))
+ && t->check_func (rps, subset))
riscv_update_subset1 (rps, subset, t->implicit_exts);
}
}
@@ -2127,10 +2226,19 @@ riscv_parse_check_conflicts (riscv_parse_subset_t *rps)
no_conflict = false;
}
if (riscv_lookup_subset (rps->subset_list, "xtheadvector", &subset)
- && riscv_lookup_subset (rps->subset_list, "v", &subset))
+ && riscv_lookup_subset (rps->subset_list, "zve32x", &subset))
+ {
+ rps->error_handler
+ (_("`xtheadvector' is conflict with the `v/zve32x' extension"));
+ no_conflict = false;
+ }
+ if (riscv_lookup_subset (rps->subset_list, "zclsd", &subset)
+ && ((riscv_lookup_subset (rps->subset_list, "c", &subset)
+ && riscv_lookup_subset (rps->subset_list, "f", &subset))
+ || riscv_lookup_subset (rps->subset_list, "zcf", &subset)))
{
rps->error_handler
- (_("`xtheadvector' is conflict with the `v' extension"));
+ (_("`zclsd' is conflict with the `c+f'/ `zcf' extension"));
no_conflict = false;
}
if (riscv_lookup_subset (rps->subset_list, "ssnpm", &subset) && xlen != 64)
@@ -2212,6 +2320,42 @@ riscv_set_default_arch (riscv_parse_subset_t *rps)
}
}
+static bool
+riscv_find_profiles (riscv_parse_subset_t *rps, const char **pp)
+{
+ const char *p = *pp;
+
+ /* Checking if input string contains a Profiles.
+ There are two cases use Profiles in -march option:
+
+ 1. Only use Profiles in '-march' as input
+ 2. Mixed Profiles with other extensions
+
+ Use '_' to split Profiles and other extensions. */
+
+ for (int i = 0; riscv_profiles_table[i].profile_name != NULL; ++i)
+ {
+ /* Find profile at the begin. */
+ if (startswith (p, riscv_profiles_table[i].profile_name))
+ {
+ /* Handle the profile string. */
+ riscv_parse_subset (rps, riscv_profiles_table[i].profile_string);
+ p += strlen (riscv_profiles_table[i].profile_name);
+ /* Handle string after profiles if exists. If missing underline
+ bewteen profile and other extensions, warn the user but not deal
+ as an error. */
+ if (*p != '\0' && *p != '_')
+ _bfd_error_handler
+ (_("Warning: should use \"_\" to contact Profiles with other "
+ "extensions"));
+ *pp = p;
+ return true;
+ }
+ }
+ /* Not found profile, return directly. */
+ return false;
+}
+
/* Function for parsing ISA string.
Return Value:
@@ -2249,8 +2393,14 @@ riscv_parse_subset (riscv_parse_subset_t *rps,
}
}
+ bool profile = false;
p = arch;
- if (startswith (p, "rv32"))
+ if (riscv_find_profiles (rps, &p))
+ {
+ /* Check if using Profiles. */
+ profile = true;
+ }
+ else if (startswith (p, "rv32"))
{
*rps->xlen = 32;
p += 4;
@@ -2271,13 +2421,13 @@ riscv_parse_subset (riscv_parse_subset_t *rps,
string is empty. */
if (strlen (arch))
rps->error_handler (
- _("%s: ISA string must begin with rv32 or rv64"),
+ _("%s: ISA string must begin with rv32, rv64 or Profiles"),
arch);
return false;
}
/* Parse single standard and prefixed extensions. */
- if (riscv_parse_extensions (rps, arch, p) == NULL)
+ if (riscv_parse_extensions (rps, arch, p, profile) == NULL)
return false;
/* Finally add implicit extensions according to the current
@@ -2801,6 +2951,10 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps,
case INSN_CLASS_SMCTR_OR_SSCTR:
return (riscv_subset_supports (rps, "smctr")
|| riscv_subset_supports (rps, "ssctr"));
+ case INSN_CLASS_ZILSD:
+ return riscv_subset_supports (rps, "zilsd");
+ case INSN_CLASS_ZCLSD:
+ return riscv_subset_supports (rps, "zclsd");
case INSN_CLASS_SMRNMI:
return riscv_subset_supports (rps, "smrnmi");
case INSN_CLASS_SVINVAL:
@@ -2863,6 +3017,14 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps,
return riscv_subset_supports (rps, "xsfvqmaccdod");
case INSN_CLASS_XSFVFNRCLIPXFQF:
return riscv_subset_supports (rps, "xsfvfnrclipxfqf");
+ case INSN_CLASS_XMIPSCBOP:
+ return riscv_subset_supports (rps, "xmipscbop");
+ case INSN_CLASS_XMIPSCMOV:
+ return riscv_subset_supports (rps, "xmipscmov");
+ case INSN_CLASS_XMIPSEXECTL:
+ return riscv_subset_supports (rps, "xmipsexectl");
+ case INSN_CLASS_XMIPSLSP:
+ return riscv_subset_supports (rps, "xmipslsp");
default:
rps->error_handler
(_("internal: unreachable INSN_CLASS_*"));
@@ -3110,6 +3272,10 @@ riscv_multi_subset_supports_ext (riscv_parse_subset_t *rps,
return "zcmt";
case INSN_CLASS_SMCTR_OR_SSCTR:
return _("smctr' or `ssctr");
+ case INSN_CLASS_ZILSD:
+ return "zilsd";
+ case INSN_CLASS_ZCLSD:
+ return "zclsd";
case INSN_CLASS_SMRNMI:
return "smrnmi";
case INSN_CLASS_SVINVAL:
@@ -3214,3 +3380,174 @@ riscv_print_extensions (void)
}
printf ("\n");
}
+
+/* Find the first input bfd with GNU property and merge it with GPROP. If no
+ such input is found, add it to a new section at the last input. Update
+ GPROP accordingly. */
+
+bfd *
+_bfd_riscv_elf_link_setup_gnu_properties (struct bfd_link_info *info,
+ uint32_t *and_prop_p)
+{
+ asection *sec;
+ bfd *pbfd;
+ bfd *ebfd = NULL;
+ elf_property *prop;
+
+ uint32_t and_prop = *and_prop_p;
+
+ /* Find a normal input file with GNU property note. */
+ for (pbfd = info->input_bfds; pbfd != NULL; pbfd = pbfd->link.next)
+ if (bfd_get_flavour (pbfd) == bfd_target_elf_flavour
+ && bfd_count_sections (pbfd) != 0)
+ {
+ ebfd = pbfd;
+
+ if (elf_properties (pbfd) != NULL)
+ break;
+ }
+
+ /* If ebfd != NULL it is either an input with property note or the last
+ input. Either way if we have and_prop, we should add it (by
+ creating a section if needed). */
+ if (ebfd != NULL && (and_prop))
+ {
+ prop = _bfd_elf_get_property (ebfd, GNU_PROPERTY_RISCV_FEATURE_1_AND, 4);
+
+ prop->u.number |= and_prop;
+ prop->pr_kind = property_number;
+
+ /* pbfd being NULL implies ebfd is the last input. Create the GNU
+ property note section. */
+ if (pbfd == NULL)
+ {
+ sec
+ = bfd_make_section_with_flags (ebfd, NOTE_GNU_PROPERTY_SECTION_NAME,
+ (SEC_ALLOC | SEC_LOAD | SEC_IN_MEMORY
+ | SEC_READONLY | SEC_HAS_CONTENTS
+ | SEC_DATA));
+ if (sec == NULL)
+ info->callbacks->einfo (
+ _ ("%F%P: failed to create GNU property section\n"));
+
+ elf_section_type (sec) = SHT_NOTE;
+ }
+ }
+
+ pbfd = _bfd_elf_link_setup_gnu_properties (info);
+
+ if (bfd_link_relocatable (info))
+ return pbfd;
+
+ /* If pbfd has any GNU_PROPERTY_RISCV_FEATURE_1_AND properties, update
+ and_prop accordingly. */
+ if (pbfd != NULL)
+ {
+ elf_property_list *p;
+ elf_property_list *plist = elf_properties (pbfd);
+
+ if ((p = _bfd_elf_find_property (plist, GNU_PROPERTY_RISCV_FEATURE_1_AND,
+ NULL))
+ != NULL)
+ and_prop = p->property.u.number
+ & (GNU_PROPERTY_RISCV_FEATURE_1_CFI_LP_UNLABELED
+ | GNU_PROPERTY_RISCV_FEATURE_1_CFI_SS);
+ }
+
+ *and_prop_p = and_prop;
+ return pbfd;
+}
+
+/* Define elf_backend_parse_gnu_properties for RISC-V. */
+
+enum elf_property_kind
+_bfd_riscv_elf_parse_gnu_properties (bfd *abfd, unsigned int type,
+ bfd_byte *ptr, unsigned int datasz)
+{
+ elf_property *prop;
+
+ switch (type)
+ {
+ case GNU_PROPERTY_RISCV_FEATURE_1_AND:
+ if (datasz != 4)
+ {
+ _bfd_error_handler (_ (
+ "error: %pB: <corrupt RISC-V used size: 0x%x>"),
+ abfd, datasz);
+ return property_corrupt;
+ }
+ prop = _bfd_elf_get_property (abfd, type, datasz);
+ /* Combine properties of the same type. */
+ prop->u.number |= bfd_h_get_32 (abfd, ptr);
+ prop->pr_kind = property_number;
+ break;
+
+ default:
+ return property_ignored;
+ }
+
+ return property_number;
+}
+
+/* Merge RISC-V GNU property BPROP with APROP also accounting for PROP.
+ If APROP isn't NULL, merge it with BPROP and/or PROP. Vice-versa if BROP
+ isn't NULL. Return TRUE if there is any update to APROP or if BPROP should
+ be merge with ABFD. */
+
+bool
+_bfd_riscv_elf_merge_gnu_properties
+ (struct bfd_link_info *info ATTRIBUTE_UNUSED, bfd *abfd ATTRIBUTE_UNUSED,
+ elf_property *aprop, elf_property *bprop, uint32_t and_prop)
+{
+ unsigned int orig_number;
+ bool updated = false;
+ unsigned int pr_type = aprop != NULL ? aprop->pr_type : bprop->pr_type;
+
+ switch (pr_type)
+ {
+ case GNU_PROPERTY_RISCV_FEATURE_1_AND: {
+ if (aprop != NULL && bprop != NULL)
+ {
+ orig_number = aprop->u.number;
+ aprop->u.number = (orig_number & bprop->u.number) | and_prop;
+ updated = orig_number != aprop->u.number;
+ /* Remove the property if all feature bits are cleared. */
+ if (aprop->u.number == 0)
+ aprop->pr_kind = property_remove;
+ break;
+ }
+ /* If either is NULL, the AND would be 0 so, if there is
+ any PROP, asign it to the input that is not NULL. */
+ if (and_prop)
+ {
+ if (aprop != NULL)
+ {
+ orig_number = aprop->u.number;
+ aprop->u.number = and_prop;
+ updated = orig_number != aprop->u.number;
+ }
+ else if (bprop != NULL)
+ {
+ bprop->u.number = and_prop;
+ updated = true;
+ }
+ /* Shouldn't happen because we checked one of APROP or BPROP !=
+ * NULL. */
+ else
+ abort ();
+ }
+ /* No PROP and BPROP is NULL, so remove APROP. */
+ else if (!and_prop && bprop == NULL && aprop != NULL)
+ {
+ aprop->pr_kind = property_remove;
+ updated = true;
+ }
+ }
+ break;
+
+ default:
+ abort ();
+ }
+
+ return updated;
+}
diff --git a/bfd/elfxx-riscv.h b/bfd/elfxx-riscv.h
index 1ce682a..db494d0 100644
--- a/bfd/elfxx-riscv.h
+++ b/bfd/elfxx-riscv.h
@@ -27,6 +27,12 @@
#define RISCV_UNKNOWN_VERSION -1
+typedef enum
+{
+ PLT_NORMAL = 0x0, /* Normal plts. */
+ PLT_ZICFILP_UNLABELED = 0x1 /* Landing pad unlabeled plts. */
+} riscv_plt_type;
+
struct riscv_elf_params
{
/* Whether to relax code sequences to GP-relative addressing. */
@@ -128,3 +134,16 @@ extern void
bfd_elf32_riscv_set_data_segment_info (struct bfd_link_info *, int *);
extern void
bfd_elf64_riscv_set_data_segment_info (struct bfd_link_info *, int *);
+
+extern bfd *
+_bfd_riscv_elf_link_setup_gnu_properties (struct bfd_link_info *, uint32_t *);
+
+extern enum elf_property_kind
+_bfd_riscv_elf_parse_gnu_properties (bfd *, unsigned int, bfd_byte *,
+ unsigned int);
+
+extern bool
+_bfd_riscv_elf_merge_gnu_properties (struct bfd_link_info *, bfd *,
+ elf_property *, elf_property *, uint32_t);
+
+#define elf_backend_parse_gnu_properties _bfd_riscv_elf_parse_gnu_properties
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index d367fea..3cb3c14 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -3230,6 +3230,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
"BFD_RELOC_AARCH64_LD_GOT_LO12_NC",
"BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC",
"BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC",
+ "BFD_RELOC_AARCH64_BRANCH9",
"BFD_RELOC_TILEPRO_COPY",
"BFD_RELOC_TILEPRO_GLOB_DAT",
"BFD_RELOC_TILEPRO_JMP_SLOT",
diff --git a/bfd/pe-aarch64.c b/bfd/pe-aarch64.c
index 64975d1..2204a51 100644
--- a/bfd/pe-aarch64.c
+++ b/bfd/pe-aarch64.c
@@ -48,6 +48,8 @@
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".idata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
+{ COFF_SECTION_NAME_PARTIAL_MATCH (".didat"), \
+ COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_EXACT_MATCH (".pdata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
diff --git a/bfd/pe-arm.c b/bfd/pe-arm.c
index fe4e18e..5efa559 100644
--- a/bfd/pe-arm.c
+++ b/bfd/pe-arm.c
@@ -43,6 +43,8 @@
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".idata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
+{ COFF_SECTION_NAME_PARTIAL_MATCH (".didat"), \
+ COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_EXACT_MATCH (".pdata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
diff --git a/bfd/pe-i386.c b/bfd/pe-i386.c
index 07f6743..3742fd8 100644
--- a/bfd/pe-i386.c
+++ b/bfd/pe-i386.c
@@ -36,6 +36,8 @@
#define COFF_SECTION_ALIGNMENT_ENTRIES \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".idata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
+{ COFF_SECTION_NAME_PARTIAL_MATCH (".didat"), \
+ COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_EXACT_MATCH (".pdata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
diff --git a/bfd/pe-x86_64.c b/bfd/pe-x86_64.c
index d56d75d..9151aac 100644
--- a/bfd/pe-x86_64.c
+++ b/bfd/pe-x86_64.c
@@ -57,6 +57,8 @@
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 4 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".idata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
+{ COFF_SECTION_NAME_PARTIAL_MATCH (".didat"), \
+ COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_EXACT_MATCH (".pdata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c
index 9938108..19f38a4 100644
--- a/bfd/peXXigen.c
+++ b/bfd/peXXigen.c
@@ -593,7 +593,7 @@ _bfd_XXi_swap_aouthdr_out (bfd * abfd, void * in, void * out)
struct internal_extra_pe_aouthdr *extra = &pe->pe_opthdr;
PEAOUTHDR *aouthdr_out = (PEAOUTHDR *) out;
bfd_vma sa, fa, ib;
- IMAGE_DATA_DIRECTORY idata2, idata5, tls, loadcfg;
+ IMAGE_DATA_DIRECTORY idata2, idata5, didat2, tls, loadcfg;
sa = extra->SectionAlignment;
fa = extra->FileAlignment;
@@ -601,6 +601,7 @@ _bfd_XXi_swap_aouthdr_out (bfd * abfd, void * in, void * out)
idata2 = pe->pe_opthdr.DataDirectory[PE_IMPORT_TABLE];
idata5 = pe->pe_opthdr.DataDirectory[PE_IMPORT_ADDRESS_TABLE];
+ didat2 = pe->pe_opthdr.DataDirectory[PE_DELAY_IMPORT_DESCRIPTOR];
tls = pe->pe_opthdr.DataDirectory[PE_TLS_TABLE];
loadcfg = pe->pe_opthdr.DataDirectory[PE_LOAD_CONFIG_TABLE];
@@ -651,6 +652,7 @@ _bfd_XXi_swap_aouthdr_out (bfd * abfd, void * in, void * out)
a final link is going to be performed, it can overwrite them. */
extra->DataDirectory[PE_IMPORT_TABLE] = idata2;
extra->DataDirectory[PE_IMPORT_ADDRESS_TABLE] = idata5;
+ extra->DataDirectory[PE_DELAY_IMPORT_DESCRIPTOR] = didat2;
extra->DataDirectory[PE_TLS_TABLE] = tls;
extra->DataDirectory[PE_LOAD_CONFIG_TABLE] = loadcfg;
@@ -1001,6 +1003,7 @@ _bfd_XXi_swap_scnhdr_out (bfd * abfd, void * in, void * out)
{ ".arch", IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_DISCARDABLE | IMAGE_SCN_ALIGN_8BYTES },
{ ".bss", IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_UNINITIALIZED_DATA | IMAGE_SCN_MEM_WRITE },
{ ".data", IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_WRITE },
+ { ".didat", IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_WRITE },
{ ".edata", IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA },
{ ".idata", IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA },
{ ".pdata", IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA },
@@ -4543,6 +4546,52 @@ _bfd_XXi_final_link_postscript (bfd * abfd, struct coff_final_link_info *pfinfo)
}
}
+ /* The delay import directory. This is .didat$2 */
+ h1 = coff_link_hash_lookup (coff_hash_table (info),
+ "__DELAY_IMPORT_DIRECTORY_start__", false, false,
+ true);
+ if (h1 != NULL
+ && (h1->root.type == bfd_link_hash_defined
+ || h1->root.type == bfd_link_hash_defweak)
+ && h1->root.u.def.section != NULL
+ && h1->root.u.def.section->output_section != NULL)
+ {
+ bfd_vma delay_va;
+
+ delay_va =
+ (h1->root.u.def.value
+ + h1->root.u.def.section->output_section->vma
+ + h1->root.u.def.section->output_offset);
+
+ h1 = coff_link_hash_lookup (coff_hash_table (info),
+ "__DELAY_IMPORT_DIRECTORY_end__", false,
+ false, true);
+ if (h1 != NULL
+ && (h1->root.type == bfd_link_hash_defined
+ || h1->root.type == bfd_link_hash_defweak)
+ && h1->root.u.def.section != NULL
+ && h1->root.u.def.section->output_section != NULL)
+ {
+ pe_data (abfd)->pe_opthdr.DataDirectory[PE_DELAY_IMPORT_DESCRIPTOR].Size =
+ ((h1->root.u.def.value
+ + h1->root.u.def.section->output_section->vma
+ + h1->root.u.def.section->output_offset)
+ - delay_va);
+ if (pe_data (abfd)->pe_opthdr.DataDirectory[PE_DELAY_IMPORT_DESCRIPTOR].Size
+ != 0)
+ pe_data (abfd)->pe_opthdr.DataDirectory[PE_DELAY_IMPORT_DESCRIPTOR].VirtualAddress =
+ delay_va - pe_data (abfd)->pe_opthdr.ImageBase;
+ }
+ else
+ {
+ _bfd_error_handler
+ (_("%pB: unable to fill in DataDirectory[%d]: %s not defined correctly"),
+ abfd, PE_DELAY_IMPORT_DESCRIPTOR,
+ "__DELAY_IMPORT_DIRECTORY_end__");
+ result = false;
+ }
+ }
+
name[0] = bfd_get_symbol_leading_char (abfd);
strcpy (name + !!name[0], "_tls_used");
h1 = coff_link_hash_lookup (coff_hash_table (info), name, false, false, true);
diff --git a/bfd/pei-aarch64.c b/bfd/pei-aarch64.c
index 3d7f5b3..00f38e0 100644
--- a/bfd/pei-aarch64.c
+++ b/bfd/pei-aarch64.c
@@ -49,6 +49,8 @@
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".idata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
+{ COFF_SECTION_NAME_PARTIAL_MATCH (".didat"), \
+ COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_EXACT_MATCH (".pdata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
diff --git a/bfd/pei-arm.c b/bfd/pei-arm.c
index 2abc14d..07cebb5 100644
--- a/bfd/pei-arm.c
+++ b/bfd/pei-arm.c
@@ -45,6 +45,8 @@
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".idata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
+{ COFF_SECTION_NAME_PARTIAL_MATCH (".didat"), \
+ COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_EXACT_MATCH (".pdata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
diff --git a/bfd/pei-i386.c b/bfd/pei-i386.c
index 676a824..a26f170 100644
--- a/bfd/pei-i386.c
+++ b/bfd/pei-i386.c
@@ -35,6 +35,8 @@
#define COFF_SECTION_ALIGNMENT_ENTRIES \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".idata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
+{ COFF_SECTION_NAME_PARTIAL_MATCH (".didat"), \
+ COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_EXACT_MATCH (".pdata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
diff --git a/bfd/pei-loongarch64.c b/bfd/pei-loongarch64.c
index 4b3a30d..f22498c 100644
--- a/bfd/pei-loongarch64.c
+++ b/bfd/pei-loongarch64.c
@@ -49,6 +49,8 @@
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".idata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
+{ COFF_SECTION_NAME_PARTIAL_MATCH (".didat"), \
+ COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_EXACT_MATCH (".pdata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
diff --git a/bfd/pei-riscv64.c b/bfd/pei-riscv64.c
index e87aa42..c4ae7bf 100644
--- a/bfd/pei-riscv64.c
+++ b/bfd/pei-riscv64.c
@@ -49,6 +49,8 @@
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".idata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
+{ COFF_SECTION_NAME_PARTIAL_MATCH (".didat"), \
+ COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_EXACT_MATCH (".pdata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
diff --git a/bfd/pei-x86_64.c b/bfd/pei-x86_64.c
index 3f8f255..a5c2fd8 100644
--- a/bfd/pei-x86_64.c
+++ b/bfd/pei-x86_64.c
@@ -51,6 +51,8 @@
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 4 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".idata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
+{ COFF_SECTION_NAME_PARTIAL_MATCH (".didat"), \
+ COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_EXACT_MATCH (".pdata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
diff --git a/bfd/po/ms.po b/bfd/po/ms.po
index 415065a..92b41d0 100644
--- a/bfd/po/ms.po
+++ b/bfd/po/ms.po
@@ -8,7 +8,7 @@ msgstr ""
"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-02-25 23:26+0800\n"
+"PO-Revision-Date: 2025-05-26 00:22+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.5\n"
+"X-Generator: Poedit 3.6\n"
#: aout-cris.c:196
#, c-format
@@ -35,9 +35,9 @@ msgid "%pB: bad relocation record imported: %d"
msgstr ""
#: aoutx.h:444 pdp11.c:481
-#, c-format
+#, fuzzy, c-format
msgid "%pB: %#<PRIx64> overflows header %s field"
-msgstr ""
+msgstr "Badan mesej adalah kosong tetapi tanda tangan dalam medan pengepala ialah \"(%s)\""
#: aoutx.h:1269 aoutx.h:1598 pdp11.c:1246 pdp11.c:1495
#, c-format
@@ -70,9 +70,9 @@ msgid "%pB: attempt to write out unknown reloc type"
msgstr ""
#: aoutx.h:4047 pdp11.c:3409
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unsupported relocation type"
-msgstr ""
+msgstr "Jenis _MIME tidak disokong %s"
#. Unknown relocation.
#: aoutx.h:4367 coff-alpha.c:601 coff-mips.c:356 coff-rs6000.c:3037
@@ -105,14 +105,14 @@ msgstr ""
#: 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
+#, fuzzy, c-format
msgid "%pB: unsupported relocation type %#x"
-msgstr ""
+msgstr "TYPE(x)"
#: aoutx.h:5387 pdp11.c:3825
-#, c-format
+#, fuzzy, c-format
msgid "%pB: relocatable link from %s to %s not supported"
-msgstr ""
+msgstr "Pertukaran dari set aksara \"%s\" ke \"UTF-8\" tidak disokong"
#: arc-got.h:69
#, c-format
@@ -133,32 +133,38 @@ msgid "%pB: plugin needed to handle lto object"
msgstr ""
#: archive.c:2644
+#, fuzzy
msgid "Reading archive file mod timestamp"
-msgstr ""
+msgstr "Setem masa penciptaan fail imej tidak ditetapkan dalam fail"
#: archive.c:2675
+#, fuzzy
msgid "Writing updated armap timestamp"
-msgstr ""
+msgstr "Dikemaskini"
#: bfd.c:777
msgid "no error"
msgstr "tiada ralat"
#: bfd.c:778
+#, fuzzy
msgid "system call error"
-msgstr ""
+msgstr "panggilan sistem fork() gagal"
#: bfd.c:779
+#, fuzzy
msgid "invalid bfd target"
-msgstr ""
+msgstr "Nilai sasaran tak sah."
#: bfd.c:780
+#, fuzzy
msgid "file in wrong format"
-msgstr ""
+msgstr "Format fail:"
#: bfd.c:781
+#, fuzzy
msgid "archive object file in wrong format"
-msgstr ""
+msgstr "Cipta arkib dengan objek terpilih"
#: bfd.c:782
#, fuzzy
@@ -166,9 +172,8 @@ msgid "invalid operation"
msgstr "Operasi tidak sah %d\n"
#: bfd.c:783
-#, fuzzy
msgid "memory exhausted"
-msgstr "memori keletihan"
+msgstr "kehabisan memori"
#: bfd.c:784
#, fuzzy
@@ -180,32 +185,39 @@ msgid "archive has no index; run ranlib to add one"
msgstr ""
#: bfd.c:786
+#, fuzzy
msgid "no more archived files"
-msgstr ""
+msgstr "Diarkib"
#: bfd.c:787
+#, fuzzy
msgid "malformed archive"
-msgstr ""
+msgstr "Respon cacat"
#: bfd.c:788
+#, fuzzy
msgid "DSO missing from command line"
-msgstr ""
+msgstr "Alatan KDE untuk pembukaan URL daripada baris arahan"
#: bfd.c:789
+#, fuzzy
msgid "file format not recognized"
-msgstr ""
+msgstr "PNM: Format fail tidak dikenal."
#: bfd.c:790
+#, fuzzy
msgid "file format is ambiguous"
-msgstr ""
+msgstr "Format Fail"
#: bfd.c:791
+#, fuzzy
msgid "section has no contents"
-msgstr ""
+msgstr "Kand_ungan"
#: bfd.c:792
+#, fuzzy
msgid "nonrepresentable section on output"
-msgstr ""
+msgstr "&Seksyen:"
#: bfd.c:793
msgid "symbol needs debug section which does not exist"
@@ -217,8 +229,9 @@ msgid "bad value"
msgstr "nilai salah untuk maklumat keadaan ikon terlabuh %s"
#: bfd.c:795
+#, fuzzy
msgid "file truncated"
-msgstr ""
+msgstr "PNM: Fail seperti dipotong."
#: bfd.c:796
#, fuzzy
@@ -226,8 +239,9 @@ msgid "file too big"
msgstr "Fail terlalu besar."
#: bfd.c:797
+#, fuzzy
msgid "sorry, cannot handle this file"
-msgstr ""
+msgstr "pluma tidak dapat mengendali lokasi ini."
#: bfd.c:798
#, fuzzy, c-format
@@ -235,23 +249,24 @@ msgid "error reading %s: %s"
msgstr "Ralat membaca %s: %s"
#: bfd.c:799
+#, fuzzy
msgid "#<invalid error code>"
-msgstr ""
+msgstr "kod kesalahan"
#: bfd.c:2242
-#, c-format
+#, fuzzy, c-format
msgid "BFD %s assertion fail %s:%d"
-msgstr ""
+msgstr "Gagal sebelum mengembalikan media kepada pengguna: %s"
#: bfd.c:2255
-#, c-format
+#, fuzzy, c-format
msgid "%s: BFD %s internal error, aborting at %s:%d in %s\n"
-msgstr ""
+msgstr "RALAT DALAMAN pada %s:%d: regex hilang atau tidak sah"
#: bfd.c:2259
-#, c-format
+#, fuzzy, c-format
msgid "%s: BFD %s internal error, aborting at %s:%d\n"
-msgstr ""
+msgstr "RALAT DALAMAN pada %s:%d: regex hilang atau tidak sah"
#: bfd.c:2262
#, fuzzy, c-format
@@ -264,9 +279,9 @@ msgid "warning: writing section `%pA' at huge (ie negative) file offset"
msgstr ""
#: cache.c:290
-#, c-format
+#, fuzzy, c-format
msgid "reopening %pB: %s"
-msgstr ""
+msgstr "PB"
#: coff-alpha.c:450
#, c-format
@@ -295,8 +310,9 @@ msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n"
msgstr ""
#: coff-alpha.c:1489
+#, fuzzy
msgid "using multiple gp values"
-msgstr ""
+msgstr "Muat P_GP"
#: coff-alpha.c:1987
#, c-format
@@ -334,9 +350,9 @@ msgid "%pB: TOC reloc at %#<PRIx64> to symbol `%s' with no TOC entry"
msgstr ""
#: coff-rs6000.c:3251 coff64-rs6000.c:848
-#, c-format
+#, fuzzy, c-format
msgid "Unable to find the stub entry targeting %s"
-msgstr ""
+msgstr "Tak dapat hantar kemasukan senaraimain \"%s\""
#: coff-rs6000.c:3366
#, c-format
@@ -389,9 +405,9 @@ msgid "%pB: %#<PRIx64>: warning: could not find expected COUNT reloc"
msgstr ""
#: coff-sh.c:983 elf32-sh.c:738
-#, c-format
+#, fuzzy, c-format
msgid "%pB: %#<PRIx64>: warning: bad count"
-msgstr ""
+msgstr "Amaran: Tandatangan rosak."
#: coff-sh.c:1349 coff-sh.c:2636 elf32-sh.c:1138 elf32-sh.c:1506
#, c-format
@@ -415,8 +431,9 @@ msgid "%pB: warning: illegal symbol index %ld in relocs"
msgstr ""
#: coff-x86_64.c:147
+#, fuzzy
msgid "R_AMD64_IMAGEBASE with __ImageBase undefined"
-msgstr ""
+msgstr "Tidak ditakrif"
#: coff64-rs6000.c:447 coff64-rs6000.c:554
#, c-format
@@ -439,9 +456,9 @@ msgid "%pB: unable to load COMDAT section name"
msgstr ""
#: coffcode.h:976
-#, c-format
+#, fuzzy, c-format
msgid "%pB: warning: no symbol for section '%s' found"
-msgstr ""
+msgstr "simbol tidak dijumpai di dalam pengeluaran: %.*s"
#: coffcode.h:1148
#, c-format
@@ -487,9 +504,9 @@ msgid "%pB: reloc against a non-existent symbol index: %ld"
msgstr ""
#: coffcode.h:3162
-#, c-format
+#, fuzzy, c-format
msgid "%pB: too many sections (%d)"
-msgstr ""
+msgstr "Terlalu banyak titik henti. Maksimum ialah %d."
#: coffcode.h:3690
#, c-format
@@ -537,14 +554,14 @@ msgid "%pB: illegal relocation type %d at address %#<PRIx64>"
msgstr ""
#: coffgen.c:255 elf.c:1033
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unable to compress section %s"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: coffgen.c:265 elf.c:1043
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unable to decompress section %s"
-msgstr ""
+msgstr "Sumber pada \"%s\" gagal dinyahmampatkan"
#: coffgen.c:1778
#, c-format
@@ -558,9 +575,9 @@ msgid "<corrupt>"
msgstr "Fail rosak?"
#: coffgen.c:2191
-#, c-format
+#, fuzzy, c-format
msgid "<corrupt info> %s"
-msgstr ""
+msgstr "PNG imej kenit rosak: '%s'"
#: coffgen.c:2797 elflink.c:15435 linker.c:3011
msgid "%F%P: already_linked_table: %E\n"
@@ -572,8 +589,12 @@ msgid "removing unused section '%pA' in file '%pB'"
msgstr ""
#: coffgen.c:3216 elflink.c:14606
+#, fuzzy
msgid "warning: gc-sections option ignored"
msgstr ""
+"Amaran mengenai %(cleaner)s - %(option)s:\n"
+"\n"
+"%(warning)s"
#: cofflink.c:398
#, c-format
@@ -631,20 +652,20 @@ msgid "warning: unable to update contents of %s section in %pB"
msgstr ""
#: dwarf2.c:702
-#, c-format
+#, fuzzy, c-format
msgid "DWARF error: can't find %s section."
-msgstr ""
+msgstr "%s: tidak dapat mencari seksyen .text dalam %s\n"
#: dwarf2.c:710
-#, c-format
+#, fuzzy, c-format
msgid "DWARF error: section %s has no contents"
-msgstr ""
+msgstr "Ralat menyenaraikan kandungan folder '%s': %s"
#. PR 26946
#: dwarf2.c:719
-#, c-format
+#, fuzzy, c-format
msgid "DWARF error: section %s is too big"
-msgstr ""
+msgstr "Ralat: Saiz mesej %d terlalu besar\n"
#: dwarf2.c:754
#, c-format
@@ -665,8 +686,9 @@ msgid "DWARF error: mangled line number section (bad file number)"
msgstr ""
#: dwarf2.c:2614
+#, fuzzy
msgid "DWARF error: zero format count"
-msgstr ""
+msgstr "Sembunyi kiraan bila kosong:"
#: dwarf2.c:2624
#, c-format
@@ -762,58 +784,58 @@ msgid "%pB: warning: isymMax (%ld) is greater than ifdMax (%ld)"
msgstr ""
#: ecoff.c:1313
-#, c-format
+#, fuzzy, c-format
msgid "unknown basic type %d"
-msgstr ""
+msgstr "Jenis anak panah %d tak diketahui\n"
#: ecoff.c:1571
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
" End+1 symbol: %ld"
-msgstr ""
+msgstr "Tetapkan alamat &akhir simbol"
#: ecoff.c:1578 ecoff.c:1581
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
" First symbol: %ld"
-msgstr ""
+msgstr "Memadam fail %ld drpd %ld"
#: ecoff.c:1596
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
" End+1 symbol: %-7ld Type: %s"
-msgstr ""
+msgstr "jenis <%s> digunakan, tetapi tidak dihubungkan ke sebarang simbol"
#: ecoff.c:1604
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
" Local symbol: %ld"
-msgstr ""
+msgstr "Memadam fail %ld drpd %ld"
#: ecoff.c:1612
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
" struct; End+1 symbol: %ld"
-msgstr ""
+msgstr "Lumpuhkan simbol _akhir baris"
#: ecoff.c:1617
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
" union; End+1 symbol: %ld"
-msgstr ""
+msgstr "Lumpuhkan simbol _akhir baris"
#: ecoff.c:1622
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
" enum; End+1 symbol: %ld"
-msgstr ""
+msgstr "Lumpuhkan simbol _akhir baris"
#: ecoff.c:1630
#, fuzzy, c-format
@@ -823,8 +845,9 @@ msgid ""
msgstr "Indeks tidak sah untuk jenis %s untuk jenis asa %s"
#: elf-attrs.c:417 elf-attrs.c:447 elf-attrs.c:623
+#, fuzzy
msgid "error adding attribute"
-msgstr ""
+msgstr "Ralat ketika menambah hubungan"
#: elf-attrs.c:503
#, c-format
@@ -866,9 +889,9 @@ msgid "further warnings about FDE encoding preventing .eh_frame_hdr generation d
msgstr ""
#: elf-eh-frame.c:1872
-#, c-format
+#, fuzzy, c-format
msgid "%pB: %pA not in order"
-msgstr ""
+msgstr "PA="
#: elf-eh-frame.c:1886
#, c-format
@@ -890,13 +913,14 @@ msgid "invalid output section for .eh_frame_entry: %pA"
msgstr ""
#: elf-eh-frame.c:2340
-#, c-format
+#, fuzzy, c-format
msgid "invalid contents in %pA section"
-msgstr ""
+msgstr "PA="
#: elf-eh-frame.c:2496
+#, fuzzy
msgid ".eh_frame_hdr entry overflow"
-msgstr ""
+msgstr "Lukis bingkai disekeliling masukan"
#: elf-eh-frame.c:2498
msgid ".eh_frame_hdr refers to overlapping FDEs"
@@ -917,8 +941,9 @@ msgstr ""
#: 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
+#, fuzzy
msgid "internal error: out of range error"
-msgstr ""
+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
@@ -929,15 +954,17 @@ msgstr ""
#: 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
+#, fuzzy
msgid "internal error: unsupported relocation error"
-msgstr ""
+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
+#, fuzzy
msgid "internal error: dangerous error"
-msgstr ""
+msgstr "Ralat dalaman: Ralat tidak diketahui"
#: 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
@@ -1062,18 +1089,19 @@ msgid "%F%P: failed to create GNU property section\n"
msgstr ""
#: elf-properties.c:644 elfxx-aarch64.c:752 elfxx-x86.c:4353
-#, c-format
+#, fuzzy, c-format
msgid "%F%pA: failed to align section\n"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#. Merge .note.gnu.property sections.
#: elf-properties.c:749 elf-properties.c:751
msgid "\n"
-msgstr ""
+msgstr "\n"
#: elf-properties.c:750
+#, fuzzy
msgid "Merging program properties\n"
-msgstr ""
+msgstr "Tiada Penggabungan"
#: elf-sframe.c:239
#, c-format
@@ -1089,9 +1117,9 @@ msgid "input SFrame sections with different format versions prevent .sframe gene
msgstr ""
#: elf.c:299
-#, c-format
+#, fuzzy, c-format
msgid "%pB: string table [%u] is corrupt"
-msgstr ""
+msgstr "Fail nampaknya rosak. Melangkau jadual. "
#. PR 17512: file: f057ec89.
#: elf.c:328
@@ -1111,9 +1139,9 @@ msgid "%pB symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section"
msgstr ""
#: elf.c:614
-#, c-format
+#, fuzzy, c-format
msgid "%pB: could not read contents of group [%u]"
-msgstr ""
+msgstr "Tidak dapat membaca kandungan %s"
#: elf.c:645
#, c-format
@@ -1146,52 +1174,52 @@ msgid "%pB: invalid sh_link field (%d) in section number %d"
msgstr ""
#: elf.c:1253
-#, c-format
+#, fuzzy, c-format
msgid "%pB: failed to find link section for section %d"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: elf.c:1280
-#, c-format
+#, fuzzy, c-format
msgid "%pB: failed to find info section for section %d"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: elf.c:1457
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"Program Header:\n"
-msgstr ""
+msgstr "Program"
#: elf.c:1499
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"Dynamic Section:\n"
-msgstr ""
+msgstr "dinamik"
#: elf.c:1638
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"Version definitions:\n"
-msgstr ""
+msgstr "Sedang mentakrifkan item..."
#: elf.c:1663
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"Version References:\n"
-msgstr ""
+msgstr "Rujukan:"
#: elf.c:1668
-#, c-format
+#, fuzzy, c-format
msgid " required from %s:\n"
-msgstr ""
+msgstr "diperlukan=%s"
#: elf.c:1917
-#, c-format
+#, fuzzy, c-format
msgid "%pB: DT_STRTAB table is corrupt"
-msgstr ""
+msgstr "Fail nampaknya rosak. Melangkau jadual. "
#: elf.c:2426
#, c-format
@@ -1219,9 +1247,9 @@ msgid "%pB: warning: secondary relocation section '%s' for section %pA found - i
msgstr ""
#: elf.c:2879 elf.c:2893 elf.c:2904 elf.c:2917
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unknown type [%#x] section `%s'"
-msgstr ""
+msgstr "Seksyen tidak diketahui: %s"
#: elf.c:3586
#, c-format
@@ -1234,9 +1262,9 @@ msgid "warning: section `%pA' type changed to PROGBITS"
msgstr ""
#: elf.c:4130
-#, c-format
+#, fuzzy, c-format
msgid "%pB: too many sections: %u"
-msgstr ""
+msgstr "Terlalu banyak klien. Sambungan daripada %s:%u ditolak."
#: elf.c:4216
#, c-format
@@ -1258,19 +1286,19 @@ msgid "%F%P: failed to size relative relocations\n"
msgstr ""
#: elf.c:5440
-#, c-format
+#, fuzzy, c-format
msgid "%pB: TLS sections are not adjacent:"
-msgstr ""
+msgstr "PB"
#: elf.c:5447
#, c-format
msgid "\t TLS: %pA"
-msgstr ""
+msgstr "\t TLS: %pA"
#: elf.c:5451
-#, c-format
+#, fuzzy, c-format
msgid "\tnon-TLS: %pA"
-msgstr ""
+msgstr "PA="
#: elf.c:6075
#, c-format
@@ -1316,14 +1344,14 @@ msgid "%pB: error: non-load segment %d includes file header and/or program heade
msgstr ""
#: elf.c:6862
-#, c-format
+#, fuzzy, c-format
msgid "error: %pB has a TLS segment with execute permission"
-msgstr ""
+msgstr "Proses mempunyai keizinan untuk melakukan arahan yang terkandung di dalam segmen ingatan."
#: elf.c:6868
-#, c-format
+#, fuzzy, c-format
msgid "warning: %pB has a TLS segment with execute permission"
-msgstr ""
+msgstr "Proses mempunyai keizinan untuk melakukan arahan yang terkandung di dalam segmen ingatan."
#: elf.c:6883
#, c-format
@@ -1336,9 +1364,9 @@ msgid "warning: %pB has a LOAD segment with RWX permissions"
msgstr ""
#: elf.c:7284
-#, c-format
+#, fuzzy, c-format
msgid "%pB: symbol `%s' required but not present"
-msgstr ""
+msgstr "Satu unsur (%s) diperlukan tidak hadir."
#: elf.c:7661
#, c-format
@@ -1361,14 +1389,14 @@ msgid "unable to find equivalent output section for symbol '%s' from section '%s
msgstr ""
#: elf.c:9300
-#, c-format
+#, fuzzy, c-format
msgid "%pB: .gnu.version_r invalid entry"
-msgstr ""
+msgstr "Masukan rangkaian tidak sah."
#: elf.c:9478
-#, c-format
+#, fuzzy, c-format
msgid "%pB: .gnu.version_d invalid entry"
-msgstr ""
+msgstr "%d masukan"
#: elf.c:9981
#, c-format
@@ -1382,9 +1410,9 @@ msgstr ""
#: 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
+#, fuzzy, c-format
msgid "%pB: %s unsupported"
-msgstr ""
+msgstr "PB"
#: elf.c:10923
#, c-format
@@ -1484,9 +1512,9 @@ msgstr ""
#: 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
+#, fuzzy, c-format
msgid "private flags = 0x%lx:"
-msgstr ""
+msgstr "[find_call] %s: 0x%lx ke 0x%lx\n"
#: elf32-arc.c:641
#, c-format
@@ -1514,14 +1542,14 @@ msgid "error: %pB: cannot mix rf16 with full register set %pB"
msgstr ""
#: elf32-arc.c:789
-#, c-format
+#, fuzzy, c-format
msgid "error: %pB: conflicting attributes %s: %s with %s"
-msgstr ""
+msgstr "keluaran berkonflik kepada fail %s"
#: elf32-arc.c:816
-#, c-format
+#, fuzzy, c-format
msgid "error: %pB: conflicting attributes %s"
-msgstr ""
+msgstr "Konflik tindakan untuk %s"
#: elf32-arc.c:921
#, c-format
@@ -1535,8 +1563,9 @@ msgid "%pB: uses different e_flags (%#x) fields than previous modules (%#x)"
msgstr ""
#: elf32-arc.c:1026
+#, fuzzy
msgid "error: the ARC4 architecture is no longer supported"
-msgstr ""
+msgstr "%s: -c tidak disokong pada rekabentuk %s\n"
#: elf32-arc.c:1032
msgid "warning: unset or old architecture flags; use default machine"
@@ -1562,9 +1591,9 @@ msgid "%pB(%pA): warning: unaligned access to symbol '%s' in the small data area
msgstr ""
#: elf32-arc.c:1926 elf32-rx.c:1491
-#, c-format
+#, fuzzy, c-format
msgid "%pB(%pA): internal error: out of range error"
-msgstr ""
+msgstr "Ralat kaji hurai: Nombor terkeluar dari Julat (mesti kecil daripada %1)"
#: elf32-arc.c:1931 elf32-rx.c:1496
#, c-format
@@ -1577,9 +1606,9 @@ msgid "%pB(%pA): internal error: dangerous relocation"
msgstr ""
#: elf32-arc.c:1941 elf32-rx.c:1506
-#, c-format
+#, fuzzy, c-format
msgid "%pB(%pA): internal error: unknown error"
-msgstr ""
+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
@@ -1620,9 +1649,9 @@ 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
-#, c-format
+#, fuzzy, c-format
msgid "%pB: cannot create stub entry %s"
-msgstr ""
+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
@@ -1646,9 +1675,9 @@ msgid "%pB: invalid standard symbol `%s'; it must be a global or weak function s
msgstr ""
#: elf32-arm.c:6100
-#, c-format
+#, fuzzy, c-format
msgid "%pB: absent standard symbol `%s'"
-msgstr ""
+msgstr "%s: tiada simbol sedemikian"
#: elf32-arm.c:6112
#, c-format
@@ -1656,14 +1685,14 @@ msgid "%pB: `%s' and its special symbol are in different sections"
msgstr ""
#: elf32-arm.c:6124
-#, c-format
+#, fuzzy, c-format
msgid "%pB: entry function `%s' not output"
-msgstr ""
+msgstr "Gagal mencari fungsi titik masukan \"%s\" dalam \"%s\": %s"
#: elf32-arm.c:6131
-#, c-format
+#, fuzzy, c-format
msgid "%pB: entry function `%s' is empty"
-msgstr ""
+msgstr "Fungsi kosong"
#: elf32-arm.c:6260
#, c-format
@@ -1681,19 +1710,19 @@ msgid "entry function `%s' disappeared from secure code"
msgstr ""
#: elf32-arm.c:6355
-#, c-format
+#, fuzzy, c-format
msgid "`%s' refers to a non entry function"
-msgstr ""
+msgstr "Tuju atau hubungan merujuk pada anak yang tidak wujud"
#: elf32-arm.c:6370
-#, c-format
+#, fuzzy, c-format
msgid "%pB: visibility of symbol `%s' has changed"
-msgstr ""
+msgstr "Format mel setempat Evolution telah berubah."
#: elf32-arm.c:6379
-#, c-format
+#, fuzzy, c-format
msgid "%pB: incorrect size for symbol `%s'"
-msgstr ""
+msgstr "Tetapkan &saiz simbol"
#: elf32-arm.c:6398
#, c-format
@@ -1710,9 +1739,9 @@ msgid "start address of `%s' is different from previous link"
msgstr ""
#: elf32-arm.c:7137 elf32-arm.c:7175
-#, c-format
+#, fuzzy, c-format
msgid "unable to find %s glue '%s' for '%s'"
-msgstr ""
+msgstr "Tak menjumpai fail include: \"%s\""
#: elf32-arm.c:7886
#, c-format
@@ -1731,9 +1760,9 @@ msgid "%pB: warning: selected STM32L4XX erratum workaround is not necessary for
msgstr ""
#: elf32-arm.c:8677 elf32-arm.c:8697 elf32-arm.c:8764 elf32-arm.c:8783
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unable to find %s veneer `%s'"
-msgstr ""
+msgstr "Tidak dapat mencari \"%s\""
#: elf32-arm.c:8990
#, c-format
@@ -1741,9 +1770,9 @@ msgid "%pB(%pA+%#x): error: multiple load detected in non-last IT block instruct
msgstr ""
#: elf32-arm.c:9088
-#, c-format
+#, fuzzy, c-format
msgid "invalid TARGET2 relocation type '%s'"
-msgstr ""
+msgstr "Indeks tidak sah untuk jenis %s untuk jenis asa %s"
#. FIXME: We ought to be able to generate thumb-1 PLT
#. instructions...
@@ -1778,12 +1807,14 @@ msgid "(%s): Unknown destination type (ARM/Thumb) in %pB"
msgstr ""
#: elf32-arm.c:10615
+#, fuzzy
msgid "shared object"
-msgstr ""
+msgstr "objek memori terkongsi"
#: elf32-arm.c:10618
+#, fuzzy
msgid "PIE executable"
-msgstr ""
+msgstr "Pai"
#: elf32-arm.c:10621
#, c-format
@@ -1826,20 +1857,24 @@ msgid "%pB(%pA+%#<PRIx64>): overflow whilst splitting %#<PRIx64> for group reloc
msgstr ""
#: elf32-arm.c:12704 elf32-arm.c:12863
+#, fuzzy
msgid "local symbol index too big"
-msgstr ""
+msgstr "Tiada simbol untuk indeks"
#: elf32-arm.c:12714 elf32-arm.c:12748
+#, fuzzy
msgid "no dynamic index information available"
-msgstr ""
+msgstr "Tidak tersedia bila menggunakan senarai main dinamik"
#: elf32-arm.c:12756
+#, fuzzy
msgid "invalid dynamic index"
-msgstr ""
+msgstr "ICO: Indeks ikon tidak sah."
#: elf32-arm.c:12873
+#, fuzzy
msgid "dynamic index information not available"
-msgstr ""
+msgstr "Tidak tersedia bila menggunakan senarai main dinamik"
#: elf32-arm.c:13304 elf32-sh.c:3566
#, c-format
@@ -1865,8 +1900,9 @@ msgstr "Diluar Julat"
#: elf32-arm.c:13506 elf32-pru.c:936 elf32-tic6x.c:2645 elfnn-aarch64.c:7411
#: elfnn-kvx.c:2801
+#, fuzzy
msgid "unsupported relocation"
-msgstr ""
+msgstr " (tidak disokong)"
#: elf32-arm.c:13514 elf32-pru.c:946 elf32-tic6x.c:2653 elfnn-aarch64.c:7419
#: elfnn-kvx.c:2809
@@ -1899,9 +1935,9 @@ msgid "warning: %pB: unknown EABI object attribute %d"
msgstr ""
#: elf32-arm.c:14470
-#, c-format
+#, fuzzy, c-format
msgid "error: %pB: unknown CPU architecture"
-msgstr ""
+msgstr "Ralat tidak diketahui"
#: elf32-arm.c:14508
#, c-format
@@ -1929,14 +1965,14 @@ msgid "error: %pB: conflicting architecture profiles %c/%c"
msgstr ""
#: elf32-arm.c:14977
-#, c-format
+#, fuzzy, c-format
msgid "warning: %pB: conflicting platform configuration"
-msgstr ""
+msgstr "Kunci berkonflik dari Conflict1 yang sepatutnya beri satu amaran"
#: elf32-arm.c:14986
-#, c-format
+#, fuzzy, c-format
msgid "error: %pB: conflicting use of R9"
-msgstr ""
+msgstr "Kunci berkonflik dengan julat 0~5 yang sepatutnya berikan satu ralat"
#: elf32-arm.c:14998
#, c-format
@@ -1969,44 +2005,44 @@ msgid "%pB has both the current and legacy Tag_MPextension_use attributes"
msgstr ""
#: elf32-arm.c:15203
-#, c-format
+#, fuzzy, c-format
msgid " [interworking enabled]"
-msgstr ""
+msgstr "tidak dihidupkan"
#: elf32-arm.c:15211
-#, c-format
+#, fuzzy, c-format
msgid " [VFP float format]"
-msgstr ""
+msgstr "apung"
#: elf32-arm.c:15213
-#, c-format
+#, fuzzy, c-format
msgid " [FPA float format]"
-msgstr ""
+msgstr "apung"
#: elf32-arm.c:15216
-#, c-format
+#, fuzzy, c-format
msgid " [floats passed in float registers]"
-msgstr ""
+msgstr "&Daftar"
#: elf32-arm.c:15219 elf32-arm.c:15304
-#, c-format
+#, fuzzy, c-format
msgid " [position independent]"
-msgstr ""
+msgstr "Dokumen bebas"
#: elf32-arm.c:15222
-#, c-format
+#, fuzzy, c-format
msgid " [new ABI]"
-msgstr ""
+msgstr "Baharu"
#: elf32-arm.c:15225
-#, c-format
+#, fuzzy, c-format
msgid " [old ABI]"
-msgstr ""
+msgstr " tua "
#: elf32-arm.c:15228
-#, c-format
+#, fuzzy, c-format
msgid " [software FP]"
-msgstr ""
+msgstr "Segerak FP dibenarkan"
#: elf32-arm.c:15236
#, c-format
@@ -2014,14 +2050,14 @@ msgid " [Version1 EABI]"
msgstr ""
#: elf32-arm.c:15239 elf32-arm.c:15250
-#, c-format
+#, fuzzy, c-format
msgid " [sorted symbol table]"
-msgstr ""
+msgstr "Simbol"
#: elf32-arm.c:15241 elf32-arm.c:15252
-#, c-format
+#, fuzzy, c-format
msgid " [unsorted symbol table]"
-msgstr ""
+msgstr "Tidak Diisih"
#: elf32-arm.c:15247
#, c-format
@@ -2029,14 +2065,14 @@ msgid " [Version2 EABI]"
msgstr ""
#: elf32-arm.c:15255
-#, c-format
+#, fuzzy, c-format
msgid " [dynamic symbols use segment index]"
-msgstr ""
+msgstr "Guna kodek bab ditemui dalam segmen."
#: elf32-arm.c:15258
-#, c-format
+#, fuzzy, c-format
msgid " [mapping symbols precede others]"
-msgstr ""
+msgstr "Simbol"
#: elf32-arm.c:15265
#, c-format
@@ -2054,53 +2090,55 @@ msgid " [Version5 EABI]"
msgstr ""
#: elf32-arm.c:15276
-#, c-format
+#, fuzzy, c-format
msgid " [soft-float ABI]"
-msgstr ""
+msgstr "Soft"
#: elf32-arm.c:15279
-#, c-format
+#, fuzzy, c-format
msgid " [hard-float ABI]"
-msgstr ""
+msgstr "Sukar"
#: elf32-arm.c:15285
#, c-format
msgid " [BE8]"
-msgstr ""
+msgstr " [BE8]"
#: elf32-arm.c:15288
#, c-format
msgid " [LE8]"
-msgstr ""
+msgstr " [LE8]"
#: elf32-arm.c:15294
-#, c-format
+#, fuzzy, c-format
msgid " <EABI version unrecognised>"
msgstr ""
+"perintah tidak dikenali: %s\n"
+"\n"
#: elf32-arm.c:15301
-#, c-format
+#, fuzzy, c-format
msgid " [relocatable executable]"
-msgstr ""
+msgstr "Skema boleh letak semula"
#: elf32-arm.c:15307
-#, c-format
+#, fuzzy, c-format
msgid " [FDPIC ABI supplement]"
-msgstr ""
+msgstr "Latin-1 Tambahan"
#: elf32-arm.c:15312 elfnn-aarch64.c:7576
-#, c-format
+#, fuzzy, c-format
msgid " <Unrecognised flag bits set>"
-msgstr ""
+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
-#, c-format
+#, fuzzy, c-format
msgid "%pB: bad symbol index: %d"
-msgstr ""
+msgstr "Tiada simbol untuk indeks"
#: elf32-arm.c:15810
#, c-format
@@ -2108,14 +2146,14 @@ msgid "FDPIC does not yet support %s relocation to become dynamic for executable
msgstr ""
#: elf32-arm.c:17072
-#, c-format
+#, fuzzy, c-format
msgid "errors encountered processing file %pB"
-msgstr ""
+msgstr "end-of-file tak matang berlaku"
#: elf32-arm.c:17442 elflink.c:13533 elflink.c:13580
-#, c-format
+#, fuzzy, c-format
msgid "could not find section %s"
-msgstr ""
+msgstr "Gagal mencipta sesi sftp: %s"
#: elf32-arm.c:18397
#, c-format
@@ -2135,9 +2173,9 @@ msgid "%pB: error: Cortex-A8 erratum stub out of range (input file too large)"
msgstr ""
#: elf32-arm.c:19509 elf32-arm.c:19531
-#, c-format
+#, fuzzy, c-format
msgid "%pB: error: VFP11 veneer out of range"
-msgstr ""
+msgstr "Ralat kaji hurai: Nombor terkeluar dari Julat (mesti kecil daripada %1)"
#: elf32-arm.c:19582
#, c-format
@@ -2145,9 +2183,9 @@ msgid "%pB(%#<PRIx64>): error: cannot create STM32L4XX veneer; jump out of range
msgstr ""
#: elf32-arm.c:19621
-#, c-format
+#, fuzzy, c-format
msgid "%pB: error: cannot create STM32L4XX veneer"
-msgstr ""
+msgstr "Ralat: Tidak dapat cipta fail sementara: %s\n"
#: elf32-arm.c:20704
#, c-format
@@ -2212,13 +2250,14 @@ msgid "%X%H: %s against `%s': internal error: unexpected relocation result %d\n"
msgstr ""
#: elf32-avr.c:3335 elfnn-aarch64.c:3219
-#, c-format
+#, fuzzy, c-format
msgid "cannot create stub entry %s"
-msgstr ""
+msgstr "%s: Tak dapat mencipta symlink ke %s"
#: elf32-bfin.c:107 elf32-bfin.c:364
+#, fuzzy
msgid "relocation should be even number"
-msgstr ""
+msgstr "Jumlah aksara genap diperlukan"
#: elf32-bfin.c:1589
#, c-format
@@ -2237,16 +2276,18 @@ msgid "%pB: relocation at `%pA+%#<PRIx64>' references symbol `%s' with nonzero a
msgstr ""
#: elf32-bfin.c:2663
+#, fuzzy
msgid "relocation references symbol not defined in the module"
-msgstr ""
+msgstr "simbol %s digunakan, tetapi tidak ditakrifkan sebagai token atau mempunyai hukum"
#: elf32-bfin.c:2761
msgid "R_BFIN_FUNCDESC references dynamic symbol with nonzero addend"
msgstr ""
#: elf32-bfin.c:2801 elf32-bfin.c:2922
+#, fuzzy
msgid "cannot emit fixups in read-only section"
-msgstr ""
+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
msgid "cannot emit dynamic relocations in read-only section"
@@ -2257,8 +2298,9 @@ msgid "R_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addend"
msgstr ""
#: elf32-bfin.c:3044
+#, fuzzy
msgid "relocations between different segments are not supported"
-msgstr ""
+msgstr "Operasi tidak disokong, fail berada pada lekap berbeza"
#: elf32-bfin.c:3045
msgid "warning: relocation references a different segment"
@@ -2270,16 +2312,17 @@ msgstr ""
#: 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
+#, fuzzy
msgid "internal error: dangerous relocation"
-msgstr ""
+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
-#, c-format
+#, fuzzy, c-format
msgid "private flags = %lx:"
-msgstr ""
+msgstr "Persendirian"
#: elf32-bfin.c:4779 elf32-frv.c:6585
#, c-format
@@ -2292,17 +2335,18 @@ msgid "%pB: cannot link fdpic object file into non-fdpic executable"
msgstr ""
#: elf32-bfin.c:4919
-#, c-format
+#, fuzzy, c-format
msgid "*** check this relocation %s"
-msgstr ""
+msgstr "Tidak dapat memeriksa folder: %s: %s"
#: elf32-bfin.c:5034
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
+#, fuzzy
msgid "unsupported relocation type"
-msgstr ""
+msgstr "Jenis Python tidak disokong: %s"
#: elf32-cris.c:1119
#, c-format
@@ -2321,8 +2365,9 @@ msgstr ""
#: elf32-cris.c:1193 elf32-cris.c:1326 elf32-cris.c:1591 elf32-cris.c:1674
#: elf32-cris.c:1827 elf32-tic6x.c:2552
+#, fuzzy
msgid "[whose name is lost]"
-msgstr ""
+msgstr "Nama '%s' hilang dalam dbus mesej."
#: elf32-cris.c:1311 elf32-tic6x.c:2536
#, c-format
@@ -2391,13 +2436,14 @@ msgid "%pB, section `%pA', to symbol `%s': relocation %s should not be used in a
msgstr ""
#: elf32-cris.c:3811
+#, fuzzy
msgid "unexpected machine number"
-msgstr ""
+msgstr "Nombor pemacu %1 tak dijangka."
#: elf32-cris.c:3863
-#, c-format
+#, fuzzy, c-format
msgid " [symbols have a _ prefix]"
-msgstr ""
+msgstr "Pengenalpasti pulsar mempunyai awalan 'PSR'"
#: elf32-cris.c:3866
#, c-format
@@ -2407,7 +2453,7 @@ msgstr ""
#: elf32-cris.c:3869
#, c-format
msgid " [v32]"
-msgstr ""
+msgstr " [v32]"
#: elf32-cris.c:3913
#, c-format
@@ -2430,8 +2476,9 @@ msgid "%pB contains non-CRIS-v32 code, incompatible with previous objects"
msgstr ""
#: elf32-csky.c:2016
+#, fuzzy
msgid "GOT table size out of range"
-msgstr ""
+msgstr "Diluar Julat"
#: elf32-csky.c:2826
#, c-format
@@ -2439,9 +2486,9 @@ msgid "warning: unrecognized arch eflag '%#lx'"
msgstr ""
#: elf32-csky.c:2849
-#, c-format
+#, fuzzy, c-format
msgid "warning: unrecognised arch name '%#x'"
-msgstr ""
+msgstr "nama (x,y)"
#: elf32-csky.c:2914 elf32-csky.c:3074
#, c-format
@@ -2475,9 +2522,9 @@ msgstr ""
#. The r_type is error, not support it.
#: elf32-csky.c:4327 elf32-i386.c:344
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unsupported relocation type: %#x"
-msgstr ""
+msgstr "TYPE(x)"
#: elf32-dlx.c:141
#, c-format
@@ -2495,8 +2542,9 @@ msgid "unsupported relocation between data/insn address spaces"
msgstr ""
#: elf32-frv.c:1452 elf32-frv.c:1603
+#, fuzzy
msgid "relocation requires zero addend"
-msgstr ""
+msgstr "Sifar"
#: elf32-frv.c:2832
#, c-format
@@ -2573,9 +2621,9 @@ msgid "%H: reloc against `%s' references a different segment\n"
msgstr ""
#: elf32-frv.c:4068
-#, c-format
+#, fuzzy, c-format
msgid "%H: reloc against `%s': %s\n"
-msgstr ""
+msgstr "%s j %s"
#: elf32-frv.c:6496
#, c-format
@@ -2583,9 +2631,9 @@ msgid "%pB: compiled with %s and linked with modules that use non-pic relocation
msgstr ""
#: elf32-frv.c:6550 elf32-iq2000.c:830 elf32-m32c.c:876
-#, c-format
+#, fuzzy, c-format
msgid "%pB: compiled with %s and linked with modules compiled with %s"
-msgstr ""
+msgstr "Dia Versi %s dikompil %s, %s\n"
#: elf32-frv.c:6563
#, c-format
@@ -2608,9 +2656,9 @@ msgid "%pB: relocation %s can not be used when making a shared object; recompile
msgstr ""
#: elf32-hppa.c:2579
-#, c-format
+#, fuzzy, c-format
msgid "%pB: duplicate export stub %s"
-msgstr ""
+msgstr "%s Pb"
#: elf32-hppa.c:3235
#, c-format
@@ -2638,9 +2686,9 @@ msgid "%pB:%s has both normal and TLS relocs"
msgstr ""
#: elf32-hppa.c:4166
-#, c-format
+#, fuzzy, c-format
msgid "%pB(%pA+%#<PRIx64>): cannot handle %s for %s"
-msgstr ""
+msgstr "Caja tidak dapat mengendali lokasi \"%s\"."
#: elf32-hppa.c:4470
msgid ".got section not immediately after .plt section"
@@ -2676,9 +2724,9 @@ 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
-#, c-format
+#, fuzzy, c-format
msgid "Local IFUNC function `%s' in %pB\n"
-msgstr ""
+msgstr "%s Pb"
#: elf32-i386.c:2630
#, c-format
@@ -2686,16 +2734,19 @@ msgid "%pB: direct GOT relocation %s against `%s' without base register can not
msgstr ""
#: elf32-i386.c:2665 elf64-x86-64.c:3324
+#, fuzzy
msgid "hidden symbol"
-msgstr ""
+msgstr "Tersembunyi"
#: elf32-i386.c:2668 elf64-x86-64.c:3327
+#, fuzzy
msgid "internal symbol"
-msgstr ""
+msgstr "Dalaman"
#: elf32-i386.c:2671 elf64-x86-64.c:3330
+#, fuzzy
msgid "protected symbol"
-msgstr ""
+msgstr "Dilindungi"
#: elf32-i386.c:2674 elf64-x86-64.c:3333
#, fuzzy
@@ -2743,9 +2794,9 @@ msgid "global pointer relative address out of range"
msgstr ""
#: elf32-lm32.c:959
-#, c-format
+#, fuzzy, c-format
msgid "internal error: addend should be zero for %s"
-msgstr ""
+msgstr "Ralat Dalaman, kiraan bukan-sifar"
#: elf32-m32r.c:1461
msgid "SDA relocation when _SDA_BASE_ not defined"
@@ -2762,24 +2813,24 @@ msgid "%pB: instruction set mismatch with previous modules"
msgstr ""
#: elf32-m32r.c:3298 elf32-nds32.c:6899
-#, c-format
+#, fuzzy, c-format
msgid "private flags = %lx"
-msgstr ""
+msgstr "Persendirian"
#: elf32-m32r.c:3303
-#, c-format
+#, fuzzy, c-format
msgid ": m32r instructions"
-msgstr ""
+msgstr "Arahan"
#: elf32-m32r.c:3304
-#, c-format
+#, fuzzy, c-format
msgid ": m32rx instructions"
-msgstr ""
+msgstr "Arahan"
#: elf32-m32r.c:3305
-#, c-format
+#, fuzzy, c-format
msgid ": m32r2 instructions"
-msgstr ""
+msgstr "Arahan"
#: elf32-m68hc1x.c:1134
#, c-format
@@ -2822,54 +2873,54 @@ msgid "%pB: linking files compiled for HCS12 with others compiled for HC12"
msgstr ""
#: elf32-m68hc1x.c:1417 elf32-xgate.c:497
-#, c-format
+#, fuzzy, c-format
msgid "[abi=32-bit int, "
-msgstr ""
+msgstr "32-bit"
#: elf32-m68hc1x.c:1419 elf32-xgate.c:499
-#, c-format
+#, fuzzy, c-format
msgid "[abi=16-bit int, "
-msgstr ""
+msgstr "16-bit"
#: elf32-m68hc1x.c:1422 elf32-xgate.c:502
-#, c-format
+#, fuzzy, c-format
msgid "64-bit double, "
-msgstr ""
+msgstr "64-bit"
#: elf32-m68hc1x.c:1424 elf32-xgate.c:504
-#, c-format
+#, fuzzy, c-format
msgid "32-bit double, "
-msgstr ""
+msgstr "32-bit"
#: elf32-m68hc1x.c:1427
#, c-format
msgid "cpu=HC11]"
-msgstr ""
+msgstr "cpu=HC11]"
#: elf32-m68hc1x.c:1429
#, c-format
msgid "cpu=HCS12]"
-msgstr ""
+msgstr "cpu=HCS12]"
#: elf32-m68hc1x.c:1431
#, c-format
msgid "cpu=HC12]"
-msgstr ""
+msgstr "cpu=HC12]"
#: elf32-m68hc1x.c:1434
-#, c-format
+#, fuzzy, c-format
msgid " [memory=bank-model]"
-msgstr ""
+msgstr "Bank"
#: elf32-m68hc1x.c:1436
-#, c-format
+#, fuzzy, c-format
msgid " [memory=flat]"
-msgstr ""
+msgstr "Rata."
#: elf32-m68hc1x.c:1439
-#, c-format
+#, fuzzy, c-format
msgid " [XGATE RAM offsetting]"
-msgstr ""
+msgstr "Kayu pelantak."
#: elf32-m68k.c:1156 elf32-m68k.c:1164 elf32-ppc.c:3570 elf32-ppc.c:3578
#, c-format
@@ -2877,7 +2928,6 @@ msgid "%pB uses hard float, %pB uses soft float"
msgstr ""
#: elf32-m68k.c:1279 elf32-m68k.c:1280 vms-alpha.c:8089 vms-alpha.c:8105
-#, fuzzy
msgid "unknown"
msgstr "tidak diketahui"
@@ -2893,29 +2943,32 @@ msgstr ""
#. Pacify gcc -Wall.
#: elf32-mep.c:139
-#, c-format
+#, fuzzy, c-format
msgid "mep: no reloc for code %d"
-msgstr ""
+msgstr "%d kod kemunculan"
#: elf32-mep.c:146
-#, c-format
+#, fuzzy, c-format
msgid "MeP: howto %d has type %d"
-msgstr ""
+msgstr "$$ untuk hukum pertengahan pada $%d bagi %s tidak mempunyai jenis yang diisytiharkan"
#: elf32-mep.c:618
-#, c-format
+#, fuzzy, c-format
msgid "%pB and %pB are for different cores"
-msgstr ""
+msgstr "%1 PB"
#: elf32-mep.c:637
-#, c-format
+#, fuzzy, c-format
msgid "%pB and %pB are for different configurations"
-msgstr ""
+msgstr "%1 PB"
#: elf32-mep.c:675
-#, c-format
+#, fuzzy, c-format
msgid "private flags = 0x%lx"
msgstr ""
+"\n"
+"Terdapat direktori nyahpepijat dalam %s pada 0x%lx\n"
+"\n"
#: elf32-metag.c:1856
#, c-format
@@ -2929,13 +2982,14 @@ msgstr ""
#: elf32-microblaze.c:1590 elf32-tilepro.c:3018 elfxx-sparc.c:3442
#: elfxx-tilegx.c:3415
-#, c-format
+#, fuzzy, c-format
msgid "%pB: probably compiled without -fPIC?"
-msgstr ""
+msgstr "Boxes telah dikompil tanpa sokongan RDP"
#: elf32-mips.c:1776 elf64-mips.c:3515 elfn32-mips.c:3334
+#, fuzzy
msgid "literal relocation occurs for an external symbol"
-msgstr ""
+msgstr "rentetan literal %s tidak dikepilkan pada simbol"
#: elf32-mips.c:1827 elf32-score.c:563 elf32-score7.c:465 elf64-mips.c:3558
#: elfn32-mips.c:3376
@@ -2996,9 +3050,9 @@ msgid "error: %pB can use the upper region for data, but %pB assumes data is exc
msgstr ""
#: elf32-nds32.c:3673
-#, c-format
+#, fuzzy, c-format
msgid "error: can't find symbol: %s"
-msgstr ""
+msgstr "Kami tidak menemui simbol \"%s\""
#: elf32-nds32.c:5572
#, c-format
@@ -3051,14 +3105,14 @@ msgid "%pB: warning: incompatible elf-versions %s and %s"
msgstr ""
#: elf32-nds32.c:6905
-#, c-format
+#, fuzzy, c-format
msgid ": n1 instructions"
-msgstr ""
+msgstr "Arahan"
#: elf32-nds32.c:6908
-#, c-format
+#, fuzzy, c-format
msgid ": n1h instructions"
-msgstr ""
+msgstr "Arahan"
#: elf32-nds32.c:9357
#, c-format
@@ -3086,9 +3140,9 @@ msgid "%pB: Cannot handle relocation value size of %d"
msgstr ""
#: elf32-or1k.c:1375
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unknown relocation type %d"
-msgstr ""
+msgstr "Jenis objek tak diketahui %d\n"
#: elf32-or1k.c:1429
#, c-format
@@ -3116,9 +3170,9 @@ msgid "%pB: non-pic relocation against symbol %s"
msgstr ""
#: elf32-or1k.c:1686
-#, c-format
+#, fuzzy, c-format
msgid "%pB: support for local dynamic not implemented"
-msgstr ""
+msgstr "Fail yang mengandungi berkas sokongan akan dimuat turun ke sistem domestik."
#: elf32-or1k.c:1865
#, c-format
@@ -3126,9 +3180,9 @@ msgid "%pB: will not resolve runtime TLS relocation"
msgstr ""
#: elf32-or1k.c:2199
-#, c-format
+#, fuzzy, c-format
msgid "%pB: bad relocation section name `%s'"
-msgstr ""
+msgstr "Nama petimel teruk untuk tapisan: %s"
#: elf32-or1k.c:3312
#, c-format
@@ -3136,19 +3190,19 @@ msgid "%pB: %s flag mismatch with previous modules"
msgstr ""
#: elf32-ppc.c:990 elf64-ppc.c:1753
-#, c-format
+#, fuzzy, c-format
msgid "generic linker can't handle %s"
-msgstr ""
+msgstr "Tidak boleh mengendalikan lokasi \"%s:\"."
#: elf32-ppc.c:1627
-#, c-format
+#, fuzzy, c-format
msgid "corrupt %s section in %pB"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: elf32-ppc.c:1646
-#, c-format
+#, fuzzy, c-format
msgid "unable to read in %s section from %pB"
-msgstr ""
+msgstr "Tidak boleh baca dari: %s"
#: elf32-ppc.c:1688
#, c-format
@@ -3160,12 +3214,14 @@ msgid "failed to allocate space for new APUinfo section"
msgstr ""
#: elf32-ppc.c:1756
+#, fuzzy
msgid "failed to compute new APUinfo section"
-msgstr ""
+msgstr "Anda tidak boleh menambah direktori baru pada seksyen ini."
#: elf32-ppc.c:1759
+#, fuzzy
msgid "failed to install new APUinfo section"
-msgstr ""
+msgstr "Gagal memasang: pengesahihan tidak sah"
#: elf32-ppc.c:2867
#, c-format
@@ -3223,8 +3279,9 @@ msgid "bss-plt forced due to %pB"
msgstr ""
#: elf32-ppc.c:4028
+#, fuzzy
msgid "bss-plt forced by profiling"
-msgstr ""
+msgstr "Paksa Dihidupkan"
#: elf32-ppc.c:4606 elf64-ppc.c:8516
msgid "%H: warning: %s unexpected insn %#x.\n"
@@ -3254,8 +3311,9 @@ msgid "%P: %H: error: %s with unexpected instruction %x\n"
msgstr ""
#: elf32-ppc.c:7501
+#, fuzzy
msgid "%H: fixup branch overflow\n"
-msgstr ""
+msgstr "Rekod melimpah"
#: elf32-ppc.c:7541 elf32-ppc.c:7579
#, c-format
@@ -3268,9 +3326,9 @@ msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n"
msgstr ""
#: elf32-ppc.c:7679
-#, c-format
+#, fuzzy, c-format
msgid "%pB: reloc %#x unsupported"
-msgstr ""
+msgstr "%1 PB"
#: elf32-ppc.c:7962
#, c-format
@@ -3305,9 +3363,9 @@ msgid "%X%P: %H: %s relocation unsupported for bss-plt\n"
msgstr ""
#: elf32-ppc.c:9025
-#, c-format
+#, fuzzy, c-format
msgid "%H: error: %s against `%s' not a multiple of %u\n"
-msgstr ""
+msgstr "Kod ralat %u ketika menyisip satu masukan: %s"
#: elf32-ppc.c:9054
#, c-format
@@ -3315,9 +3373,11 @@ msgid "%H: unresolvable %s relocation against symbol `%s'\n"
msgstr ""
#: elf32-ppc.c:9136
-#, c-format
+#, fuzzy, c-format
msgid "%H: %s reloc against `%s': error %d\n"
msgstr ""
+"\n"
+"%02d h %02d j %02d min pada: %s"
#: elf32-ppc.c:10018
msgid "%X%P: text relocations and GNU indirect functions will result in a segfault at runtime\n"
@@ -3328,9 +3388,9 @@ msgid "%P: warning: text relocations and GNU indirect functions may result in a
msgstr ""
#: elf32-ppc.c:10067
-#, c-format
+#, fuzzy, c-format
msgid "%s not defined in linker created %pA"
-msgstr ""
+msgstr "Port %s/%s tidak dinyatakan"
#: elf32-pru.c:582 elf32-pru.c:1477
#, c-format
@@ -3338,32 +3398,39 @@ msgid "error: %pB: old incompatible object file detected"
msgstr ""
#: elf32-pru.c:931
+#, fuzzy
msgid "relocation out of range"
-msgstr ""
+msgstr "Diluar Julat"
#: elf32-pru.c:941 elf32-tic6x.c:2649
+#, fuzzy
msgid "dangerous relocation"
-msgstr ""
+msgstr "Cuba Sekat _Tapak Sesawang Merbahaya"
#: elf32-rl78.c:551
+#, fuzzy
msgid "RL78 reloc stack overflow/underflow"
-msgstr ""
+msgstr "tindanan melimpah"
#: elf32-rl78.c:555
+#, fuzzy
msgid "RL78 reloc divide by zero"
-msgstr ""
+msgstr "Bahagi [/]"
#: elf32-rl78.c:1069
+#, fuzzy
msgid "warning: RL78_SYM reloc with an unknown symbol"
-msgstr ""
+msgstr "Jenis amaran tidak diketahui"
#: elf32-rl78.c:1115
+#, fuzzy
msgid "%H: %s out of range\n"
-msgstr ""
+msgstr "integer diluar julat: %s"
#: elf32-rl78.c:1122
+#, fuzzy
msgid "%H: relocation type %u is not supported\n"
-msgstr ""
+msgstr "%U pada %h"
#: elf32-rl78.c:1134
msgid "%H: relocation %s returns an unrecognized value %x\n"
@@ -3384,14 +3451,14 @@ msgid "RL78 merge conflict: cannot link 32-bit and 64-bit objects together"
msgstr ""
#: elf32-rl78.c:1250 elf32-rl78.c:1254
-#, c-format
+#, fuzzy, c-format
msgid "- %pB is 64-bit, %pB is not"
-msgstr ""
+msgstr "%1 PB"
#: elf32-rl78.c:1281
-#, c-format
+#, fuzzy, c-format
msgid " [64-bit doubles]"
-msgstr ""
+msgstr "64-bit"
#: elf32-rx.c:618
#, c-format
@@ -3432,14 +3499,14 @@ msgid "there is a conflict merging the ELF header flags from %pB"
msgstr ""
#: elf32-rx.c:3188
-#, c-format
+#, fuzzy, c-format
msgid " the input file's flags: %s"
-msgstr ""
+msgstr "%s: fail input adalah fail output"
#: elf32-rx.c:3190
-#, c-format
+#, fuzzy, c-format
msgid " the output file's flags: %s"
-msgstr ""
+msgstr "%s: fail input adalah fail output"
#: elf32-rx.c:3797
#, c-format
@@ -3461,8 +3528,9 @@ msgid "not enough GOT space for local GOT entries"
msgstr ""
#: elf32-score.c:2737
+#, fuzzy
msgid "address not word aligned"
-msgstr ""
+msgstr "_Biar Dijajar"
#: elf32-score.c:2818 elf32-score7.c:2625
#, c-format
@@ -3485,9 +3553,9 @@ msgid " [pic]"
msgstr ""
#: elf32-score.c:3991 elf32-score7.c:3798
-#, c-format
+#, fuzzy, c-format
msgid " [fix dep]"
-msgstr ""
+msgstr "A-DEP"
#: elf32-score.c:4038 elf32-score7.c:3845
#, c-format
@@ -3688,37 +3756,39 @@ msgid "%pA:0x%v lrlive .brinfo (%u) differs from analysis (%u)\n"
msgstr ""
#: elf32-spu.c:1908
-#, c-format
+#, fuzzy, c-format
msgid "%pB is not allowed to define %s"
-msgstr ""
+msgstr "PB"
#: elf32-spu.c:1916
-#, c-format
+#, fuzzy, c-format
msgid "you are not allowed to define %s in a script"
-msgstr ""
+msgstr "pembolehubah %%define %s ditakrif semula"
#: elf32-spu.c:1950
-#, c-format
+#, fuzzy, c-format
msgid "%s in overlay section"
-msgstr ""
+msgstr "Tiada seksyen sebegitu: %s"
#: elf32-spu.c:1979
+#, fuzzy
msgid "overlay stub relocation overflow"
-msgstr ""
+msgstr "Stab"
#: elf32-spu.c:1988 elf64-ppc.c:15362
+#, fuzzy
msgid "stubs don't match calculated size"
-msgstr ""
+msgstr "Jika pola diatas tidak sepadan:"
#: elf32-spu.c:2571
-#, c-format
+#, fuzzy, c-format
msgid "warning: %s overlaps %s\n"
-msgstr ""
+msgstr "%s: Amaran: Tak dapat %s"
#: elf32-spu.c:2587
-#, c-format
+#, fuzzy, c-format
msgid "warning: %s exceeds section size\n"
-msgstr ""
+msgstr "Bahagian"
#: elf32-spu.c:2619
#, c-format
@@ -3741,14 +3811,14 @@ msgid " calls:\n"
msgstr "Tiada panggilan"
#: elf32-spu.c:4338
-#, c-format
+#, fuzzy, c-format
msgid "%s duplicated in %s\n"
-msgstr ""
+msgstr "\"%s\" diduplikasi"
#: elf32-spu.c:4342
-#, c-format
+#, fuzzy, c-format
msgid "%s duplicated\n"
-msgstr ""
+msgstr "Satu unsur tunggal (%s) mempunyai pendua."
#: elf32-spu.c:4349
msgid "sorry, no support for duplicate object files in auto-overlay script\n"
@@ -3791,8 +3861,9 @@ msgid "%F%P: can not build overlay stubs: %E\n"
msgstr ""
#: elf32-spu.c:4811
+#, fuzzy
msgid "fatal error while creating .fixup"
-msgstr ""
+msgstr "Ralat ketika mencipta pautan ke %s."
#: elf32-spu.c:5047
#, c-format
@@ -3855,9 +3926,9 @@ 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
-#, c-format
+#, fuzzy, c-format
msgid "discarded output section: `%pA'"
-msgstr ""
+msgstr "Bahagian"
#: elf32-v850.c:152
#, c-format
@@ -3885,8 +3956,9 @@ msgid "variable `%s' cannot be in both zero and tiny data regions simultaneously
msgstr ""
#: elf32-v850.c:466
+#, fuzzy
msgid "failed to find previous HI16 reloc"
-msgstr ""
+msgstr "Cari terdahulu"
#: elf32-v850.c:2309
msgid "could not locate special linker symbol __gp"
@@ -3916,9 +3988,9 @@ msgid "error: %pB uses FPU-3.0 but %pB only supports FPU-2.0"
msgstr ""
#: elf32-v850.c:2601
-#, c-format
+#, fuzzy, c-format
msgid " alignment of 8-byte entities: "
-msgstr ""
+msgstr "Salin semula entiti sedia ada"
#: elf32-v850.c:2604
#, c-format
@@ -3937,9 +4009,9 @@ 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
-#, c-format
+#, fuzzy, c-format
msgid "unknown: %x"
-msgstr ""
+msgstr "(Kod mekanisma GSSAPI tidak diketahui: %x)"
#: elf32-v850.c:2613
#, c-format
@@ -3957,9 +4029,9 @@ msgid "8-bytes"
msgstr ""
#: elf32-v850.c:2625
-#, c-format
+#, fuzzy, c-format
msgid " FPU support required: "
-msgstr ""
+msgstr "Periksa sama ada alatan sokongan yang diperlukan tersedia"
#: elf32-v850.c:2628
#, c-format
@@ -3977,9 +4049,9 @@ msgid "none"
msgstr "tiada"
#: elf32-v850.c:2637
-#, c-format
+#, fuzzy, c-format
msgid "SIMD use: "
-msgstr ""
+msgstr "_Guna sebagaimana ia"
#: elf32-v850.c:2640 elf32-v850.c:2651 elf32-v850.c:2662
#, c-format
@@ -3992,14 +4064,16 @@ msgid "no"
msgstr ""
#: elf32-v850.c:2648
-#, c-format
+#, 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
-#, c-format
+#, fuzzy, c-format
msgid "MMU use: "
-msgstr ""
+msgstr "Benarkan MMU"
#: elf32-v850.c:2826 elf32-v850.c:2882
#, c-format
@@ -4008,49 +4082,49 @@ msgstr ""
#. xgettext:c-format.
#: elf32-v850.c:2900
-#, c-format
+#, fuzzy, c-format
msgid "private flags = %lx: "
-msgstr ""
+msgstr "Persendirian"
#: elf32-v850.c:2905
-#, c-format
+#, fuzzy, c-format
msgid "unknown v850 architecture"
-msgstr ""
+msgstr "S_eni Bina"
#: elf32-v850.c:2907
-#, c-format
+#, fuzzy, c-format
msgid "v850 E3 architecture"
-msgstr ""
+msgstr "S_eni Bina"
#: elf32-v850.c:2909 elf32-v850.c:2916
-#, c-format
+#, fuzzy, c-format
msgid "v850 architecture"
-msgstr ""
+msgstr "S_eni Bina"
#: elf32-v850.c:2917
-#, c-format
+#, fuzzy, c-format
msgid "v850e architecture"
-msgstr ""
+msgstr "S_eni Bina"
#: elf32-v850.c:2918
-#, c-format
+#, fuzzy, c-format
msgid "v850e1 architecture"
-msgstr ""
+msgstr "S_eni Bina"
#: elf32-v850.c:2919
-#, c-format
+#, fuzzy, c-format
msgid "v850e2 architecture"
-msgstr ""
+msgstr "S_eni Bina"
#: elf32-v850.c:2920
-#, c-format
+#, fuzzy, c-format
msgid "v850e2v3 architecture"
-msgstr ""
+msgstr "S_eni Bina"
#: elf32-v850.c:2921
-#, c-format
+#, fuzzy, c-format
msgid "v850e3v5 architecture"
-msgstr ""
+msgstr "S_eni Bina"
#: elf32-v850.c:3595 elf32-v850.c:3834
#, c-format
@@ -4078,14 +4152,14 @@ msgid " [nonpic]"
msgstr ""
#: elf32-vax.c:540
-#, c-format
+#, fuzzy, c-format
msgid " [d-float]"
-msgstr ""
+msgstr "apung"
#: elf32-vax.c:543
-#, c-format
+#, fuzzy, c-format
msgid " [g-float]"
-msgstr ""
+msgstr "apung"
#: elf32-vax.c:629
#, c-format
@@ -4113,9 +4187,9 @@ msgid "%pB: compiled %s -mtune=%s and linked with modules compiled %s -mtune=%s"
msgstr ""
#: elf32-xgate.c:506
-#, c-format
+#, fuzzy, c-format
msgid "cpu=XGATE]"
-msgstr ""
+msgstr "% CPU"
#: elf32-xgate.c:508
#, c-format
@@ -4123,13 +4197,14 @@ msgid "error reading cpu type from elf private data"
msgstr ""
#: elf32-xstormy16.c:457 elf64-ia64-vms.c:2076 elfnn-ia64.c:2345
+#, fuzzy
msgid "non-zero addend in @fptr reloc"
-msgstr ""
+msgstr "Ralat Dalaman, kiraan bukan-sifar"
#: elf32-xtensa.c:996
-#, c-format
+#, fuzzy, c-format
msgid "%pB(%pA): invalid property table"
-msgstr ""
+msgstr "Jadual pemampasan paparan tidak sah"
#: elf32-xtensa.c:2730
#, c-format
@@ -4137,8 +4212,9 @@ msgid "%pB(%pA+%#<PRIx64>): relocation offset out of range (size=%#<PRIx64>)"
msgstr ""
#: elf32-xtensa.c:2813 elf32-xtensa.c:2936
+#, fuzzy
msgid "dynamic relocation in read-only section"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: elf32-xtensa.c:2913
msgid "TLS relocation invalid without dynamic sections"
@@ -4154,8 +4230,9 @@ msgid "%pB: incompatible machine type; output is 0x%x; input is 0x%x"
msgstr ""
#: elf32-xtensa.c:4731 elf32-xtensa.c:4739
+#, fuzzy
msgid "attempt to convert L32R/CALLX to CALL failed"
-msgstr ""
+msgstr "Percubaan dailan telah gagal"
#: elf32-xtensa.c:6567 elf32-xtensa.c:6646 elf32-xtensa.c:8072
#, c-format
@@ -4168,12 +4245,14 @@ msgid "%pB(%pA+%#<PRIx64>): could not decode instruction for XTENSA_ASM_SIMPLIFY
msgstr ""
#: elf32-xtensa.c:9671
+#, fuzzy
msgid "invalid relocation address"
-msgstr ""
+msgstr "Alamat IP tidak sah"
#: elf32-xtensa.c:9762
+#, fuzzy
msgid "overflow after relaxation"
-msgstr ""
+msgstr "nombor baris melimpah"
#: elf32-xtensa.c:10908
#, c-format
@@ -4186,14 +4265,14 @@ msgid "%pB: unsupported bfd mach %#lx"
msgstr ""
#: elf32-z80.c:518
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unsupported mach %#x"
-msgstr ""
+msgstr "%1 PB"
#: elf32-z80.c:546
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unsupported arch %#x"
-msgstr ""
+msgstr "PB"
#: elf64-alpha.c:472
msgid "GPDISP relocation did not find ldah and lda instructions"
@@ -4225,13 +4304,12 @@ msgid "%pB: gp-relative relocation against dynamic symbol %s"
msgstr ""
#: elf64-alpha.c:4438
-#, c-format
+#, fuzzy, c-format
msgid "%pB: change in gp: BRSGP %s"
-msgstr ""
+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
-#, fuzzy
msgid "<unknown>"
msgstr "<tidak diketahui>"
@@ -4262,8 +4340,9 @@ msgstr ""
#. Only if it's not an unresolved symbol.
#: elf64-bpf.c:344
+#, fuzzy
msgid "internal error: relocation not supported"
-msgstr ""
+msgstr "Ralat dalaman: Ralat tidak diketahui"
#: elf64-gen.c:71
#, c-format
@@ -4315,14 +4394,14 @@ msgid "%pB: linking non-pic code in a position independent executable"
msgstr ""
#: elf64-ia64-vms.c:3783 elfnn-ia64.c:4223
-#, c-format
+#, fuzzy, c-format
msgid "%pB: @internal branch to dynamic symbol %s"
-msgstr ""
+msgstr "Gagal menemui simbol '%s' dalam pustaka dinamik"
#: elf64-ia64-vms.c:3786 elfnn-ia64.c:4226
-#, c-format
+#, fuzzy, c-format
msgid "%pB: speculation fixup to dynamic symbol %s"
-msgstr ""
+msgstr "Gagal menemui simbol '%s' dalam pustaka dinamik"
#: elf64-ia64-vms.c:3789 elfnn-ia64.c:4229
#, c-format
@@ -4330,8 +4409,9 @@ msgid "%pB: @pcrel relocation against dynamic symbol %s"
msgstr ""
#: elf64-ia64-vms.c:3913 elfnn-ia64.c:4426
+#, fuzzy
msgid "unsupported reloc"
-msgstr ""
+msgstr " (tidak disokong)"
#: elf64-ia64-vms.c:3950 elfnn-ia64.c:4464
#, c-format
@@ -4439,8 +4519,9 @@ msgid "%pB: error: multiple definition of `%s'; start of %s is set in a earlier
msgstr ""
#: elf64-mmix.c:2208
+#, fuzzy
msgid "register section has contents\n"
-msgstr ""
+msgstr "Bahagian"
#: elf64-mmix.c:2398
#, c-format
@@ -4448,9 +4529,9 @@ msgid "internal inconsistency: remaining %lu != max %lu; please report this bug"
msgstr ""
#: elf64-ppc.c:1361
-#, c-format
+#, fuzzy, c-format
msgid "warning: %s should be used rather than %s"
-msgstr ""
+msgstr "Baca jalur %s berbanding %s!"
#: elf64-ppc.c:4302
#, c-format
@@ -4468,8 +4549,9 @@ msgid "%H: %s reloc unsupported in shared libraries and PIEs\n"
msgstr ""
#: elf64-ppc.c:5277
+#, fuzzy
msgid "%H: %s reloc unsupported here\n"
-msgstr ""
+msgstr "%s berada di sini"
#: elf64-ppc.c:5500
#, c-format
@@ -4482,23 +4564,23 @@ msgid "%pB: ABI version %ld is not compatible with ABI version %ld output"
msgstr ""
#: elf64-ppc.c:5535
-#, c-format
+#, fuzzy, c-format
msgid " [abiv%ld]"
-msgstr ""
+msgstr "%ld:%02ld"
#: 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 ""
#: elf64-ppc.c:7111
-#, c-format
+#, fuzzy, c-format
msgid "%pB: undefined symbol on R_PPC64_TOCSAVE relocation"
-msgstr ""
+msgstr "simbol permulaan %s tidak ditakrifkan"
#: elf64-ppc.c:7362
-#, c-format
+#, fuzzy, c-format
msgid "dynreloc miscount for %pB, section %pA"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: elf64-ppc.c:7453
#, c-format
@@ -4535,9 +4617,9 @@ msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n"
msgstr ""
#: elf64-ppc.c:8745 elf64-ppc.c:9461
-#, c-format
+#, fuzzy, c-format
msgid "%s defined on removed toc entry"
-msgstr ""
+msgstr "Sistem mungkin tidak berfungsi dengan baik jika masukan ini diubah suai atau dibuang."
#: elf64-ppc.c:9418
#, c-format
@@ -4550,9 +4632,9 @@ msgid "%H: got/toc optimization is not supported for %s instruction\n"
msgstr ""
#: elf64-ppc.c:10534
-#, c-format
+#, fuzzy, c-format
msgid "warning: discarding dynamic section %s"
-msgstr ""
+msgstr "Bahagian"
#: elf64-ppc.c:11687
msgid "%P: cannot find opd entry toc for `%pT'\n"
@@ -4564,9 +4646,9 @@ msgid "long branch stub `%s' offset overflow"
msgstr ""
#: elf64-ppc.c:11864
-#, c-format
+#, fuzzy, c-format
msgid "can't find branch stub `%s'"
-msgstr ""
+msgstr "Gagal mencari posisi semasa dalam fail '%s'"
#: elf64-ppc.c:11925 elf64-ppc.c:12177 elf64-ppc.c:14742
#, c-format
@@ -4574,9 +4656,9 @@ msgid "%P: linkage table error against `%pT'\n"
msgstr ""
#: elf64-ppc.c:12376
-#, c-format
+#, fuzzy, c-format
msgid "can't build branch stub `%s'"
-msgstr ""
+msgstr "Gabung %s ke dalam cabang %s"
#: elf64-ppc.c:13407
#, c-format
@@ -4593,10 +4675,10 @@ msgid "%s offset too large for .eh_frame sdata4 encoding"
msgstr ""
#: elf64-ppc.c:15370
-#, c-format
+#, fuzzy, c-format
msgid "linker stubs in %u group"
msgid_plural "linker stubs in %u groups"
-msgstr[0] ""
+msgstr[0] "Pemaut"
#: elf64-ppc.c:15377
#, c-format
@@ -4609,9 +4691,9 @@ msgid ""
msgstr ""
#: elf64-ppc.c:15759
-#, c-format
+#, fuzzy, c-format
msgid "%H: %s used with TLS symbol `%pT'\n"
-msgstr ""
+msgstr "simbol %s digunakan lebih dari sekali sebagai rentetan perkataan"
#: elf64-ppc.c:15761
#, c-format
@@ -4629,9 +4711,9 @@ msgid "%H: call to `%pT' lacks nop, can't restore toc; (toc save/adjust stub)\n"
msgstr ""
#: elf64-ppc.c:17202
-#, c-format
+#, fuzzy, c-format
msgid "%H: %s against %pT is not supported\n"
-msgstr ""
+msgstr "%s pt"
#: elf64-ppc.c:17478
#, c-format
@@ -4644,24 +4726,26 @@ msgid "%X%P: %pB: %s against %pT is not supported by glibc as a dynamic relocati
msgstr ""
#: elf64-ppc.c:17620
-#, c-format
+#, fuzzy, c-format
msgid "%P: %pB: %s is not supported for `%pT'\n"
-msgstr ""
+msgstr "%s Pb"
#: elf64-ppc.c:17889
-#, c-format
+#, fuzzy, c-format
msgid "%H: error: %s not a multiple of %u\n"
-msgstr ""
+msgstr "Kod ralat %u ketika mengesahihkan: %s"
#: elf64-ppc.c:17912
-#, c-format
+#, fuzzy, c-format
msgid "%H: unresolvable %s against `%pT'\n"
-msgstr ""
+msgstr "%s pt"
#: elf64-ppc.c:18057
-#, c-format
+#, 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
#, c-format
@@ -4704,16 +4788,19 @@ msgid "%pB: linking UltraSPARC specific with HAL specific code"
msgstr ""
#: elf64-x86-64.c:1660
+#, fuzzy
msgid "hidden symbol "
-msgstr ""
+msgstr "Tersembunyi"
#: elf64-x86-64.c:1663
+#, fuzzy
msgid "internal symbol "
-msgstr ""
+msgstr "Dalaman"
#: elf64-x86-64.c:1666 elf64-x86-64.c:1670
+#, fuzzy
msgid "protected symbol "
-msgstr ""
+msgstr "Dilindungi"
#: elf64-x86-64.c:1672
#, fuzzy
@@ -4726,20 +4813,23 @@ msgid "undefined "
msgstr "Tidak ditakrif"
#: elf64-x86-64.c:1688 elfnn-loongarch.c:892
+#, fuzzy
msgid "a shared object"
-msgstr ""
+msgstr "objek memori terkongsi"
#: elf64-x86-64.c:1690
msgid "; recompile with -fPIC"
msgstr ""
#: elf64-x86-64.c:1695 elfnn-loongarch.c:898
+#, fuzzy
msgid "a PIE object"
-msgstr ""
+msgstr "Pai"
#: elf64-x86-64.c:1697 elfnn-loongarch.c:900
+#, fuzzy
msgid "a PDE object"
-msgstr ""
+msgstr "Tiada objek sebegitu"
#: elf64-x86-64.c:1699
msgid "; recompile with -fPIE"
@@ -4865,9 +4955,9 @@ msgid "%pB: unexpected redefinition of indirect versioned symbol `%s'"
msgstr ""
#: elflink.c:2681
-#, c-format
+#, fuzzy, c-format
msgid "%pB: version node not found for symbol %s"
-msgstr ""
+msgstr "simbol tidak dijumpai di dalam pengeluaran: %.*s"
#: elflink.c:2780
#, c-format
@@ -4917,9 +5007,9 @@ msgid "%pB: %s local symbol at index %lu (>= sh_info of %lu)"
msgstr ""
#: elflink.c:5137
-#, c-format
+#, fuzzy, c-format
msgid "%pB: not enough version information"
-msgstr ""
+msgstr "Maklumat versi"
#: elflink.c:5175
#, c-format
@@ -4927,9 +5017,9 @@ msgid "%pB: %s: invalid version %u (max %d)"
msgstr ""
#: elflink.c:5212
-#, c-format
+#, fuzzy, c-format
msgid "%pB: %s: invalid needed version %d"
-msgstr ""
+msgstr "keperluan versi tidak sah: %s"
#: elflink.c:5498
#, c-format
@@ -4945,24 +5035,24 @@ msgid "warning: NOTE: size discrepancies can cause real problems. Investigation
msgstr ""
#: elflink.c:5670
-#, c-format
+#, fuzzy, c-format
msgid "%pB: undefined reference to symbol '%s'"
-msgstr ""
+msgstr "simbol permulaan %s tidak ditakrifkan"
#: elflink.c:6759
-#, c-format
+#, fuzzy, c-format
msgid "%pB: stack size specified and %s set"
-msgstr ""
+msgstr "Fail %s tidak wujud dan tiada saiz dinyatakan.\n"
#: elflink.c:6763
-#, c-format
+#, fuzzy, c-format
msgid "%pB: %s not absolute"
-msgstr ""
+msgstr "PB"
#: elflink.c:6975
-#, c-format
+#, fuzzy, c-format
msgid "%s: undefined version: %s"
-msgstr ""
+msgstr "%s: pembolehubah %s %%define tidak ditakrifkan"
#: elflink.c:7364
msgid "error: creating an executable stack because of -z execstack command line option"
@@ -5002,18 +5092,18 @@ msgid "%pB: .preinit_array section is not allowed in DSO"
msgstr ""
#: elflink.c:9218
-#, c-format
+#, fuzzy, c-format
msgid "undefined %s reference in complex symbol: %s"
-msgstr ""
+msgstr "simbol permulaan %s tidak ditakrifkan"
#: elflink.c:9381 elflink.c:9389
msgid "division by zero"
msgstr "dibahagi dengan sifar"
#: elflink.c:9403
-#, c-format
+#, fuzzy, c-format
msgid "unknown operator '%c' in complex symbol"
-msgstr ""
+msgstr "Pilihan tidak diketahui '-%c'\n"
#. PR 21524: Let the user know if a symbol was removed by garbage collection.
#: elflink.c:9739
@@ -5039,13 +5129,14 @@ msgid "%pB: unable to sort relocs - they are of an unknown size"
msgstr ""
#: elflink.c:10136
+#, fuzzy
msgid "not enough memory to sort relocations"
-msgstr ""
+msgstr "GIF: memori tidak mencukupi."
#: elflink.c:10470
-#, c-format
+#, fuzzy, c-format
msgid "%pB: too many sections: %d (>= %d)"
-msgstr ""
+msgstr "Terlalu banyak titik henti. Maksimum ialah %d."
#: elflink.c:10746
#, c-format
@@ -5068,19 +5159,19 @@ msgid "%pB: could not find output section %pA for input section %pA"
msgstr ""
#: elflink.c:11003
-#, c-format
+#, fuzzy, c-format
msgid "%pB: protected symbol `%s' isn't defined"
-msgstr ""
+msgstr "simbol %s digunakan, tetapi tidak ditakrifkan sebagai token atau mempunyai hukum"
#: elflink.c:11006
-#, c-format
+#, fuzzy, c-format
msgid "%pB: internal symbol `%s' isn't defined"
-msgstr ""
+msgstr "simbol %s digunakan, tetapi tidak ditakrifkan sebagai token atau mempunyai hukum"
#: elflink.c:11009
-#, c-format
+#, fuzzy, c-format
msgid "%pB: hidden symbol `%s' isn't defined"
-msgstr ""
+msgstr "simbol %s digunakan, tetapi tidak ditakrifkan sebagai token atau mempunyai hukum"
#: elflink.c:11041
#, c-format
@@ -5098,28 +5189,28 @@ msgid "error: %pB: size of section %pA is not multiple of address size"
msgstr ""
#: elflink.c:12473
-#, c-format
+#, fuzzy, c-format
msgid "%pB: no symbol found for import library"
-msgstr ""
+msgstr "Pustaka \"%1\" tidak dijumpai"
#: elflink.c:13078
msgid "%F%P: %pB: failed to finish relative relocations\n"
msgstr ""
#: elflink.c:13155
-#, c-format
+#, fuzzy, c-format
msgid "%pB: file class %s incompatible with %s"
-msgstr ""
+msgstr "%s: tidak sepadan dengan fail gmon pertama\n"
#: elflink.c:13377
-#, c-format
+#, fuzzy, c-format
msgid "%pB: failed to generate import library"
-msgstr ""
+msgstr "Pustaka yang digunakan untuk menjana lakaran kenit"
#: elflink.c:13538
-#, c-format
+#, fuzzy, c-format
msgid "warning: %s section has zero size"
-msgstr ""
+msgstr "Imej GIF yang terhasil bersaiz sifar"
#: elflink.c:13586
#, c-format
@@ -5161,9 +5252,9 @@ msgid "%pB: section '%pA': corrupt VTENTRY entry"
msgstr ""
#: elflink.c:14922
-#, c-format
+#, fuzzy, c-format
msgid "unrecognized INPUT_SECTION_FLAG %s\n"
-msgstr ""
+msgstr "%s: pilihan '--%s' tidak dikenali\n"
#: elflink.c:15703
#, c-format
@@ -5245,9 +5336,9 @@ msgid "%X%pB: error: GCS is required by -z gcs, but this input object file lacks
msgstr ""
#: elfxx-loongarch.c:1911
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unsupported relocation type %s"
-msgstr ""
+msgstr "%s Pb"
#: elfxx-loongarch.c:1939
#, c-format
@@ -5260,13 +5351,14 @@ msgid "%pB: relocation %s right shift %d error 0x%lx"
msgstr ""
#: elfxx-loongarch.c:2032
-#, c-format
+#, fuzzy, c-format
msgid "%pB: relocation %s overflow 0x%lx"
-msgstr ""
+msgstr "[find_call] %s: 0x%lx ke 0x%lx\n"
#: elfxx-mips.c:1534
+#, fuzzy
msgid "static procedure (no name)"
-msgstr ""
+msgstr "nama prosedur tiada"
#: elfxx-mips.c:5849
msgid "MIPS16 and microMIPS functions cannot call each other"
@@ -5299,9 +5391,12 @@ msgid "%pB: warning: bad `%s' option size %u smaller than its header"
msgstr ""
#: elfxx-mips.c:7635
-#, c-format
+#, fuzzy, c-format
msgid "%pB: warning: truncated `%s' option"
msgstr ""
+"Amaran mengenai %(cleaner)s - %(option)s:\n"
+"\n"
+"%(warning)s"
#: elfxx-mips.c:8453 elfxx-mips.c:8579
#, c-format
@@ -5334,14 +5429,14 @@ msgid "IFUNC symbol %s in dynamic symbol table - IFUNCS are not supported"
msgstr ""
#: elfxx-mips.c:9383
-#, c-format
+#, fuzzy, c-format
msgid "non-dynamic symbol %s in dynamic symbol table"
-msgstr ""
+msgstr "Gagal menemui simbol '%s' dalam pustaka dinamik"
#: elfxx-mips.c:9603
-#, c-format
+#, fuzzy, c-format
msgid "non-dynamic relocations refer to dynamic symbol %s"
-msgstr ""
+msgstr "Gagal menemui simbol '%s' dalam pustaka dinamik"
#: elfxx-mips.c:10523
#, c-format
@@ -5397,14 +5492,14 @@ msgid "%X%P: %pB(%pA): error: relocation for offset %V has no value\n"
msgstr ""
#: elfxx-mips.c:14729
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unknown architecture %s"
-msgstr ""
+msgstr "%s: -c tidak disokong pada rekabentuk %s\n"
#: elfxx-mips.c:15257
-#, c-format
+#, fuzzy, c-format
msgid "%pB: illegal section name `%pA'"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: elfxx-mips.c:15534
#, c-format
@@ -5467,14 +5562,14 @@ msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses unknown MSA A
msgstr ""
#: elfxx-mips.c:15894
-#, c-format
+#, fuzzy, c-format
msgid "%pB: endianness incompatible with that of the selected emulation"
-msgstr ""
+msgstr "Kekunci DSA yang diberikan tidak serasi dengan protokol TLS yang dipilih."
#: elfxx-mips.c:15908
-#, c-format
+#, fuzzy, c-format
msgid "%pB: ABI is incompatible with that of the selected emulation"
-msgstr ""
+msgstr "Kekunci DSA yang diberikan tidak serasi dengan protokol TLS yang dipilih."
#: elfxx-mips.c:15961
#, c-format
@@ -5506,34 +5601,32 @@ msgid "-mips32r2 -mfp64 (12 callee-saved)"
msgstr ""
#: elfxx-mips.c:16234 elfxx-mips.c:16245
-#, fuzzy
msgid "None"
msgstr "Tiada"
#: elfxx-mips.c:16236 elfxx-mips.c:16305
-#, fuzzy
msgid "Unknown"
msgstr "Tidak Diketahui"
#: elfxx-mips.c:16316
-#, c-format
+#, fuzzy, c-format
msgid "Hard or soft float\n"
-msgstr ""
+msgstr "apung"
#: elfxx-mips.c:16319
-#, c-format
+#, fuzzy, c-format
msgid "Hard float (double precision)\n"
-msgstr ""
+msgstr "Kepersisan"
#: elfxx-mips.c:16322
-#, c-format
+#, fuzzy, c-format
msgid "Hard float (single precision)\n"
-msgstr ""
+msgstr "Volum audio jitu tunggal"
#: elfxx-mips.c:16325
-#, c-format
+#, fuzzy, c-format
msgid "Soft float\n"
-msgstr ""
+msgstr "Soft"
#: elfxx-mips.c:16328
#, c-format
@@ -5576,9 +5669,9 @@ msgid " [abi=EABI64]"
msgstr ""
#: elfxx-mips.c:16377
-#, c-format
+#, fuzzy, c-format
msgid " [abi unknown]"
-msgstr ""
+msgstr "Tidak diketahui "
#: elfxx-mips.c:16379
#, c-format
@@ -5588,17 +5681,17 @@ msgstr ""
#: elfxx-mips.c:16381
#, c-format
msgid " [abi=64]"
-msgstr ""
+msgstr " [abi=64]"
#: elfxx-mips.c:16383
-#, c-format
+#, fuzzy, c-format
msgid " [no abi set]"
-msgstr ""
+msgstr "tidak ditetapkan"
#: elfxx-mips.c:16408
-#, c-format
+#, fuzzy, c-format
msgid " [unknown ISA]"
-msgstr ""
+msgstr "Tidak diketahui "
#: elfxx-mips.c:16428
#, c-format
@@ -5631,9 +5724,9 @@ msgid "%s: invalid prefixed ISA extension `%s' ends with <number>p"
msgstr ""
#: elfxx-riscv.c:2023
-#, c-format
+#, fuzzy, c-format
msgid "%s: unknown prefixed ISA extension `%s'"
-msgstr ""
+msgstr "%s\t\tSambungan tidak diketahui %s (%s):\n"
#: elfxx-riscv.c:2047
#, c-format
@@ -5641,31 +5734,32 @@ msgid "%s: prefixed ISA extension must separate with _"
msgstr ""
#: elfxx-riscv.c:2087
-#, c-format
+#, fuzzy, c-format
msgid "rv%de does not support the `h' extension"
-msgstr ""
+msgstr "Sambungan tidak menyokong versi shell"
#: elfxx-riscv.c:2095
-#, c-format
+#, fuzzy, c-format
msgid "rv%d does not support the `q' extension"
-msgstr ""
+msgstr "Sambungan tidak menyokong versi shell"
#: elfxx-riscv.c:2102
msgid "zcmp' is incompatible with `d/zcd' extension"
msgstr ""
#: elfxx-riscv.c:2109
-#, c-format
+#, fuzzy, c-format
msgid "rv%d does not support the `zcf' extension"
-msgstr ""
+msgstr "Sambungan tidak menyokong versi shell"
#: elfxx-riscv.c:2116
msgid "`zfinx' is conflict with the `f/d/q/zfh/zfhmin' extension"
msgstr ""
#: elfxx-riscv.c:2123
+#, fuzzy
msgid "`xtheadvector' is conflict with the `v' extension"
-msgstr ""
+msgstr "V"
#: elfxx-riscv.c:2144
msgid "zvl*b extensions need to enable either `v' or `zve' extension"
@@ -5692,62 +5786,73 @@ msgid "%sinvalid ISA extension ends with <number>p in %s `%s'"
msgstr ""
#: elfxx-riscv.c:2494
-#, c-format
+#, fuzzy, c-format
msgid "%sunknown ISA extension `%s' in %s `%s'"
-msgstr ""
+msgstr "%s\t\tSambungan tidak diketahui %s (%s):\n"
#: elfxx-riscv.c:2506
-#, c-format
+#, fuzzy, c-format
msgid "%scannot + or - base extension `%s' in %s `%s'"
-msgstr ""
+msgstr "%s\t\tSambungan tidak diketahui %s (%s):\n"
#: elfxx-riscv.c:2817 elfxx-riscv.c:3112
+#, fuzzy
msgid "internal: unreachable INSN_CLASS_*"
-msgstr ""
+msgstr "KELAS"
#: elfxx-riscv.c:2851
msgid "zicfiss' and `zcmop"
msgstr ""
#: elfxx-riscv.c:2865
+#, fuzzy
msgid "zihintntl' and `c', or `zihintntl' and `zca"
-msgstr ""
+msgstr "_C/C++"
#: elfxx-riscv.c:2870 elfxx-riscv.c:2896
+#, fuzzy
msgid "c' or `zca"
-msgstr ""
+msgstr "_C/C++"
#: elfxx-riscv.c:2878
+#, fuzzy
msgid "m' or `zmmul"
-msgstr ""
+msgstr "%a dari %m"
#: elfxx-riscv.c:2902
+#, fuzzy
msgid "f' and `c', or `f' and `zcf"
-msgstr ""
+msgstr "F"
#: elfxx-riscv.c:2907
+#, fuzzy
msgid "c' or `zcf"
-msgstr ""
+msgstr "_C/C++"
#: elfxx-riscv.c:2913
+#, fuzzy
msgid "d' and `c', or `d' and `zcd"
-msgstr ""
+msgstr "Volum %d%c (disenyapkan)"
#: elfxx-riscv.c:2918
+#, fuzzy
msgid "c' or `zcd"
-msgstr ""
+msgstr "_C/C++"
#: elfxx-riscv.c:2920
+#, fuzzy
msgid "f' or `zfinx"
-msgstr ""
+msgstr "%.f%%"
#: elfxx-riscv.c:2922
+#, fuzzy
msgid "d' or `zdinx"
-msgstr ""
+msgstr "%d × %d"
#: elfxx-riscv.c:2924
+#, fuzzy
msgid "q' or `zqinx"
-msgstr ""
+msgstr "\t\tQ: "
#: elfxx-riscv.c:2926
msgid "zfh' or `zhinx"
@@ -5758,20 +5863,24 @@ msgid "zfhmin' or `zhinxmin"
msgstr ""
#: elfxx-riscv.c:2941
+#, fuzzy
msgid "zfhmin' and `d', or `zhinxmin' and `zdinx"
-msgstr ""
+msgstr "%d × %d"
#: elfxx-riscv.c:2952
+#, fuzzy
msgid "zfhmin' and `q', or `zhinxmin' and `zqinx"
-msgstr ""
+msgstr " q, Q, Esc Keluar"
#: elfxx-riscv.c:2960
+#, fuzzy
msgid "d' and `zfa"
-msgstr ""
+msgstr "%d × %d"
#: elfxx-riscv.c:2968
+#, fuzzy
msgid "q' and `zfa"
-msgstr ""
+msgstr "\t\tQ: "
#: elfxx-riscv.c:2976
msgid "zfh' and `zfa"
@@ -5798,12 +5907,14 @@ msgid "zknd' or `zkne"
msgstr ""
#: elfxx-riscv.c:3023
+#, fuzzy
msgid "v' or `zve64x' or `zve32x"
-msgstr ""
+msgstr "Ctrl+V"
#: elfxx-riscv.c:3025
+#, fuzzy
msgid "v' or `zve64d' or `zve64f' or `zve32f"
-msgstr ""
+msgstr "Ctrl+V"
#: elfxx-riscv.c:3027
msgid "zvbb"
@@ -5846,15 +5957,15 @@ msgid "zcb' and `zbb"
msgstr ""
#: elfxx-riscv.c:3053
+#, fuzzy
msgid "zcb' and `zmmul', or `zcb' and `m"
-msgstr ""
+msgstr "Mod:"
#: elfxx-riscv.c:3061
msgid "smctr' or `ssctr"
msgstr ""
#: elfxx-riscv.c:3065
-#, fuzzy
msgid "h"
msgstr "h"
@@ -5864,9 +5975,9 @@ msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s"
msgstr ""
#: elfxx-tilegx.c:4126
-#, c-format
+#, fuzzy, c-format
msgid "%pB: cannot link together %s and %s objects"
-msgstr ""
+msgstr "%s: Tak dapat memaut keras ke %s"
#: elfxx-x86.c:534 elfxx-x86.c:3597
#, c-format
@@ -5956,47 +6067,54 @@ msgid "error: %pB: <corrupt x86 property (0x%x) size: 0x%x>"
msgstr ""
#: elfxx-x86.c:4189
-#, c-format
+#, fuzzy, c-format
msgid "%pB: x86 ISA needed: "
-msgstr ""
+msgstr "Sistem x86 32-bit"
#: elfxx-x86.c:4191
-#, c-format
+#, fuzzy, c-format
msgid "%pB: x86 ISA used: "
-msgstr ""
+msgstr "Sistem x86 32-bit"
#: elfxx-x86.c:4213
-#, c-format
+#, fuzzy, c-format
msgid "<unknown: %x>"
-msgstr ""
+msgstr "(Kod mekanisma GSSAPI tidak diketahui: %x)"
#: elfxx-x86.c:4368
+#, fuzzy
msgid "%P: %pB: warning: missing %s\n"
-msgstr ""
+msgstr "%s Pb"
#: elfxx-x86.c:4369
+#, fuzzy
msgid "%X%P: %pB: error: missing %s\n"
-msgstr ""
+msgstr "Ralat dalam alamat \"%s\"— atribut hos hilang atau cacat"
#: elfxx-x86.c:4475
+#, fuzzy
msgid "IBT and SHSTK properties"
-msgstr ""
+msgstr "&Sifat…"
#: elfxx-x86.c:4477
+#, fuzzy
msgid "IBT property"
-msgstr ""
+msgstr "Si_fat:"
#: elfxx-x86.c:4479
+#, fuzzy
msgid "SHSTK property"
-msgstr ""
+msgstr "Si_fat:"
#: elfxx-x86.c:4484
+#, fuzzy
msgid "LAM_U48 property"
-msgstr ""
+msgstr "Si_fat:"
#: elfxx-x86.c:4489
+#, fuzzy
msgid "LAM_U57 property"
-msgstr ""
+msgstr "Si_fat:"
#: elfxx-x86.c:4667
msgid "%F%P: failed to create VxWorks dynamic sections\n"
@@ -6082,14 +6200,14 @@ msgid "%pB:%u: unrecognized ihex type %u in Intel Hex file"
msgstr ""
#: ihex.c:580
-#, c-format
+#, fuzzy, c-format
msgid "%pB: internal error in ihex_read_section"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: ihex.c:613
-#, c-format
+#, fuzzy, c-format
msgid "%pB: bad section length in ihex_read_section"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: ihex.c:784
#, c-format
@@ -6126,9 +6244,9 @@ msgid "attempt to do relocatable link with %s input and %s output"
msgstr ""
#: linker.c:2896
-#, c-format
+#, fuzzy, c-format
msgid "%pB: ignoring duplicate section `%pA'\n"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: linker.c:2906 linker.c:2916
#, c-format
@@ -6136,9 +6254,9 @@ msgid "%pB: duplicate section `%pA' has different size\n"
msgstr ""
#: linker.c:2930 linker.c:2938
-#, c-format
+#, fuzzy, c-format
msgid "%pB: could not read contents of section `%pA'\n"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: linker.c:2947
#, c-format
@@ -6190,9 +6308,9 @@ msgid "malformed mach-o ARM reloc: unknown reloc type: %d"
msgstr ""
#: mach-o.c:640
-#, c-format
+#, fuzzy, c-format
msgid "<unknown mask flags>"
-msgstr ""
+msgstr "Bendera"
#: mach-o.c:695
#, fuzzy
@@ -6200,49 +6318,61 @@ msgid " (<unknown>)"
msgstr "Tidak diketahui "
#: mach-o.c:707
-#, c-format
+#, fuzzy, c-format
msgid " MACH-O header:\n"
-msgstr ""
+msgstr "Output:"
#: mach-o.c:708
-#, c-format
+#, fuzzy, c-format
msgid " magic: %#lx\n"
-msgstr ""
+msgstr "Ajaib"
#: mach-o.c:709
-#, c-format
+#, fuzzy, c-format
msgid " cputype: %#lx (%s)\n"
msgstr ""
+"\n"
+"Terdapat direktori nyahpepijat dalam %s pada 0x%lx\n"
+"\n"
#: mach-o.c:711
-#, c-format
+#, fuzzy, c-format
msgid " cpusubtype: %#lx%s\n"
msgstr ""
+"\n"
+"Terdapat direktori nyahpepijat dalam %s pada 0x%lx\n"
+"\n"
#: mach-o.c:713
-#, c-format
+#, fuzzy, c-format
msgid " filetype: %#lx\n"
-msgstr ""
+msgstr "Tiada jenis fail"
#: mach-o.c:714
-#, c-format
+#, fuzzy, c-format
msgid " ncmds: %#lx\n"
msgstr ""
+"\n"
+"Terdapat direktori nyahpepijat dalam %s pada 0x%lx\n"
+"\n"
#: mach-o.c:715
-#, c-format
+#, fuzzy, c-format
msgid " sizeocmds: %#lx\n"
msgstr ""
+"\n"
+"Terdapat direktori nyahpepijat dalam %s pada 0x%lx\n"
+"\n"
#: mach-o.c:716
-#, c-format
+#, fuzzy, c-format
msgid " flags: %#lx\n"
-msgstr ""
+msgstr "Bendera"
#: mach-o.c:717
-#, c-format
+#, fuzzy, c-format
msgid " version: %x\n"
-msgstr ""
+msgstr "Versi"
#. Urg - what has happened ?
#: mach-o.c:752
@@ -6268,9 +6398,9 @@ msgid "mach-o: there are too many sections (%u) maximum is 255,\n"
msgstr ""
#: mach-o.c:2695
-#, c-format
+#, fuzzy, c-format
msgid "unable to allocate data for load command %#x"
-msgstr ""
+msgstr "Tidak boleh muatkan data imej"
#: mach-o.c:2800
#, c-format
@@ -6318,9 +6448,9 @@ msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field
msgstr ""
#: mach-o.c:5066
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unknown load command %#x"
-msgstr ""
+msgstr "Arahan tak diketahui '%1'"
#: mach-o.c:5264
#, c-format
@@ -6485,25 +6615,25 @@ 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
-#, c-format
+#, fuzzy, c-format
msgid "warning: corrupt unwind data\n"
-msgstr ""
+msgstr "Data piksel imej rosak"
#. PR 17512: file: 2245-7442-0.004.
#: pei-x86_64.c:352
-#, c-format
+#, fuzzy, c-format
msgid "Unknown: %x"
-msgstr ""
+msgstr "(Kod mekanisma GSSAPI tidak diketahui: %x)"
#: pei-x86_64.c:403 pei-x86_64.c:413 pei-x86_64.c:422
-#, c-format
+#, fuzzy, c-format
msgid "warning: xdata section corrupt\n"
-msgstr ""
+msgstr "AMARAN"
#: pei-x86_64.c:477
-#, c-format
+#, fuzzy, c-format
msgid "Too many unwind codes (%ld)\n"
-msgstr ""
+msgstr "Terlalu banyak rujukan dalam jadual"
#: pei-x86_64.c:563
#, c-format
@@ -6511,9 +6641,11 @@ msgid "Warning: %s section size (%ld) is not a multiple of %d\n"
msgstr ""
#: pei-x86_64.c:570
-#, c-format
+#, fuzzy, c-format
msgid "Warning: %s section size is zero\n"
msgstr ""
+"Terima Sifar\n"
+"Saiz"
#: pei-x86_64.c:585
#, c-format
@@ -6533,16 +6665,16 @@ msgid "vma:\t\t\tBeginAddress\t EndAddress\t UnwindData\n"
msgstr ""
#: pei-x86_64.c:722
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"Dump of %s\n"
-msgstr ""
+msgstr "Longgok Ingatan..."
#: peicode.h:823
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unrecognized import type; %x"
-msgstr ""
+msgstr "Tidak boleh menyalin jenis widget yang tidak dikenali."
#: peicode.h:840
#, c-format
@@ -6580,19 +6712,19 @@ msgid "%pB: error: debug data ends beyond end of debug directory"
msgstr ""
#: peicode.h:1598
-#, c-format
+#, fuzzy, c-format
msgid "%pB: adjusting invalid SectionAlignment"
-msgstr ""
+msgstr "Pelarasan"
#: peicode.h:1608
-#, c-format
+#, fuzzy, c-format
msgid "%pB: adjusting invalid FileAlignment"
-msgstr ""
+msgstr "Pelarasan"
#: peicode.h:1616
-#, c-format
+#, fuzzy, c-format
msgid "%pB: invalid NumberOfRvaAndSizes"
-msgstr ""
+msgstr "%1 PB"
#: plugin.c:197
#, c-format
@@ -6624,31 +6756,31 @@ msgid "plugin framework: out of file descriptors. Try using fewer objects/archiv
msgstr ""
#: ppcboot.c:392
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"ppcboot header:\n"
-msgstr ""
+msgstr "_Pengepala"
#: ppcboot.c:393
-#, c-format
+#, fuzzy, c-format
msgid "Entry offset = 0x%.8lx (%ld)\n"
-msgstr ""
+msgstr "offset fail zip kepada masukan rosak"
#: ppcboot.c:395
-#, c-format
+#, fuzzy, c-format
msgid "Length = 0x%.8lx (%ld)\n"
-msgstr ""
+msgstr "Memadam fail %ld drpd %ld"
#: ppcboot.c:399
-#, c-format
+#, fuzzy, c-format
msgid "Flag field = 0x%.2x\n"
-msgstr ""
+msgstr "2x"
#: ppcboot.c:405
-#, c-format
+#, fuzzy, c-format
msgid "Partition name = \"%s\"\n"
-msgstr ""
+msgstr "Ralat menetapkan nama sekatan"
#: ppcboot.c:425
#, c-format
@@ -6673,8 +6805,9 @@ msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
msgstr ""
#: reloc.c:8417
+#, fuzzy
msgid "INPUT_SECTION_FLAGS are not supported"
-msgstr ""
+msgstr "Bendera terima tidak disokong"
#: reloc.c:8683
#, c-format
@@ -6683,14 +6816,14 @@ msgstr ""
#. PR 21803: Suggest the most likely cause of this error.
#: reloc.c:8687
-#, c-format
+#, fuzzy, c-format
msgid "is this version of the linker - %s - out of date ?"
-msgstr ""
+msgstr "Pralihat sudah ketinggalan zaman"
#: rs6000-core.c:471
-#, c-format
+#, fuzzy, c-format
msgid "%pB: warning core file truncated"
-msgstr ""
+msgstr "Abai dan tinggalkan fail core"
#: som.c:3002
#, c-format
@@ -6709,15 +6842,16 @@ msgid "%pB[%pA]: no output section for space %pA"
msgstr ""
#: som.c:5449
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"Exec Auxiliary Header\n"
-msgstr ""
+msgstr "Jalankan"
#: som.c:5758
+#, fuzzy
msgid "som_sizeof_headers unimplemented"
-msgstr ""
+msgstr "Tak diimplementasi"
#: srec.c:260
#, c-format
@@ -6725,14 +6859,14 @@ msgid "%pB:%d: unexpected character `%s' in S-record file"
msgstr ""
#: srec.c:488
-#, c-format
+#, fuzzy, c-format
msgid "%pB:%d: byte count %d too small"
-msgstr ""
+msgstr "Saiz atom QTIF terlalu besar (%d bait)"
#: srec.c:580 srec.c:614
-#, c-format
+#, fuzzy, c-format
msgid "%pB:%d: bad checksum in S-record file"
-msgstr ""
+msgstr "%s: %s: tag buruk %d dijumpai (fail rosak?)\n"
#: stabs.c:308
#, c-format
@@ -6740,12 +6874,14 @@ msgid "%pB(%pA+%#lx): stabs entry has invalid string index"
msgstr ""
#: syms.c:1120
+#, fuzzy
msgid "unsupported .stab relocation"
-msgstr ""
+msgstr " (tidak disokong)"
#: vms-alpha.c:479
+#, fuzzy
msgid "corrupt EIHD record - size is too small"
-msgstr ""
+msgstr "Gagal menentukan saiz lightmap. Saiz lightmap maksimum terlalu kecil?"
#: vms-alpha.c:665
#, c-format
@@ -6777,9 +6913,9 @@ msgid "corrupt EGSD record: its psindx field is too big (%#lx)"
msgstr ""
#: vms-alpha.c:1441
-#, c-format
+#, fuzzy, c-format
msgid "unknown EGSD subtype %d"
-msgstr ""
+msgstr "Subjenis polyline tak diketahui: %d\n"
#: vms-alpha.c:1474
#, c-format
@@ -6787,37 +6923,40 @@ msgid "stack overflow (%d) in _bfd_vms_push"
msgstr ""
#: vms-alpha.c:1488
+#, fuzzy
msgid "stack underflow in _bfd_vms_pop"
-msgstr ""
+msgstr "tindanan bawah aliran\n"
#: vms-alpha.c:1562
-#, c-format
+#, fuzzy, c-format
msgid "dst_define_location %u too large"
-msgstr ""
+msgstr "Mesej terlalu besar untuk sambungan DTLS; maksimum ialah %u bait"
#. These names have not yet been added to this switch statement.
#: vms-alpha.c:1765
-#, c-format
+#, fuzzy, c-format
msgid "unknown ETIR command %d"
-msgstr ""
+msgstr "tidak diketahui-%d"
#: vms-alpha.c:1796
+#, fuzzy
msgid "corrupt vms value"
-msgstr ""
+msgstr "Takat rosak"
#: vms-alpha.c:1927
+#, fuzzy
msgid "corrupt ETIR record encountered"
-msgstr ""
+msgstr "Fail rosak?"
#: vms-alpha.c:1989
-#, c-format
+#, fuzzy, c-format
msgid "bad section index in %s"
-msgstr ""
+msgstr "Tiada seksyen sebegitu: %s"
#: vms-alpha.c:2003
-#, c-format
+#, fuzzy, c-format
msgid "unsupported STA cmd %s"
-msgstr ""
+msgstr "Tema tidak disokong '%s'."
#. Insert field.
#. Unsigned shift.
@@ -6842,27 +6981,29 @@ msgstr "%s tidak sah - %s"
#. Divide by zero is supposed to give a result of zero,
#. and a non-fatal warning message.
#: vms-alpha.c:2457
-#, c-format
+#, fuzzy, c-format
msgid "%s divide by zero"
-msgstr ""
+msgstr "Bahagi [/]"
#: vms-alpha.c:2523
-#, c-format
+#, fuzzy, c-format
msgid "invalid use of %s with contexts"
-msgstr ""
+msgstr "Tidak dapat menyenaraikan konteks fail"
#: vms-alpha.c:2581
-#, c-format
+#, fuzzy, c-format
msgid "reserved cmd %d"
-msgstr ""
+msgstr "Simpanan"
#: vms-alpha.c:2665
+#, fuzzy
msgid "corrupt EEOM record - size is too small"
-msgstr ""
+msgstr "Gagal menentukan saiz lightmap. Saiz lightmap maksimum terlalu kecil?"
#: vms-alpha.c:2674
+#, fuzzy
msgid "object module not error-free !"
-msgstr ""
+msgstr "Ralat: Laluan objek tidak dinyatakan\n"
#: vms-alpha.c:4006
#, c-format
@@ -6870,23 +7011,23 @@ msgid "SEC_RELOC with no relocs in section %pA"
msgstr ""
#: vms-alpha.c:4058 vms-alpha.c:4286
-#, c-format
+#, fuzzy, c-format
msgid "size error in section %pA"
-msgstr ""
+msgstr "Ralat sintaks dalam pengepala seksyen profil"
#: vms-alpha.c:4229
msgid "spurious ALPHA_R_BSR reloc"
msgstr ""
#: vms-alpha.c:4272
-#, c-format
+#, fuzzy, c-format
msgid "unhandled relocation %s"
-msgstr ""
+msgstr "Pengecualian tidak dikendalikan berlaku: %s"
#: vms-alpha.c:4637
-#, c-format
+#, fuzzy, c-format
msgid "unknown source command %d"
-msgstr ""
+msgstr "tidak diketahui-%d"
#: 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
@@ -6896,122 +7037,125 @@ msgid "%s not implemented"
msgstr "%s tidak dilaksanakan"
#: vms-alpha.c:4883
-#, c-format
+#, fuzzy, c-format
msgid "unknown line command %d"
-msgstr ""
+msgstr "Nilai data tridak diketahui \"%s\" pada baris %d. Diabaikan."
#: vms-alpha.c:5322
+#, fuzzy
msgid "corrupt reloc record"
-msgstr ""
+msgstr "Fail rosak?"
#: 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
+#, fuzzy, c-format
msgid "unknown reloc %s + %s"
-msgstr ""
+msgstr "\t\tSambungan tidak diketahui %s (%s):\n"
#: vms-alpha.c:5502
-#, c-format
+#, fuzzy, c-format
msgid "unknown reloc %s"
-msgstr ""
+msgstr "\t\tSambungan tidak diketahui %s (%s):\n"
#: vms-alpha.c:5516
+#, fuzzy
msgid "invalid section index in ETIR"
-msgstr ""
+msgstr "Objek profile_section tidak sah"
#: vms-alpha.c:5525
+#, fuzzy
msgid "relocation for non-REL psect"
-msgstr ""
+msgstr "Direktori-direktori untuk diindeks secara bukan-rekursif"
#: vms-alpha.c:5578
-#, c-format
+#, fuzzy, c-format
msgid "unknown symbol in command %s"
-msgstr ""
+msgstr "arahan tidak diketahui: '%1$s'"
#: vms-alpha.c:5996
-#, c-format
+#, fuzzy, c-format
msgid "reloc (%d) is *UNKNOWN*"
-msgstr ""
+msgstr "Mod piksel tidak diketahui: %d\n"
#: vms-alpha.c:6113
-#, c-format
+#, fuzzy, c-format
msgid " EMH %d (len=%u): "
-msgstr ""
+msgstr "Ralat membaca dari klien, len = %d\n"
#: vms-alpha.c:6118 vms-alpha.c:6137 vms-alpha.c:6216
-#, c-format
+#, fuzzy, c-format
msgid " Error: %s min length is %u\n"
-msgstr ""
+msgstr "Jarak Fokus Min"
#: vms-alpha.c:6141
-#, c-format
+#, fuzzy, c-format
msgid "Module header\n"
-msgstr ""
+msgstr "Modul"
#: vms-alpha.c:6142
-#, c-format
+#, fuzzy, c-format
msgid " structure level: %u\n"
-msgstr ""
+msgstr "Struktur"
#: vms-alpha.c:6143
-#, c-format
+#, fuzzy, c-format
msgid " max record size: %u\n"
-msgstr ""
+msgstr "Nilai tidak sah bagi record_size"
#: vms-alpha.c:6149
-#, c-format
+#, fuzzy, c-format
msgid " Error: The module name is missing\n"
-msgstr ""
+msgstr "Nama tidak ditulis"
#: vms-alpha.c:6155
-#, c-format
+#, fuzzy, c-format
msgid " Error: The module name is too long\n"
-msgstr ""
+msgstr "Nama arkib terlalu panjang."
#: vms-alpha.c:6158
-#, c-format
+#, fuzzy, c-format
msgid " module name : %.*s\n"
-msgstr ""
+msgstr "Nama Modul Teratas"
#: vms-alpha.c:6162
-#, c-format
+#, fuzzy, c-format
msgid " Error: The module version is missing\n"
-msgstr ""
+msgstr "Ralat kaji hurai: Ruang Putih Hilang"
#: vms-alpha.c:6168
-#, c-format
+#, fuzzy, c-format
msgid " Error: The module version is too long\n"
-msgstr ""
+msgstr "Menunggu sistem fail terlalu lama"
#: vms-alpha.c:6171
-#, c-format
+#, fuzzy, c-format
msgid " module version : %.*s\n"
-msgstr ""
+msgstr "versi modul tidak sepadan dalam `%s'"
#: vms-alpha.c:6174
-#, c-format
+#, fuzzy, c-format
msgid " Error: The compile date is truncated\n"
-msgstr ""
+msgstr "Kompil ke…"
#: vms-alpha.c:6176
-#, c-format
+#, fuzzy, c-format
msgid " compile date : %.17s\n"
-msgstr ""
+msgstr "Kompil ke…"
#: vms-alpha.c:6181
-#, c-format
+#, fuzzy, c-format
msgid "Language Processor Name\n"
-msgstr ""
+msgstr "Bahasa Melayu"
#: vms-alpha.c:6182
-#, c-format
+#, fuzzy, c-format
msgid " language name: %.*s\n"
-msgstr ""
+msgstr "Bahasa: %s"
#: vms-alpha.c:6186
-#, c-format
+#, fuzzy, c-format
msgid "Source Files Header\n"
-msgstr ""
+msgstr "Jana pengepala sumber"
#: vms-alpha.c:6187
#, fuzzy, c-format
@@ -7019,9 +7163,9 @@ msgid " file: %.*s\n"
msgstr "Tiada fail %s sebegitu"
#: vms-alpha.c:6191
-#, c-format
+#, fuzzy, c-format
msgid "Title Text Header\n"
-msgstr ""
+msgstr "Pengepala Tetingkap - Tajuk"
#: vms-alpha.c:6192
#, fuzzy, c-format
@@ -7037,9 +7181,9 @@ msgstr ""
" under lay = %s\n"
#: vms-alpha.c:6196
-#, c-format
+#, fuzzy, c-format
msgid "Copyright Header\n"
-msgstr ""
+msgstr "Hakcipta"
#: vms-alpha.c:6197
#, fuzzy, c-format
@@ -7047,39 +7191,39 @@ msgid " copyright: %.*s\n"
msgstr "Hakcipta %s."
#: vms-alpha.c:6201
-#, c-format
+#, fuzzy, c-format
msgid "unhandled emh subtype %u\n"
-msgstr ""
+msgstr "Subjenis"
#: vms-alpha.c:6211
-#, c-format
+#, fuzzy, c-format
msgid " EEOM (len=%u):\n"
-msgstr ""
+msgstr "LEN(\"hello\") mengembalikan 5"
#: vms-alpha.c:6221
-#, c-format
+#, fuzzy, c-format
msgid " number of cond linkage pairs: %u\n"
-msgstr ""
+msgstr "bilangan pasangan asas per giliran heliks"
#: vms-alpha.c:6223
-#, c-format
+#, fuzzy, c-format
msgid " completion code: %u\n"
-msgstr ""
+msgstr "Kod ralat %u ketika mengesahihkan: %s"
#: vms-alpha.c:6228
-#, c-format
+#, fuzzy, c-format
msgid " transfer addr flags: 0x%02x\n"
-msgstr ""
+msgstr "DVDRead tidak dapa membaca blok %d/%d pada 0x%02x."
#: vms-alpha.c:6229
-#, c-format
+#, fuzzy, c-format
msgid " transfer addr psect: %u\n"
-msgstr ""
+msgstr "%u pemindahan selesai"
#: vms-alpha.c:6231
-#, c-format
+#, fuzzy, c-format
msgid " transfer address : 0x%08x\n"
-msgstr ""
+msgstr "Pindah"
#: vms-alpha.c:6240
#, fuzzy
@@ -7087,9 +7231,8 @@ msgid " WEAK"
msgstr "Lemah"
#: vms-alpha.c:6242
-#, fuzzy
msgid " DEF"
-msgstr "DEF"
+msgstr " DEF"
#: vms-alpha.c:6244
#, fuzzy
@@ -7173,9 +7316,9 @@ msgid " 64B"
msgstr ""
#: vms-alpha.c:6294
-#, c-format
+#, fuzzy, c-format
msgid " EGSD (len=%u):\n"
-msgstr ""
+msgstr "LEN(\"hello\") mengembalikan 5"
#: vms-alpha.c:6309
#, c-format
@@ -7183,24 +7326,24 @@ msgid " EGSD entry %2u (type: %u, len: %u): "
msgstr ""
#: vms-alpha.c:6315 vms-alpha.c:6610
-#, c-format
+#, fuzzy, c-format
msgid " Erroneous length\n"
-msgstr ""
+msgstr "Jangka masa"
#: vms-alpha.c:6328
-#, c-format
+#, fuzzy, c-format
msgid "PSC - Program section definition\n"
-msgstr ""
+msgstr "program tidak dibenarkan dalam seksyen ini"
#: vms-alpha.c:6329 vms-alpha.c:6349
-#, c-format
+#, fuzzy, c-format
msgid " alignment : 2**%u\n"
-msgstr ""
+msgstr "J&ajaran"
#: vms-alpha.c:6330 vms-alpha.c:6350
-#, c-format
+#, fuzzy, c-format
msgid " flags : 0x%04x"
-msgstr ""
+msgstr "(0x%04x, '%s'): "
#: vms-alpha.c:6334
#, c-format
@@ -7210,7 +7353,7 @@ msgstr ""
#: vms-alpha.c:6336 vms-alpha.c:6402 vms-alpha.c:6470
#, fuzzy, c-format
msgid " name : %.*s\n"
-msgstr "Nama: %s, EntitiID: %s"
+msgstr " nama: %.*s\n"
#: vms-alpha.c:6348
#, c-format
@@ -7223,79 +7366,79 @@ msgid " alloc (len) : %u (0x%08x)\n"
msgstr ""
#: vms-alpha.c:6355
-#, c-format
+#, fuzzy, c-format
msgid " image offset : 0x%08x\n"
-msgstr ""
+msgstr "Ofset kawasan imej"
#: vms-alpha.c:6357
-#, c-format
+#, fuzzy, c-format
msgid " symvec offset : 0x%08x\n"
-msgstr ""
+msgstr "ofset"
#: vms-alpha.c:6360
#, fuzzy, c-format
msgid " name : %.*s\n"
-msgstr "Nama: %s, EntitiID: %s"
+msgstr " nama: %.*s\n"
#: vms-alpha.c:6376
-#, c-format
+#, fuzzy, c-format
msgid "SYM - Global symbol definition\n"
-msgstr ""
+msgstr "Lompat ke takrifan simbol"
#: vms-alpha.c:6377 vms-alpha.c:6458 vms-alpha.c:6482 vms-alpha.c:6505
-#, c-format
+#, fuzzy, c-format
msgid " flags: 0x%04x"
-msgstr ""
+msgstr "(0x%04x, '%s'): "
#: vms-alpha.c:6380
-#, c-format
+#, fuzzy, c-format
msgid " psect offset: 0x%08x\n"
-msgstr ""
+msgstr "ofset"
#: vms-alpha.c:6384
-#, c-format
+#, fuzzy, c-format
msgid " code address: 0x%08x\n"
-msgstr ""
+msgstr "ralat tidak diketahui (kod ralat %08x)."
#: vms-alpha.c:6386
-#, c-format
+#, fuzzy, c-format
msgid " psect index for entry point : %u\n"
-msgstr ""
+msgstr "Masukan palet %u"
#: vms-alpha.c:6389 vms-alpha.c:6489 vms-alpha.c:6512
-#, c-format
+#, fuzzy, c-format
msgid " psect index : %u\n"
-msgstr ""
+msgstr "%U"
#: vms-alpha.c:6392 vms-alpha.c:6492 vms-alpha.c:6515
#, fuzzy, c-format
msgid " name : %.*s\n"
-msgstr "Nama: %s, EntitiID: %s"
+msgstr " nama: %.*s\n"
#: vms-alpha.c:6400
-#, c-format
+#, fuzzy, c-format
msgid "SYM - Global symbol reference\n"
-msgstr ""
+msgstr "Simbol"
#: vms-alpha.c:6415
-#, c-format
+#, fuzzy, c-format
msgid "IDC - Ident Consistency check\n"
-msgstr ""
+msgstr "IDENT: socket() gagal"
#: vms-alpha.c:6416
-#, c-format
+#, fuzzy, c-format
msgid " flags : 0x%08x"
-msgstr ""
+msgstr "Ralat DDE %08x tidak diketahui"
#: vms-alpha.c:6420
-#, c-format
+#, fuzzy, c-format
msgid " id match : %x\n"
-msgstr ""
+msgstr "Tiada padanan"
#: vms-alpha.c:6422
-#, c-format
+#, fuzzy, c-format
msgid " error severity: %x\n"
-msgstr ""
+msgstr "ralat dalaman X: %s\n"
#: vms-alpha.c:6426
#, fuzzy, c-format
@@ -7303,24 +7446,24 @@ msgid " entity name : %.*s\n"
msgstr "Nama entiti \"%-.*s\" tidak diketahui"
#: vms-alpha.c:6432
-#, c-format
+#, fuzzy, c-format
msgid " object name : %.*s\n"
-msgstr ""
+msgstr "Nama Objek"
#: vms-alpha.c:6441
-#, c-format
+#, fuzzy, c-format
msgid " binary ident : 0x%08x\n"
-msgstr ""
+msgstr "binari"
#: vms-alpha.c:6445
-#, c-format
+#, fuzzy, c-format
msgid " ascii ident : %.*s\n"
-msgstr ""
+msgstr "IDENT: disambungkan kepada %s:%u"
#: vms-alpha.c:6457
-#, c-format
+#, fuzzy, c-format
msgid "SYMG - Universal symbol definition\n"
-msgstr ""
+msgstr "Lompat ke takrifan simbol"
#: vms-alpha.c:6461
#, c-format
@@ -7328,49 +7471,49 @@ msgid " symbol vector offset: 0x%08x\n"
msgstr ""
#: vms-alpha.c:6463
-#, c-format
+#, fuzzy, c-format
msgid " entry point: 0x%08x\n"
-msgstr ""
+msgstr "Ralat DDE %08x tidak diketahui"
#: vms-alpha.c:6465
-#, c-format
+#, fuzzy, c-format
msgid " proc descr : 0x%08x\n"
-msgstr ""
+msgstr "Ralat DDE %08x tidak diketahui"
#: vms-alpha.c:6467
-#, c-format
+#, fuzzy, c-format
msgid " psect index: %u\n"
-msgstr ""
+msgstr "%U"
#: vms-alpha.c:6481
-#, c-format
+#, fuzzy, c-format
msgid "SYMV - Vectored symbol definition\n"
-msgstr ""
+msgstr "Lompat ke takrifan simbol"
#: vms-alpha.c:6485
-#, c-format
+#, fuzzy, c-format
msgid " vector : 0x%08x\n"
-msgstr ""
+msgstr "Ralat DDE %08x tidak diketahui"
#: vms-alpha.c:6487 vms-alpha.c:6510
-#, c-format
+#, fuzzy, c-format
msgid " psect offset: %u\n"
-msgstr ""
+msgstr "ofset"
#: vms-alpha.c:6504
-#, c-format
+#, fuzzy, c-format
msgid "SYMM - Global symbol definition with version\n"
-msgstr ""
+msgstr "Lompat ke takrifan simbol"
#: vms-alpha.c:6508
-#, c-format
+#, fuzzy, c-format
msgid " version mask: 0x%08x\n"
-msgstr ""
+msgstr "Ralat DDE %08x tidak diketahui"
#: vms-alpha.c:6521
-#, c-format
+#, fuzzy, c-format
msgid "unhandled egsd entry type %u\n"
-msgstr ""
+msgstr "Xmpdatum %1 tidak dikendali bagi jenis %2"
#: vms-alpha.c:6560
#, c-format
@@ -7393,34 +7536,34 @@ msgid " psect idx 3: %u, offset 3: 0x%08x %08x\n"
msgstr ""
#: vms-alpha.c:6580
-#, c-format
+#, fuzzy, c-format
msgid " global name: %.*s\n"
-msgstr ""
+msgstr "Tidak boleh bertembung dengan nama pemalar global yang telah wujud."
#: vms-alpha.c:6592
-#, c-format
+#, fuzzy, c-format
msgid " %s (len=%u):\n"
-msgstr ""
+msgstr "Len Tower"
#: vms-alpha.c:6615
-#, c-format
+#, fuzzy, c-format
msgid " (type: %3u, size: %3u): "
-msgstr ""
+msgstr "jenis saiz tidak sah `%c'"
#: vms-alpha.c:6621
-#, c-format
+#, fuzzy, c-format
msgid "STA_GBL (stack global) %.*s\n"
-msgstr ""
+msgstr "Batalkan perincian sejagat untuk repositori \"%s\":"
#: vms-alpha.c:6625
-#, c-format
+#, fuzzy, c-format
msgid "STA_LW (stack longword)"
-msgstr ""
+msgstr "Tarikh m_ula:"
#: vms-alpha.c:6631
-#, c-format
+#, fuzzy, c-format
msgid "STA_QW (stack quadword)"
-msgstr ""
+msgstr "Tarikh m_ula:"
#: vms-alpha.c:6638
#, c-format
@@ -7433,14 +7576,14 @@ msgid " psect: %u, offset: 0x%08x %08x\n"
msgstr ""
#: vms-alpha.c:6647
-#, c-format
+#, fuzzy, c-format
msgid "STA_LI (stack literal)\n"
-msgstr ""
+msgstr "Tarikh m_ula:"
#: vms-alpha.c:6650
-#, c-format
+#, fuzzy, c-format
msgid "STA_MOD (stack module)\n"
-msgstr ""
+msgstr "Modul %(mod)r tidak dipasang"
#: vms-alpha.c:6653
#, c-format
@@ -7448,24 +7591,24 @@ msgid "STA_CKARG (compare procedure argument)\n"
msgstr ""
#: vms-alpha.c:6657
-#, c-format
+#, fuzzy, c-format
msgid "STO_B (store byte)\n"
-msgstr ""
+msgstr "bait,bait,B"
#: vms-alpha.c:6660
-#, c-format
+#, fuzzy, c-format
msgid "STO_W (store word)\n"
-msgstr ""
+msgstr " -W, --word-mode banding perkataan dan bukannya baris\n"
#: vms-alpha.c:6663
-#, c-format
+#, fuzzy, c-format
msgid "STO_LW (store longword)\n"
-msgstr ""
+msgstr "&Simpan"
#: vms-alpha.c:6666
-#, c-format
+#, fuzzy, c-format
msgid "STO_QW (store quadword)\n"
-msgstr ""
+msgstr "&Simpan"
#: vms-alpha.c:6673
#, c-format
@@ -7473,9 +7616,9 @@ msgid "STO_IMMR (store immediate repeat) %u bytes\n"
msgstr ""
#: vms-alpha.c:6682
-#, c-format
+#, fuzzy, c-format
msgid "STO_GBL (store global) %.*s\n"
-msgstr ""
+msgstr "Batalkan perincian sejagat untuk repositori \"%s\":"
#: vms-alpha.c:6687
#, c-format
@@ -7488,9 +7631,9 @@ msgid "STO_RB (store relative branch)\n"
msgstr ""
#: vms-alpha.c:6694
-#, c-format
+#, fuzzy, c-format
msgid "STO_AB (store absolute branch)\n"
-msgstr ""
+msgstr "Punca simpanan %s bukan laluan mutlak"
#: vms-alpha.c:6697
#, c-format
@@ -7523,79 +7666,79 @@ msgid "STO_BR_PS (store branch psect + offset) *todo*\n"
msgstr ""
#: vms-alpha.c:6727
-#, c-format
+#, fuzzy, c-format
msgid "OPR_NOP (no-operation)\n"
-msgstr ""
+msgstr "Sisip &nop"
#: vms-alpha.c:6730
-#, c-format
+#, fuzzy, c-format
msgid "OPR_ADD (add)\n"
-msgstr ""
+msgstr "Tambah"
#: vms-alpha.c:6733
-#, c-format
+#, fuzzy, c-format
msgid "OPR_SUB (subtract)\n"
-msgstr ""
+msgstr "Tolak [-]"
#: vms-alpha.c:6736
-#, c-format
+#, fuzzy, c-format
msgid "OPR_MUL (multiply)\n"
-msgstr ""
+msgstr "Darab [*]"
#: vms-alpha.c:6739
-#, c-format
+#, fuzzy, c-format
msgid "OPR_DIV (divide)\n"
-msgstr ""
+msgstr "Bahagi [/]"
#: vms-alpha.c:6742
-#, c-format
+#, fuzzy, c-format
msgid "OPR_AND (logical and)\n"
-msgstr ""
+msgstr "logikal not"
#: vms-alpha.c:6745
-#, c-format
+#, fuzzy, c-format
msgid "OPR_IOR (logical inclusive or)\n"
-msgstr ""
+msgstr "logikal not"
#: vms-alpha.c:6748
-#, c-format
+#, fuzzy, c-format
msgid "OPR_EOR (logical exclusive or)\n"
-msgstr ""
+msgstr "Boolean Exclusive OR"
#: vms-alpha.c:6751
-#, c-format
+#, fuzzy, c-format
msgid "OPR_NEG (negate)\n"
-msgstr ""
+msgstr "Sangkal"
#: vms-alpha.c:6754
-#, c-format
+#, fuzzy, c-format
msgid "OPR_COM (complement)\n"
-msgstr ""
+msgstr "pelengkap"
#: vms-alpha.c:6757
-#, c-format
+#, fuzzy, c-format
msgid "OPR_INSV (insert field)\n"
-msgstr ""
+msgstr "Selitkan Ke Dalam Medan Edit"
#: vms-alpha.c:6760
-#, c-format
+#, fuzzy, c-format
msgid "OPR_ASH (arithmetic shift)\n"
-msgstr ""
+msgstr "Abu Gunung Berapi"
#: vms-alpha.c:6763
-#, c-format
+#, fuzzy, c-format
msgid "OPR_USH (unsigned shift)\n"
-msgstr ""
+msgstr "K_osongkan Peti Keluar"
#: vms-alpha.c:6766
-#, c-format
+#, fuzzy, c-format
msgid "OPR_ROT (rotate)\n"
-msgstr ""
+msgstr "&Putar..."
#: vms-alpha.c:6769
-#, c-format
+#, fuzzy, c-format
msgid "OPR_SEL (select)\n"
-msgstr ""
+msgstr "%(sel)s daripada %(cnt)s dipilih"
#: vms-alpha.c:6772
#, c-format
@@ -7603,9 +7746,9 @@ msgid "OPR_REDEF (redefine symbol to curr location)\n"
msgstr ""
#: vms-alpha.c:6775
-#, c-format
+#, fuzzy, c-format
msgid "OPR_REDEF (define a literal)\n"
-msgstr ""
+msgstr "Bidang perlu menjadi perkataan literal."
#: vms-alpha.c:6779
#, c-format
@@ -7618,9 +7761,9 @@ msgid "STC_LP_PSB (store cond linkage pair + signature)\n"
msgstr ""
#: vms-alpha.c:6787
-#, c-format
+#, fuzzy, c-format
msgid " linkage index: %u, procedure: %.*s\n"
-msgstr ""
+msgstr "%s bukan objek prosedur"
#: vms-alpha.c:6794
#, fuzzy, c-format
@@ -7633,9 +7776,9 @@ msgid "STC_GBL (store cond global)\n"
msgstr ""
#: vms-alpha.c:6803
-#, c-format
+#, fuzzy, c-format
msgid " linkage index: %u, global: %.*s\n"
-msgstr ""
+msgstr "Batalkan perincian sejagat untuk repositori \"%s\":"
#: vms-alpha.c:6808
#, c-format
@@ -7643,9 +7786,9 @@ msgid "STC_GCA (store cond code address)\n"
msgstr ""
#: vms-alpha.c:6811
-#, c-format
+#, fuzzy, c-format
msgid " linkage index: %u, procedure name: %.*s\n"
-msgstr ""
+msgstr "gagal mendapatkan nama untuk platform %u (%s)"
#: vms-alpha.c:6816
#, c-format
@@ -7718,19 +7861,19 @@ msgid "CTL_AUGRB (augment relocation base) %u\n"
msgstr ""
#: vms-alpha.c:6879
-#, c-format
+#, fuzzy, c-format
msgid "CTL_DFLOC (define location)\n"
-msgstr ""
+msgstr "Lokasi:"
#: vms-alpha.c:6882
-#, c-format
+#, fuzzy, c-format
msgid "CTL_STLOC (set location)\n"
-msgstr ""
+msgstr "Arahan log keluar belum ditetapkan"
#: vms-alpha.c:6885
-#, c-format
+#, fuzzy, c-format
msgid "CTL_STKDL (stack defined location)\n"
-msgstr ""
+msgstr "Laluan ke direktori pembayang. Jika tiada laluan ditakrifkan, lokasi lalai akan digunakan."
#: vms-alpha.c:6888 vms-alpha.c:7316 vms-alpha.c:7477
#, fuzzy, c-format
@@ -7738,9 +7881,9 @@ msgid "*unhandled*\n"
msgstr "Ralat tidak boleh kendali"
#: vms-alpha.c:6913
-#, c-format
+#, fuzzy, c-format
msgid "cannot read GST record header\n"
-msgstr ""
+msgstr "Gagal membaca pengepala QTIF"
#. Ill-formed.
#: vms-alpha.c:6936
@@ -7749,19 +7892,19 @@ msgid "cannot find EMH in first GST record\n"
msgstr ""
#: vms-alpha.c:6960
-#, c-format
+#, fuzzy, c-format
msgid "corrupted GST\n"
-msgstr ""
+msgstr "profil-gst"
#: vms-alpha.c:6973
-#, c-format
+#, fuzzy, c-format
msgid "cannot read GST record\n"
-msgstr ""
+msgstr "profil-gst"
#: vms-alpha.c:7000
-#, c-format
+#, fuzzy, c-format
msgid " unhandled EOBJ record type %u\n"
-msgstr ""
+msgstr "Xmpdatum %1 tidak dikendali bagi jenis %2"
#: vms-alpha.c:7025
#, c-format
@@ -7774,14 +7917,14 @@ msgid " bitmap: 0x%08x (count: %u):\n"
msgstr ""
#: vms-alpha.c:7046
-#, fuzzy, c-format
+#, c-format
msgid " %08x"
-msgstr "ralat tidak diketahui (kod ralat %08x)."
+msgstr " %08x"
#: vms-alpha.c:7073
-#, c-format
+#, fuzzy, c-format
msgid " image %u (%u entries)\n"
-msgstr ""
+msgstr "Menyimpan imej “%s” (%u/%u)"
#: vms-alpha.c:7079
#, c-format
@@ -7789,20 +7932,20 @@ msgid " offset: 0x%08x, val: 0x%08x\n"
msgstr ""
#: vms-alpha.c:7102
-#, c-format
+#, fuzzy, c-format
msgid " image %u (%u entries), offsets:\n"
-msgstr ""
+msgstr "Menyimpan imej “%s” (%u/%u)"
#: vms-alpha.c:7109
#, c-format
msgid " 0x%08x"
-msgstr ""
+msgstr " 0x%08x"
#. 64 bits.
#: vms-alpha.c:7235
-#, c-format
+#, fuzzy, c-format
msgid "64 bits *unhandled*\n"
-msgstr ""
+msgstr "64 bit"
#: vms-alpha.c:7240
#, c-format
@@ -7810,9 +7953,9 @@ msgid "class: %u, dtype: %u, length: %u, pointer: 0x%08x\n"
msgstr ""
#: vms-alpha.c:7251
-#, c-format
+#, fuzzy, c-format
msgid "non-contiguous array of %s\n"
-msgstr ""
+msgstr "data berterusan"
#: vms-alpha.c:7258
#, c-format
@@ -7835,24 +7978,24 @@ msgid "Bounds:\n"
msgstr "Batas Kiri"
#: vms-alpha.c:7288
-#, c-format
+#, fuzzy, c-format
msgid "[%u]: Lower: %u, upper: %u\n"
-msgstr ""
+msgstr "%u × %u"
#: vms-alpha.c:7302
-#, c-format
+#, fuzzy, c-format
msgid "unaligned bit-string of %s\n"
-msgstr ""
+msgstr "Tidak boleh membaca petikan bit: %s\n"
#: vms-alpha.c:7309
-#, c-format
+#, fuzzy, c-format
msgid "base: %u, pos: %u\n"
-msgstr ""
+msgstr "%u × %u"
#: vms-alpha.c:7335
-#, c-format
+#, fuzzy, c-format
msgid "vflags: 0x%02x, value: 0x%08x "
-msgstr ""
+msgstr "DVDRead tidak dapa membaca blok %d/%d pada 0x%02x."
#: vms-alpha.c:7342
#, fuzzy, c-format
@@ -7875,19 +8018,19 @@ msgid "(descriptor)\n"
msgstr "Penerang salin"
#: vms-alpha.c:7356
-#, c-format
+#, fuzzy, c-format
msgid "(trailing value)\n"
-msgstr ""
+msgstr "Slash dibelakang"
#: vms-alpha.c:7359
-#, c-format
+#, fuzzy, c-format
msgid "(value spec follows)\n"
-msgstr ""
+msgstr "spec RPM"
#: vms-alpha.c:7362
-#, c-format
+#, fuzzy, c-format
msgid "(at bit offset %u)\n"
-msgstr ""
+msgstr "%u bit"
#: vms-alpha.c:7366
#, c-format
@@ -7914,14 +8057,14 @@ msgid "reg"
msgstr "Reg "
#: vms-alpha.c:7403
-#, c-format
+#, fuzzy, c-format
msgid "len: %2u, kind: %2u "
-msgstr ""
+msgstr "Len Tower"
#: vms-alpha.c:7411
-#, c-format
+#, fuzzy, c-format
msgid "atomic, type=0x%02x %s\n"
-msgstr ""
+msgstr "DVDRead tidak dapa membaca blok %d/%d pada 0x%02x."
#: vms-alpha.c:7416
#, c-format
@@ -7929,44 +8072,44 @@ msgid "indirect, defined at 0x%08x\n"
msgstr ""
#: vms-alpha.c:7420
-#, c-format
+#, fuzzy, c-format
msgid "typed pointer\n"
-msgstr ""
+msgstr "hukum kosong untuk bukan terminal ditaip, dan tiada tindakan"
#: vms-alpha.c:7424
-#, fuzzy, c-format
+#, c-format
msgid "pointer\n"
-msgstr "Penuding: %p"
+msgstr "penunjuk\n"
#: vms-alpha.c:7435
-#, c-format
+#, fuzzy, c-format
msgid "array, dim: %u, bitmap: "
-msgstr ""
+msgstr "Tatasusunan"
#: vms-alpha.c:7450
-#, c-format
+#, fuzzy, c-format
msgid "array descriptor:\n"
-msgstr ""
+msgstr "Penerang salin"
#: vms-alpha.c:7461
-#, c-format
+#, fuzzy, c-format
msgid "type spec for element:\n"
-msgstr ""
+msgstr "Jenis tidak dikenali \"%s\" pada unsur <%s>"
#: vms-alpha.c:7463
-#, c-format
+#, fuzzy, c-format
msgid "type spec for subscript %u:\n"
-msgstr ""
+msgstr "spec RPM"
#: vms-alpha.c:7488
-#, c-format
+#, fuzzy, c-format
msgid "Debug symbol table:\n"
-msgstr ""
+msgstr "nyahpepijat"
#: vms-alpha.c:7499
-#, c-format
+#, fuzzy, c-format
msgid "cannot read DST header\n"
-msgstr ""
+msgstr "Gagal membaca pengepala QTIF"
#: vms-alpha.c:7505
#, c-format
@@ -7974,19 +8117,19 @@ msgid " type: %3u, len: %3u (at 0x%08x): "
msgstr ""
#: vms-alpha.c:7524
-#, c-format
+#, fuzzy, c-format
msgid "cannot read DST symbol\n"
-msgstr ""
+msgstr "Tak dalat membaca CD: %s"
#: vms-alpha.c:7568
-#, c-format
+#, fuzzy, c-format
msgid "standard data: %s\n"
-msgstr ""
+msgstr "Hantar data sebagai &input standard"
#: vms-alpha.c:7572 vms-alpha.c:7696
-#, fuzzy, c-format
+#, c-format
msgid " name: %.*s\n"
-msgstr "Nama: %s, EntitiID: %s"
+msgstr " nama: %.*s\n"
#: vms-alpha.c:7580
#, c-format
@@ -7999,14 +8142,14 @@ msgid " flags: %d, language: %u, major: %u, minor: %u\n"
msgstr ""
#: vms-alpha.c:7594 vms-alpha.c:7963
-#, c-format
+#, fuzzy, c-format
msgid " module name: %.*s\n"
-msgstr ""
+msgstr "Nama Modul Teratas"
#: vms-alpha.c:7601
-#, fuzzy, c-format
+#, c-format
msgid " compiler : %.*s\n"
-msgstr "Pengkompil: %s\n"
+msgstr " pembina : %.*s\n"
#: vms-alpha.c:7608
#, c-format
@@ -8023,14 +8166,14 @@ msgid " flags: %u, address: 0x%08x, pd-address: 0x%08x\n"
msgstr ""
#: vms-alpha.c:7628
-#, c-format
+#, fuzzy, c-format
msgid " routine name: %.*s\n"
-msgstr ""
+msgstr "Nama: %s, EntitiID: %s"
#: vms-alpha.c:7639
-#, c-format
+#, fuzzy, c-format
msgid "rtnend: size 0x%08x\n"
-msgstr ""
+msgstr "Ralat DDE %08x tidak diketahui"
#: vms-alpha.c:7649
#, c-format
@@ -8038,39 +8181,39 @@ msgid "prolog: bkpt address 0x%08x\n"
msgstr ""
#: vms-alpha.c:7659
-#, c-format
+#, fuzzy, c-format
msgid "epilog: flags: %u, count: %u\n"
-msgstr ""
+msgstr "%u × %u"
#: vms-alpha.c:7674
-#, c-format
+#, fuzzy, c-format
msgid "blkbeg: address: 0x%08x, name: %.*s\n"
-msgstr ""
+msgstr "%s: nama hos adalah sah tetatpi tidak mempunyai alamat IP."
#: vms-alpha.c:7686
-#, c-format
+#, fuzzy, c-format
msgid "blkend: size: 0x%08x\n"
-msgstr ""
+msgstr "Ralat DDE %08x tidak diketahui"
#: vms-alpha.c:7692
-#, c-format
+#, fuzzy, c-format
msgid "typspec (len: %u)\n"
-msgstr ""
+msgstr "LEN(\"hello\") mengembalikan 5"
#: vms-alpha.c:7708
-#, c-format
+#, fuzzy, c-format
msgid "septyp, name: %.*s\n"
-msgstr ""
+msgstr "Nama: %s, EntitiID: %s"
#: vms-alpha.c:7725
-#, c-format
+#, fuzzy, c-format
msgid "recbeg: name: %.*s\n"
-msgstr ""
+msgstr "Nama: %s, EntitiID: %s"
#: vms-alpha.c:7731
-#, c-format
+#, fuzzy, c-format
msgid " len: %u bits\n"
-msgstr ""
+msgstr "%u bit"
#: vms-alpha.c:7737
#, c-format
@@ -8078,14 +8221,14 @@ msgid "recend\n"
msgstr ""
#: vms-alpha.c:7742
-#, c-format
+#, fuzzy, c-format
msgid "enumbeg, len: %u, name: %.*s\n"
-msgstr ""
+msgstr "gagal mendapatkan nama untuk platform %u (%s)"
#: vms-alpha.c:7748
-#, c-format
+#, fuzzy, c-format
msgid "enumelt, name: %.*s\n"
-msgstr ""
+msgstr "Nama: %s, EntitiID: %s"
#: vms-alpha.c:7754
#, c-format
@@ -8093,69 +8236,69 @@ msgid "enumend\n"
msgstr ""
#: vms-alpha.c:7761
-#, c-format
+#, fuzzy, c-format
msgid "label, name: %.*s\n"
-msgstr ""
+msgstr "%s kehilangan nama atau label"
#: vms-alpha.c:7764
-#, c-format
+#, fuzzy, c-format
msgid " address: 0x%08x\n"
-msgstr ""
+msgstr "Ralat DDE %08x tidak diketahui"
#: vms-alpha.c:7776
-#, c-format
+#, fuzzy, c-format
msgid "discontiguous range (nbr: %u)\n"
-msgstr ""
+msgstr "Blok buruk %u diluar julat; diabaikan.\n"
#: vms-alpha.c:7783
-#, c-format
+#, fuzzy, c-format
msgid " address: 0x%08x, size: %u\n"
-msgstr ""
+msgstr "%s: saiz alamat mempunyai nilai %u tidak dijangka\n"
#: vms-alpha.c:7794
-#, c-format
+#, fuzzy, c-format
msgid "line num (len: %u)\n"
-msgstr ""
+msgstr "%u aksara setiap baris"
#: vms-alpha.c:7813
-#, c-format
+#, fuzzy, c-format
msgid "delta_pc_w %u\n"
-msgstr ""
+msgstr "PC"
#: vms-alpha.c:7822
-#, c-format
+#, fuzzy, c-format
msgid "incr_linum(b): +%u\n"
-msgstr ""
+msgstr "%U"
#: vms-alpha.c:7830
-#, c-format
+#, fuzzy, c-format
msgid "incr_linum_w: +%u\n"
-msgstr ""
+msgstr "%U"
#: vms-alpha.c:7838
-#, c-format
+#, fuzzy, c-format
msgid "incr_linum_l: +%u\n"
-msgstr ""
+msgstr "Had Laju Muat Naik"
#: vms-alpha.c:7846
-#, c-format
+#, fuzzy, c-format
msgid "set_line_num(w) %u\n"
-msgstr ""
+msgstr "%u aksara setiap baris"
#: vms-alpha.c:7853
-#, c-format
+#, fuzzy, c-format
msgid "set_line_num_b %u\n"
-msgstr ""
+msgstr "%u aksara setiap baris"
#: vms-alpha.c:7860
-#, c-format
+#, fuzzy, c-format
msgid "set_line_num_l %u\n"
-msgstr ""
+msgstr "Kedua-dua L dan U dinyatakan.\n"
#: vms-alpha.c:7867
-#, c-format
+#, fuzzy, c-format
msgid "set_abs_pc: 0x%08x\n"
-msgstr ""
+msgstr "PC set 1"
#: vms-alpha.c:7873
#, c-format
@@ -8170,22 +8313,22 @@ msgstr ""
#: vms-alpha.c:7882
#, c-format
msgid " pc: 0x%08x\n"
-msgstr ""
+msgstr " pc: 0x%08x\n"
#: vms-alpha.c:7889
-#, c-format
+#, fuzzy, c-format
msgid "term_w: 0x%04x"
-msgstr ""
+msgstr "(0x%04x, '%s'): "
#: vms-alpha.c:7891
#, c-format
msgid " pc: 0x%08x\n"
-msgstr ""
+msgstr " pc: 0x%08x\n"
#: vms-alpha.c:7897
-#, c-format
+#, fuzzy, c-format
msgid "delta pc +%-4d"
-msgstr ""
+msgstr "PC"
#: vms-alpha.c:7901
#, c-format
@@ -8193,14 +8336,14 @@ msgid " pc: 0x%08x line: %5u\n"
msgstr ""
#: vms-alpha.c:7906
-#, c-format
+#, fuzzy, c-format
msgid " *unhandled* cmd %u\n"
-msgstr ""
+msgstr "Ralat tidak boleh kendali"
#: vms-alpha.c:7921
-#, c-format
+#, fuzzy, c-format
msgid "source (len: %u)\n"
-msgstr ""
+msgstr "LEN(\"hello\") mengembalikan 5"
#: vms-alpha.c:7940
#, c-format
@@ -8213,29 +8356,29 @@ msgid " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n"
msgstr ""
#: vms-alpha.c:7957
-#, fuzzy, c-format
+#, c-format
msgid " filename : %.*s\n"
-msgstr "Nama fail \"%s\" tidak sah"
+msgstr " nama fail : %.*s\n"
#: vms-alpha.c:7973
-#, c-format
+#, fuzzy, c-format
msgid " setfile %u\n"
-msgstr ""
+msgstr "%u × %u"
#: vms-alpha.c:7980 vms-alpha.c:7987
-#, c-format
+#, fuzzy, c-format
msgid " setrec %u\n"
-msgstr ""
+msgstr "%u × %u"
#: vms-alpha.c:7994 vms-alpha.c:8001
-#, c-format
+#, fuzzy, c-format
msgid " setlnum %u\n"
-msgstr ""
+msgstr "%u × %u"
#: vms-alpha.c:8008 vms-alpha.c:8015
-#, c-format
+#, fuzzy, c-format
msgid " deflines %u\n"
-msgstr ""
+msgstr "%u × %u"
#: vms-alpha.c:8019
#, c-format
@@ -8243,43 +8386,42 @@ msgid " formfeed\n"
msgstr ""
#: vms-alpha.c:8023
-#, c-format
+#, fuzzy, c-format
msgid " *unhandled* cmd %u\n"
-msgstr ""
+msgstr "Ralat tidak boleh kendali"
#: vms-alpha.c:8035
-#, c-format
+#, fuzzy, c-format
msgid "*unhandled* dst type %u\n"
-msgstr ""
+msgstr "Xmpdatum %1 tidak dikendali bagi jenis %2"
#: vms-alpha.c:8067
-#, c-format
+#, fuzzy, c-format
msgid "cannot read EIHD\n"
-msgstr ""
+msgstr "Tidak Dapat Baca"
#: vms-alpha.c:8071
-#, c-format
+#, fuzzy, c-format
msgid "EIHD: (size: %u, nbr blocks: %u)\n"
-msgstr ""
+msgstr "Blok buruk: %u"
#: vms-alpha.c:8075
-#, c-format
+#, fuzzy, c-format
msgid " majorid: %u, minorid: %u\n"
-msgstr ""
+msgstr "%u × %u"
#: vms-alpha.c:8083
-#, fuzzy
msgid "executable"
-msgstr "Boleh Laku"
+msgstr "boleh laksana"
#: vms-alpha.c:8086
msgid "linkable image"
msgstr ""
#: vms-alpha.c:8093
-#, c-format
+#, fuzzy, c-format
msgid " image type: %u (%s)"
-msgstr ""
+msgstr "Menyimpan imej “%s” (%u/%u)"
#: vms-alpha.c:8099
msgid "native"
@@ -8290,9 +8432,9 @@ msgid "CLI"
msgstr "CLI"
#: vms-alpha.c:8109
-#, c-format
+#, fuzzy, c-format
msgid ", subtype: %u (%s)\n"
-msgstr ""
+msgstr "Gagal untuk menambah sub jenis '%s': %s\n"
#: vms-alpha.c:8116
#, c-format
@@ -8300,21 +8442,21 @@ msgid " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n"
msgstr ""
#: vms-alpha.c:8120
-#, c-format
+#, fuzzy, c-format
msgid " fixup info rva: "
-msgstr ""
+msgstr "Jenis Saiz Rva Offset\n"
#: vms-alpha.c:8122
-#, c-format
+#, fuzzy, c-format
msgid ", symbol vector rva: "
-msgstr ""
+msgstr "Grafik Vektor"
#: vms-alpha.c:8125
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
" version array off: %u\n"
-msgstr ""
+msgstr "Menggunakan VTE versi %u.%u.%u"
#: vms-alpha.c:8130
#, c-format
@@ -8322,9 +8464,9 @@ msgid " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n"
msgstr ""
#: vms-alpha.c:8136
-#, c-format
+#, fuzzy, c-format
msgid " linker flags: %08x:"
-msgstr ""
+msgstr "Pemaut"
#: vms-alpha.c:8167
#, c-format
@@ -8332,9 +8474,9 @@ msgid " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n"
msgstr ""
#: vms-alpha.c:8173
-#, c-format
+#, fuzzy, c-format
msgid " BPAGE: %u"
-msgstr ""
+msgstr "%u × %u"
#: vms-alpha.c:8180
#, c-format
@@ -8342,24 +8484,24 @@ msgid ", ext fixup offset: %u, no_opt psect off: %u"
msgstr ""
#: vms-alpha.c:8183
-#, c-format
+#, fuzzy, c-format
msgid ", alias: %u\n"
-msgstr ""
+msgstr "Alias"
#: vms-alpha.c:8191
-#, c-format
+#, fuzzy, c-format
msgid "system version array information:\n"
-msgstr ""
+msgstr "sistem, maklumat, terperinci, grafik, bunyi, kernel, versi"
#: vms-alpha.c:8195
-#, c-format
+#, fuzzy, c-format
msgid "cannot read EIHVN header\n"
-msgstr ""
+msgstr "Gagal membaca pengepala QTIF"
#: vms-alpha.c:8205
-#, c-format
+#, fuzzy, c-format
msgid "cannot read EIHVN version\n"
-msgstr ""
+msgstr "Versi Baca Jenis Doc"
#: vms-alpha.c:8208
#, c-format
@@ -8379,32 +8521,37 @@ msgid "IO "
msgstr "IO "
#: vms-alpha.c:8221
+#, fuzzy
msgid "FILES_VOLUMES "
-msgstr ""
+msgstr "_Volum"
#: vms-alpha.c:8224
+#, fuzzy
msgid "PROCESS_SCHED "
-msgstr ""
+msgstr "(dalam proses)"
#: vms-alpha.c:8227
msgid "SYSGEN "
msgstr ""
#: vms-alpha.c:8230
+#, fuzzy
msgid "CLUSTERS_LOCKMGR "
-msgstr ""
+msgstr "kelompok"
#: vms-alpha.c:8233
+#, fuzzy
msgid "LOGICAL_NAMES "
-msgstr ""
+msgstr "logikal not"
#: vms-alpha.c:8236
msgid "SECURITY "
msgstr "KESELAMATAN "
#: vms-alpha.c:8239
+#, fuzzy
msgid "IMAGE_ACTIVATOR "
-msgstr ""
+msgstr "Bukan imej"
#: vms-alpha.c:8242
msgid "NETWORKS "
@@ -8439,8 +8586,9 @@ msgid "POSIX "
msgstr "POSIX "
#: vms-alpha.c:8266
+#, fuzzy
msgid "MULTI_PROCESSING "
-msgstr ""
+msgstr "pelbagai"
#: vms-alpha.c:8269
msgid "GALAXY "
@@ -8451,14 +8599,14 @@ msgid "*unknown* "
msgstr "*tidak diketahui* "
#: vms-alpha.c:8288 vms-alpha.c:8575
-#, c-format
+#, fuzzy, c-format
msgid "cannot read EIHA\n"
-msgstr ""
+msgstr "Tidak Dapat Baca"
#: vms-alpha.c:8291
-#, c-format
+#, fuzzy, c-format
msgid "Image activation: (size=%u)\n"
-msgstr ""
+msgstr "Saiz blok=%u (log=%u)\n"
#: vms-alpha.c:8294
#, c-format
@@ -8486,44 +8634,44 @@ msgid " Shared image : 0x%08x 0x%08x\n"
msgstr ""
#: vms-alpha.c:8321
-#, c-format
+#, fuzzy, c-format
msgid "cannot read EIHI\n"
-msgstr ""
+msgstr "Tidak Dapat Baca"
#: vms-alpha.c:8325
-#, c-format
+#, fuzzy, c-format
msgid "Image identification: (major: %u, minor: %u)\n"
-msgstr ""
+msgstr "Menyimpan imej “%s” (%u/%u)"
#: vms-alpha.c:8331
-#, c-format
+#, fuzzy, c-format
msgid " image name : %.*s\n"
-msgstr ""
+msgstr "Nama peta imej"
#: vms-alpha.c:8332
-#, c-format
+#, fuzzy, c-format
msgid " link time : %s\n"
-msgstr ""
+msgstr "Pautan %s terpilih %s"
#: vms-alpha.c:8337
-#, c-format
+#, fuzzy, c-format
msgid " image ident : %.*s\n"
-msgstr ""
+msgstr "IDENT: disambungkan kepada %s:%u"
#: vms-alpha.c:8341
-#, c-format
+#, fuzzy, c-format
msgid " linker ident : %.*s\n"
-msgstr ""
+msgstr "IDENT: disambungkan kepada %s:%u"
#: vms-alpha.c:8345
-#, c-format
+#, fuzzy, c-format
msgid " image build ident: %.*s\n"
-msgstr ""
+msgstr "IDENT: disambungkan kepada %s:%u"
#: vms-alpha.c:8354
-#, c-format
+#, fuzzy, c-format
msgid "cannot read EIHS\n"
-msgstr ""
+msgstr "Tidak Dapat Baca"
#: vms-alpha.c:8358
#, c-format
@@ -8546,9 +8694,9 @@ msgid " debug module table : vbn: %u, size: %u\n"
msgstr ""
#: vms-alpha.c:8387
-#, c-format
+#, fuzzy, c-format
msgid "cannot read EISD\n"
-msgstr ""
+msgstr "Tidak Dapat Baca"
#: vms-alpha.c:8398
#, c-format
@@ -8561,14 +8709,14 @@ msgid " section: base: 0x%08x%08x size: 0x%08x\n"
msgstr ""
#: vms-alpha.c:8411
-#, c-format
+#, fuzzy, c-format
msgid " flags: 0x%04x"
-msgstr ""
+msgstr "(0x%04x, '%s'): "
#: vms-alpha.c:8449
-#, c-format
+#, fuzzy, c-format
msgid " vbn: %u, pfc: %u, matchctl: %u type: %u ("
-msgstr ""
+msgstr "Satu integer biasa tidak bertanda tangan, jenis 'u'"
#: vms-alpha.c:8455
msgid "NORMAL"
@@ -8599,24 +8747,24 @@ msgid ")\n"
msgstr ""
#: vms-alpha.c:8483
-#, c-format
+#, fuzzy, c-format
msgid " ident: 0x%08x, name: %.*s\n"
-msgstr ""
+msgstr "IDENT: recvline() gagal: %s."
#: vms-alpha.c:8494
-#, c-format
+#, fuzzy, c-format
msgid "cannot read DMT\n"
-msgstr ""
+msgstr "Tidak Dapat Baca"
#: vms-alpha.c:8498
-#, c-format
+#, fuzzy, c-format
msgid "Debug module table:\n"
-msgstr ""
+msgstr "Ruang jadual"
#: vms-alpha.c:8507
-#, c-format
+#, fuzzy, c-format
msgid "cannot read DMT header\n"
-msgstr ""
+msgstr "Gagal membaca pengepala QTIF"
#: vms-alpha.c:8513
#, c-format
@@ -8624,9 +8772,9 @@ msgid " module offset: 0x%08x, size: 0x%08x, (%u psects)\n"
msgstr ""
#: vms-alpha.c:8523
-#, c-format
+#, fuzzy, c-format
msgid "cannot read DMT psect\n"
-msgstr ""
+msgstr "Tak dalat membaca CD: %s"
#: vms-alpha.c:8527
#, c-format
@@ -8634,19 +8782,19 @@ msgid " psect start: 0x%08x, length: %u\n"
msgstr ""
#: vms-alpha.c:8540
-#, c-format
+#, fuzzy, c-format
msgid "cannot read DST\n"
-msgstr ""
+msgstr "Tidak Dapat Baca"
#: vms-alpha.c:8550
-#, c-format
+#, fuzzy, c-format
msgid "cannot read GST\n"
-msgstr ""
+msgstr "profil-gst"
#: vms-alpha.c:8554
-#, c-format
+#, fuzzy, c-format
msgid "Global symbol table:\n"
-msgstr ""
+msgstr "Simbol"
#: vms-alpha.c:8581
#, c-format
@@ -8654,14 +8802,14 @@ msgid "Image activator fixup: (major: %u, minor: %u)\n"
msgstr ""
#: vms-alpha.c:8585
-#, c-format
+#, fuzzy, c-format
msgid " iaflink : 0x%08x %08x\n"
-msgstr ""
+msgstr "Ralat DDE %08x tidak diketahui"
#: vms-alpha.c:8589
-#, c-format
+#, fuzzy, c-format
msgid " fixuplnk: 0x%08x %08x\n"
-msgstr ""
+msgstr "Ralat DDE %08x tidak diketahui"
#: vms-alpha.c:8592
#, c-format
@@ -8669,9 +8817,9 @@ msgid " size : %u\n"
msgstr " saiz : %u\n"
#: vms-alpha.c:8594
-#, c-format
+#, fuzzy, c-format
msgid " flags: 0x%08x\n"
-msgstr ""
+msgstr "Ralat DDE %08x tidak diketahui"
#: vms-alpha.c:8599
#, c-format
@@ -8704,9 +8852,9 @@ msgid " shlextra : %5u, permctx : %5u\n"
msgstr ""
#: vms-alpha.c:8622
-#, c-format
+#, fuzzy, c-format
msgid " base_va : 0x%08x\n"
-msgstr ""
+msgstr "Penyahkod video VA-API"
#: vms-alpha.c:8624
#, c-format
@@ -8714,9 +8862,9 @@ msgid " lppsbfixoff: %5u\n"
msgstr ""
#: vms-alpha.c:8631
-#, c-format
+#, fuzzy, c-format
msgid " Shareable images:\n"
-msgstr ""
+msgstr "Senarai Main Boleh Kongsi (%s)"
#: vms-alpha.c:8642
#, c-format
@@ -8724,14 +8872,14 @@ msgid " %u: size: %u, flags: 0x%02x, name: %.*s\n"
msgstr ""
#: vms-alpha.c:8649
-#, c-format
+#, fuzzy, c-format
msgid " quad-word relocation fixups:\n"
-msgstr ""
+msgstr "Anak Panah Quad"
#: vms-alpha.c:8655
-#, c-format
+#, fuzzy, c-format
msgid " long-word relocation fixups:\n"
-msgstr ""
+msgstr "perkataan"
#: vms-alpha.c:8661
#, c-format
@@ -8739,24 +8887,24 @@ msgid " quad-word .address reference fixups:\n"
msgstr ""
#: vms-alpha.c:8666
-#, c-format
+#, fuzzy, c-format
msgid " long-word .address reference fixups:\n"
-msgstr ""
+msgstr "Panjang %u terlalu panjang untuk alamat"
#: vms-alpha.c:8671
-#, c-format
+#, fuzzy, c-format
msgid " Code Address Reference Fixups:\n"
-msgstr ""
+msgstr "Rujukan(en)"
#: vms-alpha.c:8676
-#, c-format
+#, fuzzy, c-format
msgid " Linkage Pairs Reference Fixups:\n"
-msgstr ""
+msgstr "Pasangan AT"
#: vms-alpha.c:8684
-#, c-format
+#, fuzzy, c-format
msgid " Change Protection (%u entries):\n"
-msgstr ""
+msgstr "Sebuah penyimpan buku catatan yang berguna, menyimpan %u masukan."
#: vms-alpha.c:8693
#, c-format
@@ -8766,8 +8914,9 @@ msgstr ""
#. FIXME: we do not yet support relocatable link. It is not obvious
#. how to do it for debug infos.
#: vms-alpha.c:9570
+#, fuzzy
msgid "%P: relocatable link is not supported\n"
-msgstr ""
+msgstr "Skema boleh letak semula"
#: vms-alpha.c:9641
#, c-format
@@ -8775,9 +8924,9 @@ msgid "%P: multiple entry points: in modules %pB and %pB\n"
msgstr ""
#: vms-lib.c:1530
-#, c-format
+#, fuzzy, c-format
msgid "could not open shared image '%s' from '%s'"
-msgstr ""
+msgstr "Tidak dapat membuka penukar dari \"%s\" ke \"%s\""
#: vms-misc.c:374
msgid "_bfd_vms_output_counted called with zero bytes"
@@ -8798,9 +8947,9 @@ msgid "%pB: XCOFF shared object when not producing XCOFF output"
msgstr ""
#: xcofflink.c:902
-#, c-format
+#, fuzzy, c-format
msgid "%pB: dynamic object with no .loader section"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: xcofflink.c:1484
#, c-format
@@ -8833,19 +8982,19 @@ msgid "%pB: TOC entry `%s' has a R_TLSMLrelocation not targeting itself"
msgstr ""
#: xcofflink.c:1776
-#, c-format
+#, fuzzy, c-format
msgid "%pB: csect `%s' not in enclosing section"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: xcofflink.c:1885
-#, c-format
+#, fuzzy, c-format
msgid "%pB: misplaced XTY_LD `%s'"
-msgstr ""
+msgstr "%s Pb"
#: xcofflink.c:2228
-#, c-format
+#, fuzzy, c-format
msgid "%pB: reloc %s:%<PRId64> not in csect"
-msgstr ""
+msgstr "%s Pb"
#: xcofflink.c:3337
#, c-format
@@ -8858,13 +9007,14 @@ msgid "%s: no such symbol"
msgstr "%s: tiada simbol sedemikian"
#: xcofflink.c:3494
-#, c-format
+#, fuzzy, c-format
msgid "warning: attempt to export undefined symbol `%s'"
-msgstr ""
+msgstr "amaran: pembolehubah tidak dinyatakan `%.*s'"
#: xcofflink.c:3842
+#, fuzzy
msgid "error: undefined symbol __rtinit"
-msgstr ""
+msgstr "simbol permulaan %s tidak ditakrifkan"
#: xcofflink.c:4855
#, c-format
@@ -8872,9 +9022,9 @@ msgid "%pB: Unable to find a stub csect in rangeof relocation at %#<PRIx64> targ
msgstr ""
#: xcofflink.c:4884
-#, c-format
+#, fuzzy, c-format
msgid "%pB: Cannot create stub entry '%s'"
-msgstr ""
+msgstr "%s: Tak dapat mencipta symlink ke %s"
#: xcofflink.c:5004
msgid "TOC overflow during stub generation; try -mminimal-toc when compiling"
@@ -8886,9 +9036,9 @@ msgid "%pB: loader reloc in unrecognized section `%s'"
msgstr ""
#: xcofflink.c:5084
-#, c-format
+#, fuzzy, c-format
msgid "%pB: `%s' in loader reloc but not loader sym"
-msgstr ""
+msgstr "Ralat dalaman pada pemuat GIF (%s)"
#: xcofflink.c:5101
#, c-format
@@ -8901,34 +9051,35 @@ msgid "TOC overflow: %#<PRIx64> > 0x10000; try -mminimal-toc when compiling"
msgstr ""
#: xcofflink.c:7296
-#, c-format
+#, fuzzy, c-format
msgid "Unable to link input file: %s"
-msgstr ""
+msgstr "menutup fail input %s"
#: xtensa-dynconfig.c:60
+#, fuzzy
msgid "Unable to load DLL."
-msgstr ""
+msgstr "Tidak boleh muatkan lokasi"
#: xtensa-dynconfig.c:86
-#, c-format
+#, fuzzy, c-format
msgid "%s is defined but could not be loaded: %s"
-msgstr ""
+msgstr "Fail '%s' tidak dapat dimuatkan."
#: xtensa-dynconfig.c:102
-#, c-format
+#, fuzzy, c-format
msgid "%s is loaded but symbol \"%s\" is not found: %s"
-msgstr ""
+msgstr "simbol tidak dijumpai di dalam pengeluaran: %.*s"
#: xtensa-dynconfig.c:115
-#, c-format
+#, fuzzy, c-format
msgid "%s is defined but plugin support is disabled"
-msgstr ""
+msgstr "Gagal memulakan perkhidmatan Penjejak: %s. Pemalam dilumpuhkan."
#. Not fatal, this callback cannot fail.
#: elfnn-aarch64.c:2878 elfnn-riscv.c:5739
-#, c-format
+#, fuzzy, c-format
msgid "unknown attribute for symbol `%s': 0x%02x"
-msgstr ""
+msgstr "Vendor GPU anda tidak diketahui: %s (0x%X)"
#: elfnn-aarch64.c:5468
#, c-format
@@ -8993,61 +9144,61 @@ msgid "%pB(%pA+%#<PRIx64>): unresolvable %s relocation in section `%s'"
msgstr ""
#: elfnn-kvx.c:2850
-#, c-format
+#, fuzzy, c-format
msgid "%s: Bad ELF id: `%d'"
-msgstr ""
+msgstr "%s: ofset teruk pada halaman %d\n"
#: elfnn-kvx.c:2905
-#, c-format
+#, fuzzy, c-format
msgid "%s: compiled as 32-bit object and %s is 64-bit"
-msgstr ""
+msgstr "Dikompil oleh %s pada %s (%s)\n"
#: elfnn-kvx.c:2908
-#, c-format
+#, fuzzy, c-format
msgid "%s: compiled as 64-bit object and %s is 32-bit"
-msgstr ""
+msgstr "Dikompil oleh %s pada %s (%s)\n"
#: elfnn-kvx.c:2910
-#, c-format
+#, fuzzy, c-format
msgid "%s: object size does not match that of target %s"
-msgstr ""
+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
-#, c-format
+#, fuzzy, c-format
msgid "Private flags = 0x%lx : "
-msgstr ""
+msgstr "[find_call] %s: 0x%lx ke 0x%lx\n"
#: elfnn-kvx.c:3002
-#, c-format
+#, fuzzy, c-format
msgid "Coolidge (kv3) V1 64 bits"
-msgstr ""
+msgstr "64 bit"
#: elfnn-kvx.c:3004
-#, c-format
+#, fuzzy, c-format
msgid "Coolidge (kv3) V2 64 bits"
-msgstr ""
+msgstr "64 bit"
#: elfnn-kvx.c:3006
-#, c-format
+#, fuzzy, c-format
msgid "Coolidge (kv4) V1 64 bits"
-msgstr ""
+msgstr "64 bit"
#: elfnn-kvx.c:3011
-#, c-format
+#, fuzzy, c-format
msgid "Coolidge (kv3) V1 32 bits"
-msgstr ""
+msgstr "Himpun data dengan 32 bit"
#: elfnn-kvx.c:3013
-#, c-format
+#, fuzzy, c-format
msgid "Coolidge (kv3) V2 32 bits"
-msgstr ""
+msgstr "Himpun data dengan 32 bit"
#: elfnn-kvx.c:3015
-#, c-format
+#, fuzzy, c-format
msgid "Coolidge (kv4) V1 32 bits"
-msgstr ""
+msgstr "Himpun data dengan 32 bit"
#: elfnn-kvx.c:3847
#, c-format
@@ -9072,8 +9223,9 @@ msgid "%pB: can't link different ABI object."
msgstr ""
#: elfnn-loongarch.c:726
+#, fuzzy
msgid "Internal error: unreachable."
-msgstr ""
+msgstr "Ralat dalaman: Ralat tidak diketahui"
#: elfnn-loongarch.c:906
#, c-format
@@ -9081,8 +9233,9 @@ msgid "%pB:(%pA+%#lx): relocation %s against `%s` can not be used when making %s
msgstr ""
#: elfnn-loongarch.c:910
+#, fuzzy
msgid " and check the symbol visibility"
-msgstr ""
+msgstr "Simbol"
#: elfnn-loongarch.c:1036
#, c-format
@@ -9149,9 +9302,9 @@ msgid "%%pcrel_lo overflow with an addend, the value of %%pcrel_hi is 0x%<PRIx64
msgstr ""
#: elfnn-riscv.c:2156
-#, c-format
+#, fuzzy, c-format
msgid "%pcrel_lo overflow with an addend"
-msgstr ""
+msgstr "Rekod melimpah"
#: elfnn-riscv.c:2639
#, c-format
@@ -9187,9 +9340,9 @@ msgid "%pcrel_lo section symbol with an addend"
msgstr ""
#: elfnn-riscv.c:2923
-#, c-format
+#, fuzzy, c-format
msgid "%tlsdesc_lo with addend"
-msgstr ""
+msgstr "Tambah _Lokasi...:"
#: elfnn-riscv.c:3156
#, c-format
@@ -9197,20 +9350,24 @@ msgid "%%X%%P: unresolvable %s relocation against symbol `%s'\n"
msgstr ""
#: elfnn-riscv.c:3191
+#, fuzzy
msgid "%X%P: internal error: out of range error\n"
-msgstr ""
+msgstr "ralat dalaman X: %s\n"
#: elfnn-riscv.c:3196
+#, fuzzy
msgid "%X%P: internal error: unsupported relocation error\n"
-msgstr ""
+msgstr "ralat dalaman X: %s\n"
#: elfnn-riscv.c:3202
+#, fuzzy
msgid "dangerous relocation error"
-msgstr ""
+msgstr "Fail berpontensi bahaya"
#: elfnn-riscv.c:3208
+#, fuzzy
msgid "%X%P: internal error: unknown error\n"
-msgstr ""
+msgstr "Ralat dalaman: Ralat tidak diketahui"
#: elfnn-riscv.c:3785
#, c-format
@@ -9247,9 +9404,9 @@ msgid "error: %pB use %u-byte stack aligned but the output use %u-byte stack ali
msgstr ""
#: elfnn-riscv.c:4238
-#, c-format
+#, fuzzy, c-format
msgid "%pB: can't link %s modules with %s modules"
-msgstr ""
+msgstr "Tidak dapat awalkan modul berdaftar PKCS#11: %s"
#: elfnn-riscv.c:4248
#, c-format
@@ -9267,9 +9424,9 @@ msgid "%pB: relocation %s against non-absolute symbol `%s' can not be used in RV
msgstr ""
#: peXXigen.c:161
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unable to find name for empty section"
-msgstr ""
+msgstr "Pemasangan: Tidak jumpa nama folder yang sesuai untuk $1"
#: peXXigen.c:188
#, c-format
@@ -9287,9 +9444,9 @@ msgid "%pB:%.8s: section below image base"
msgstr ""
#: peXXigen.c:929
-#, c-format
+#, fuzzy, c-format
msgid "%pB:%.8s: RVA truncated"
-msgstr ""
+msgstr "DIPANGKAS"
#: peXXigen.c:1061
#, c-format
@@ -9301,60 +9458,74 @@ msgid "Export Directory [.edata (or where ever we found it)]"
msgstr ""
#: peXXigen.c:1228
+#, fuzzy
msgid "Import Directory [parts of .idata]"
-msgstr ""
+msgstr "bahagian"
#: peXXigen.c:1229
+#, fuzzy
msgid "Resource Directory [.rsrc]"
-msgstr ""
+msgstr "Sumber pada \"%s\" bukan satu direktori"
#: peXXigen.c:1230
+#, fuzzy
msgid "Exception Directory [.pdata]"
-msgstr ""
+msgstr "Maklumat pengecualian:"
#: peXXigen.c:1231
+#, fuzzy
msgid "Security Directory"
-msgstr ""
+msgstr "KESELAMATAN "
#: peXXigen.c:1232
+#, fuzzy
msgid "Base Relocation Directory [.reloc]"
-msgstr ""
+msgstr "_Pangkalan Direktori:"
#: peXXigen.c:1233
+#, fuzzy
msgid "Debug Directory"
-msgstr ""
+msgstr "gagal mengemaskini offset fail dalam direktori nyahpijat"
#: peXXigen.c:1234
+#, fuzzy
msgid "Description Directory"
-msgstr ""
+msgstr "Keterangan"
#: peXXigen.c:1235
+#, fuzzy
msgid "Special Directory"
-msgstr ""
+msgstr "SPECIAL"
#: peXXigen.c:1236
+#, fuzzy
msgid "Thread Storage Directory [.tls]"
-msgstr ""
+msgstr "Gagal memulakan benang: ralat menulis TLS."
#: peXXigen.c:1237
+#, fuzzy
msgid "Load Configuration Directory"
-msgstr ""
+msgstr "Muatkan item tambahan konfigurasi"
#: peXXigen.c:1238
+#, fuzzy
msgid "Bound Import Directory"
-msgstr ""
+msgstr "Import direktori"
#: peXXigen.c:1239
+#, fuzzy
msgid "Import Address Table Directory"
-msgstr ""
+msgstr "Import direktori"
#: peXXigen.c:1240
+#, fuzzy
msgid "Delay Import Directory"
-msgstr ""
+msgstr "Import direktori"
#: peXXigen.c:1241
+#, fuzzy
msgid "CLR Runtime Header"
-msgstr ""
+msgstr "Masa Jalan"
#: peXXigen.c:1242
msgid "Reserved"
@@ -9368,18 +9539,18 @@ msgid ""
msgstr ""
#: peXXigen.c:1313
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"There is an import table in %s, but that section has no contents\n"
-msgstr ""
+msgstr "Jadual %s telah dipindahkan ke %s."
#: peXXigen.c:1320
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"There is an import table in %s at 0x%lx\n"
-msgstr ""
+msgstr "[find_call] %s: 0x%lx ke 0x%lx\n"
#: peXXigen.c:1326
#, c-format
@@ -9396,11 +9567,11 @@ msgid ""
msgstr ""
#: peXXigen.c:1378
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"\tDLL Name: %.*s\n"
-msgstr ""
+msgstr "Nama: %s, EntitiID: %s"
#: peXXigen.c:1394
#, c-format
@@ -9415,9 +9586,9 @@ msgid ""
msgstr ""
#: peXXigen.c:1469 peXXigen.c:1514
-#, c-format
+#, fuzzy, c-format
msgid "\t<corrupt: 0x%08lx>"
-msgstr ""
+msgstr "Eksponen: 0x"
#: peXXigen.c:1608
#, c-format
@@ -9434,18 +9605,18 @@ msgid ""
msgstr ""
#: peXXigen.c:1629
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"There is an export table in %s, but contents cannot be read\n"
-msgstr ""
+msgstr "Tidak dapat menyediakan kandungan sebagai \"%s\""
#: peXXigen.c:1635
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"There is an export table in %s at 0x%lx\n"
-msgstr ""
+msgstr "[find_call] %s: 0x%lx ke 0x%lx\n"
#: peXXigen.c:1666
#, c-format
@@ -9456,19 +9627,19 @@ msgid ""
msgstr ""
#: peXXigen.c:1670
-#, c-format
+#, fuzzy, c-format
msgid "Export Flags \t\t\t%lx\n"
-msgstr ""
+msgstr "Eksport"
#: peXXigen.c:1673
-#, c-format
+#, fuzzy, c-format
msgid "Time/Date stamp \t\t%lx\n"
-msgstr ""
+msgstr "Setem Tarikh GPS"
#: peXXigen.c:1677
-#, c-format
+#, fuzzy, c-format
msgid "Major/Minor \t\t\t%d/%d\n"
-msgstr ""
+msgstr "Penggunaan: %s [OPSYEN]... NAMA JENIS [MAJOR MINOR]\n"
#: peXXigen.c:1680
#, c-format
@@ -9476,9 +9647,9 @@ msgid "Name \t\t\t\t"
msgstr "Nama \t\t\t\t"
#: peXXigen.c:1691
-#, c-format
+#, fuzzy, c-format
msgid "Ordinal Base \t\t\t%ld\n"
-msgstr ""
+msgstr "ordinal"
#: peXXigen.c:1694
#, c-format
@@ -9486,34 +9657,34 @@ msgid "Number in:\n"
msgstr "Nombor dalam:\n"
#: peXXigen.c:1697
-#, c-format
+#, fuzzy, c-format
msgid "\tExport Address Table \t\t%08lx\n"
-msgstr ""
+msgstr "Eksport"
#: peXXigen.c:1701
-#, c-format
+#, fuzzy, c-format
msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n"
-msgstr ""
+msgstr "Nama jadual adalah kosong!"
#: peXXigen.c:1704
-#, c-format
+#, fuzzy, c-format
msgid "Table Addresses\n"
-msgstr ""
+msgstr "Alamat:"
#: peXXigen.c:1707
-#, c-format
+#, fuzzy, c-format
msgid "\tExport Address Table \t\t"
-msgstr ""
+msgstr "Eksport"
#: peXXigen.c:1712
-#, c-format
+#, fuzzy, c-format
msgid "\tName Pointer Table \t\t"
-msgstr ""
+msgstr "Nama jadual adalah kosong!"
#: peXXigen.c:1717
-#, c-format
+#, fuzzy, c-format
msgid "\tOrdinal Table \t\t\t"
-msgstr ""
+msgstr "ordinal"
#: peXXigen.c:1731
#, c-format
@@ -9528,12 +9699,14 @@ msgid "\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n"
msgstr ""
#: peXXigen.c:1760
+#, fuzzy
msgid "Forwarder RVA"
-msgstr ""
+msgstr "Jenis Saiz Rva Offset\n"
#: peXXigen.c:1772
+#, fuzzy
msgid "Export RVA"
-msgstr ""
+msgstr "Jenis Saiz Rva Offset\n"
#: peXXigen.c:1779
#, c-format
@@ -9614,34 +9787,34 @@ msgid "\treloc %4d offset %4x [%4lx] %s"
msgstr ""
#: peXXigen.c:2276
-#, c-format
+#, fuzzy, c-format
msgid "%03x %*.s Entry: "
-msgstr ""
+msgstr "Masukan EXIF '%s' "
#: peXXigen.c:2300
-#, c-format
+#, fuzzy, c-format
msgid "name: [val: %08lx len %d]: "
-msgstr ""
+msgstr "Ralat membaca dari klien, len = %d\n"
#: peXXigen.c:2320
-#, c-format
+#, fuzzy, c-format
msgid "<corrupt string length: %#x>\n"
-msgstr ""
+msgstr "-X <rentetan>"
#: peXXigen.c:2330
-#, c-format
+#, fuzzy, c-format
msgid "<corrupt string offset: %#lx>\n"
-msgstr ""
+msgstr "ofset"
#: peXXigen.c:2335
#, c-format
msgid "ID: %#08lx"
-msgstr ""
+msgstr "ID: %#08lx"
#: peXXigen.c:2338
-#, c-format
+#, fuzzy, c-format
msgid ", Value: %#08lx\n"
-msgstr ""
+msgstr "nilai"
#: peXXigen.c:2360
#, c-format
@@ -9649,9 +9822,9 @@ msgid "%03x %*.s Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n"
msgstr ""
#: peXXigen.c:2402
-#, c-format
+#, fuzzy, c-format
msgid "<unknown directory type: %d>\n"
-msgstr ""
+msgstr "Jenis objek tak diketahui %d\n"
#: peXXigen.c:2410
#, c-format
@@ -9659,9 +9832,9 @@ msgid " Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d\n"
msgstr ""
#: peXXigen.c:2498
-#, c-format
+#, fuzzy, c-format
msgid "Corrupt .rsrc section detected!\n"
-msgstr ""
+msgstr "Fail rosak?"
#: peXXigen.c:2522
#, c-format
@@ -9676,9 +9849,9 @@ msgid " String table starts at offset: %#03x\n"
msgstr ""
#: peXXigen.c:2531
-#, c-format
+#, fuzzy, c-format
msgid " Resources start at offset: %#03x\n"
-msgstr ""
+msgstr "Mulakan Offset"
#: peXXigen.c:2588
#, c-format
@@ -9688,11 +9861,11 @@ msgid ""
msgstr ""
#: peXXigen.c:2594
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"There is a debug directory in %s, but that section has no contents\n"
-msgstr ""
+msgstr "Gagal memproses laporan nyahpijat, meninggalkan fail dalam direktori \"%s\"."
#: peXXigen.c:2601
#, c-format
@@ -9708,6 +9881,9 @@ msgid ""
"There is a debug directory in %s at 0x%lx\n"
"\n"
msgstr ""
+"\n"
+"Terdapat direktori nyahpepijat dalam %s pada 0x%lx\n"
+"\n"
#: peXXigen.c:2613
#, c-format
@@ -9717,7 +9893,7 @@ msgstr ""
#: peXXigen.c:2618
#, c-format
msgid "Type Size Rva Offset\n"
-msgstr ""
+msgstr "Jenis Saiz Rva Offset\n"
#: peXXigen.c:2666
#, c-format
@@ -9738,6 +9914,8 @@ msgid ""
"\n"
"Characteristics 0x%x\n"
msgstr ""
+"\n"
+"Ciri-ciri 0x%x\n"
#: peXXigen.c:3047
#, c-format
@@ -9746,12 +9924,12 @@ msgstr ""
#: peXXigen.c:3088
msgid "failed to update file offsets in debug directory"
-msgstr ""
+msgstr "gagal mengemaskini offset fail dalam direktori nyahpijat"
#: peXXigen.c:3097
#, c-format
msgid "%pB: failed to read debug data section"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: peXXigen.c:3900
#, c-format
diff --git a/bfd/reloc.c b/bfd/reloc.c
index d3ddafb..c9d53bb 100644
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -7419,6 +7419,12 @@ ENUMDOC
AArch64 pseudo relocation code to be used internally by the AArch64
assembler and not (currently) written to any object files.
ENUM
+ BFD_RELOC_AARCH64_BRANCH9
+ENUMDOC
+ AArch64 9 bit pc-relative conditional branch and compare & branch.
+ The lowest two bits must be zero and are not stored in the
+ instruction, giving an 11 bit signed byte offset.
+ENUM
BFD_RELOC_TILEPRO_COPY
ENUMX
BFD_RELOC_TILEPRO_GLOB_DAT
diff --git a/bfd/syms.c b/bfd/syms.c
index 95017ba..df2229b 100644
--- a/bfd/syms.c
+++ b/bfd/syms.c
@@ -594,6 +594,7 @@ struct section_to_type
adding entries. Since it is so short, a linear search is used. */
static const struct section_to_type stt[] =
{
+ {".didat", 'i'}, /* MSVC's .didat (delay import) section */
{".drectve", 'i'}, /* MSVC's .drective section */
{".edata", 'e'}, /* MSVC's .edata (export) section */
{".idata", 'i'}, /* MSVC's .idata (import) section */
diff --git a/bfd/version.h b/bfd/version.h
index ae6f7c7..7400e34 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 20250508
+#define BFD_VERSION_DATE 20250701
#define BFD_VERSION @bfd_version@
#define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@
#define REPORT_BUGS_TO @report_bugs_to@