libctf, ld, binutils: add textual error/warning reporting for libctf
This commit adds a long-missing piece of infrastructure to libctf: the
ability to report errors and warnings using all the power of printf,
rather than being restricted to one errno value. Internally, libctf
calls ctf_err_warn() to add errors and warnings to a list: a new
iterator ctf_errwarning_next() then consumes this list one by one and
hands it to the caller, which can free it. New errors and warnings are
added until the list is consumed by the caller or the ctf_file_t is
closed, so you can dump them at intervals. The caller can of course
choose to print only those warnings it wants. (I am not sure whether we
want objdump, readelf or ld to print warnings or not: right now I'm
printing them, but maybe we only want to print errors? This entirely
depends on whether warnings are voluminous things describing e.g. the
inability to emit single types because of name clashes or something.
There are no users of this infrastructure yet, so it's hard to say.)
There is no internationalization here yet, but this at least adds a
place where internationalization can be added, to one of
ctf_errwarning_next or ctf_err_warn.
We also provide a new ctf_assert() function which uses this
infrastructure to provide non-fatal assertion failures while emitting an
assert-like string to the caller: to save space and avoid needlessly
duplicating unchanging strings, the assertion test is inlined but the
print-things-out failure case is not. All assertions in libctf will be
converted to use this machinery in future commits and propagate
assertion-failure errors up, so that the linker in particular cannot be
killed by libctf assertion failures when it could perfectly well just
print warnings and drop the CTF section.
include/
* ctf-api.h (ECTF_INTERNAL): Adjust error text.
(ctf_errwarning_next): New.
libctf/
* ctf-impl.h (ctf_assert): New.
(ctf_err_warning_t): Likewise.
(ctf_file_t) <ctf_errs_warnings>: Likewise.
(ctf_err_warn): New prototype.
(ctf_assert_fail_internal): Likewise.
* ctf-inlines.h (ctf_assert_internal): Likewise.
* ctf-open.c (ctf_file_close): Free ctf_errs_warnings.
* ctf-create.c (ctf_serialize): Copy it on serialization.
* ctf-subr.c (ctf_err_warn): New, add an error/warning.
(ctf_errwarning_next): New iterator, free and pass back
errors/warnings in succession.
* libctf.ver (ctf_errwarning_next): Add.
ld/
* ldlang.c (lang_ctf_errs_warnings): New, print CTF errors
and warnings. Assert when libctf asserts.
(lang_merge_ctf): Call it.
(land_write_ctf): Likewise.
binutils/
* objdump.c (ctf_archive_member): Print CTF errors and warnings.
* readelf.c (dump_ctf_archive_member): Likewise.
2020-06-04 22:07:54 +08:00
|
|
|
|
2020-07-22 Nick Alcock <nick.alcock@oracle.com>
|
|
|
|
|
|
|
|
|
|
* ctf-api.h (ECTF_INTERNAL): Adjust error text.
|
|
|
|
|
(ctf_errwarning_next): New.
|
|
|
|
|
|
2020-06-04 00:31:44 +08:00
|
|
|
|
2020-07-22 Nick Alcock <nick.alcock@oracle.com>
|
|
|
|
|
|
|
|
|
|
* ctf-api.h (ECTF_FLAGS): New.
|
|
|
|
|
(ECTF_NERR): Adjust.
|
|
|
|
|
* ctf.h (CTF_F_MAX): New.
|
|
|
|
|
|
libctf, next: introduce new class of easier-to-use iterators
The libctf machinery currently only provides one way to iterate over its
data structures: ctf_*_iter functions that take a callback and an arg
and repeatedly call it.
This *works*, but if you are doing a lot of iteration it is really quite
inconvenient: you have to package up your local variables into
structures over and over again and spawn lots of little functions even
if it would be clearer in a single run of code. Look at ctf-string.c
for an extreme example of how unreadable this can get, with
three-line-long functions proliferating wildly.
The deduplicator takes this to the Nth level. It iterates over a whole
bunch of things: if we'd had to use _iter-class iterators for all of
them there would be twenty additional functions in the deduplicator
alone, for no other reason than that the iterator API requires it.
Let's do something better. strtok_r gives us half the design: generators
in a number of other languages give us the other half.
The *_next API allows you to iterate over CTF-like entities in a single
function using a normal while loop. e.g. here we are iterating over all
the types in a dict:
ctf_next_t *i = NULL;
int *hidden;
ctf_id_t id;
while ((id = ctf_type_next (fp, &i, &hidden, 1)) != CTF_ERR)
{
/* do something with 'hidden' and 'id' */
}
if (ctf_errno (fp) != ECTF_NEXT_END)
/* iteration error */
Here we are walking through the members of a struct with CTF ID
'struct_type':
ctf_next_t *i = NULL;
ssize_t offset;
const char *name;
ctf_id_t membtype;
while ((offset = ctf_member_next (fp, struct_type, &i, &name,
&membtype)) >= 0
{
/* do something with offset, name, and membtype */
}
if (ctf_errno (fp) != ECTF_NEXT_END)
/* iteration error */
Like every other while loop, this means you have access to all the local
variables outside the loop while inside it, with no need to tiresomely
package things up in structures, move the body of the loop into a
separate function, etc, as you would with an iterator taking a callback.
ctf_*_next allocates 'i' for you on first entry (when it must be NULL),
and frees and NULLs it and returns a _next-dependent flag value when the
iteration is over: the fp errno is set to ECTF_NEXT_END when the
iteartion ends normally. If you want to exit early, call
ctf_next_destroy on the iterator. You can copy iterators using
ctf_next_copy, which copies their current iteration position so you can
remember loop positions and go back to them later (or ctf_next_destroy
them if you don't need them after all).
Each _next function returns an always-likely-to-be-useful property of
the thing being iterated over, and takes pointers to parameters for the
others: with very few exceptions all those parameters can be NULLs if
you're not interested in them, so e.g. you can iterate over only the
offsets of members of a structure this way:
while ((offset = ctf_member_next (fp, struct_id, &i, NULL, NULL)) >= 0)
If you pass an iterator in use by one iteration function to another one,
you get the new error ECTF_NEXT_WRONGFUN back; if you try to change
ctf_file_t in mid-iteration, you get ECTF_NEXT_WRONGFP back.
Internally the ctf_next_t remembers the iteration function in use,
various sizes and increments useful for almost all iterations, then
uses unions to overlap the actual entities being iterated over to keep
ctf_next_t size down.
Iterators available in the public API so far (all tested in actual use
in the deduplicator):
/* Iterate over the members of a STRUCT or UNION, returning each member's
offset and optionally name and member type in turn. On end-of-iteration,
returns -1. */
ssize_t
ctf_member_next (ctf_file_t *fp, ctf_id_t type, ctf_next_t **it,
const char **name, ctf_id_t *membtype);
/* Iterate over the members of an enum TYPE, returning each enumerand's
NAME or NULL at end of iteration or error, and optionally passing
back the enumerand's integer VALue. */
const char *
ctf_enum_next (ctf_file_t *fp, ctf_id_t type, ctf_next_t **it,
int *val);
/* Iterate over every type in the given CTF container (not including
parents), optionally including non-user-visible types, returning
each type ID and optionally the hidden flag in turn. Returns CTF_ERR
on end of iteration or error. */
ctf_id_t
ctf_type_next (ctf_file_t *fp, ctf_next_t **it, int *flag,
int want_hidden);
/* Iterate over every variable in the given CTF container, in arbitrary
order, returning the name and type of each variable in turn. The
NAME argument is not optional. Returns CTF_ERR on end of iteration
or error. */
ctf_id_t
ctf_variable_next (ctf_file_t *fp, ctf_next_t **it, const char **name);
/* Iterate over all CTF files in an archive, returning each dict in turn as a
ctf_file_t, and NULL on error or end of iteration. It is the caller's
responsibility to close it. Parent dicts may be skipped. Regardless of
whether they are skipped or not, the caller must ctf_import the parent if
need be. */
ctf_file_t *
ctf_archive_next (const ctf_archive_t *wrapper, ctf_next_t **it,
const char **name, int skip_parent, int *errp);
ctf_label_next is prototyped but not implemented yet.
include/
* ctf-api.h (ECTF_NEXT_END): New error.
(ECTF_NEXT_WRONGFUN): Likewise.
(ECTF_NEXT_WRONGFP): Likewise.
(ECTF_NERR): Adjust.
(ctf_next_t): New.
(ctf_next_create): New prototype.
(ctf_next_destroy): Likewise.
(ctf_next_copy): Likewise.
(ctf_member_next): Likewise.
(ctf_enum_next): Likewise.
(ctf_type_next): Likewise.
(ctf_label_next): Likewise.
(ctf_variable_next): Likewise.
libctf/
* ctf-impl.h (ctf_next): New.
(ctf_get_dict): New prototype.
* ctf-lookup.c (ctf_get_dict): New, split out of...
(ctf_lookup_by_id): ... here.
* ctf-util.c (ctf_next_create): New.
(ctf_next_destroy): New.
(ctf_next_copy): New.
* ctf-types.c (includes): Add <assert.h>.
(ctf_member_next): New.
(ctf_enum_next): New.
(ctf_type_iter): Document the lack of iteration over parent
types.
(ctf_type_next): New.
(ctf_variable_next): New.
* ctf-archive.c (ctf_archive_next): New.
* libctf.ver: Add new public functions.
2020-06-03 22:13:24 +08:00
|
|
|
|
2020-07-22 Nick Alcock <nick.alcock@oracle.com>
|
|
|
|
|
|
|
|
|
|
* ctf-api.h (ECTF_NEXT_END): New error.
|
|
|
|
|
(ECTF_NEXT_WRONGFUN): Likewise.
|
|
|
|
|
(ECTF_NEXT_WRONGFP): Likewise.
|
|
|
|
|
(ECTF_NERR): Adjust.
|
|
|
|
|
(ctf_next_t): New.
|
|
|
|
|
(ctf_next_create): New prototype.
|
|
|
|
|
(ctf_next_destroy): Likewise.
|
|
|
|
|
(ctf_next_copy): Likewise.
|
|
|
|
|
(ctf_member_next): Likewise.
|
|
|
|
|
(ctf_enum_next): Likewise.
|
|
|
|
|
(ctf_type_next): Likewise.
|
|
|
|
|
(ctf_label_next): Likewise.
|
|
|
|
|
(ctf_variable_next): Likewise.
|
|
|
|
|
|
2020-06-08 16:24:01 +08:00
|
|
|
|
2020-07-22 Nick Alcock <nick.alcock@oracle.com>
|
|
|
|
|
|
|
|
|
|
* ctf-api.h (ctf_ref): New.
|
|
|
|
|
|
2020-06-03 04:14:22 +08:00
|
|
|
|
2020-07-22 Nick Alcock <nick.alcock@oracle.com>
|
|
|
|
|
|
|
|
|
|
* ctf-api.h (ctf_archive_count): New.
|
|
|
|
|
|
2020-06-03 04:11:25 +08:00
|
|
|
|
2020-07-22 Nick Alcock <nick.alcock@oracle.com>
|
|
|
|
|
|
|
|
|
|
* ctf-api.h (ctf_member_count): New.
|
|
|
|
|
|
2020-06-03 04:09:49 +08:00
|
|
|
|
2020-07-22 Nick Alcock <nick.alcock@oracle.com>
|
|
|
|
|
|
|
|
|
|
* ctf-api.h (ctf_type_kind_forwarded): New.
|
|
|
|
|
|
2020-06-03 04:06:18 +08:00
|
|
|
|
2020-07-22 Nick Alcock <nick.alcock@oracle.com>
|
|
|
|
|
|
|
|
|
|
* ctf-api.c (ctf_type_name_raw): New.
|
|
|
|
|
|
libctf: restructure error handling to reduce relocations
Jose Marchesi noted that the traditional-Unix error array in ctf-error.c
introduces one reloc per error to initialize the array: 58 so far. We
can reduce this to zero using an array of carefully-sized individual
members which is used to construct a string table, that is then
referenced by the lookup functions: but doing this automatically is a
pain.
Bruno Haible wrote suitable code years ago: I got permission to reuse it
(Bruno says "... which I hereby put in the public domain"); I modified
it a tiny bit (similarly to what Ulrich Drepper did in the dsohowto
text, but I redid it from scratch), commented it up a bit, and shifted
the error table into that form, migrating it into the new file
ctf-error.h.
This has the advantage that it spotted both typos in the text of the
errors in the comments in ctf-api.h and typos in the error defines in
the comments in ctf-error.c, and places where the two were simply not
in sync. All are now fixed.
One new constant exists in ctf-api.h: CTF_NERR, since the old method of
working out the number of errors in ctf-error.c was no longer usable,
and it seems that the number of CTF errors is something users might
reasonably want as well. It should be pretty easy to keep up to date as
new errors are introduced.
include/
* ctf-api.h (ECTF_*): Improve comments.
(ECTF_NERR): New.
libctf/
* ctf-error.c: Include <stddef.h>, for offsetof.
(_ctf_errlist): Migrate to...
(_ctf_errlist_t): ... this.
(_ctf_erridx): New, indexes into _ctf_errlist_t.
(_ctf_nerr): Remove.
(ctf_errmsg): Adjust accordingly.
* Makefile.am (BUILT_SOURCES): Note...
(ctf-error.h): ... this new rule.
* Makefile.in: Regenerate.
* mkerrors.sed: New, process ctf-api.h to generate ctf-error.h.
* .gitignore: New, ignore ctf-error.h.
2020-06-03 02:07:08 +08:00
|
|
|
|
2020-07-22 Nick Alcock <nick.alcock@oracle.com>
|
|
|
|
|
|
|
|
|
|
* ctf-api.h (ECTF_*): Improve comments.
|
|
|
|
|
(ECTF_NERR): New.
|
|
|
|
|
|
2020-06-03 01:56:06 +08:00
|
|
|
|
2020-07-22 Nick Alcock <nick.alcock@oracle.com>
|
|
|
|
|
|
|
|
|
|
* ctf-api.h: Fix typos in comments.
|
|
|
|
|
|
2020-07-22 18:49:07 +08:00
|
|
|
|
2020-07-22 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR ld/26262
|
|
|
|
|
PR ld/26267
|
|
|
|
|
* bfdlink.h (bfd_link_info): Add lto_all_symbols_read.
|
|
|
|
|
|
2020-07-11 19:04:08 +08:00
|
|
|
|
2020-07-11 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* elf/common.h (GNU_PROPERTY_X86_FEATURE_2_TMM): New.
|
|
|
|
|
|
2020-07-10 00:39:05 +08:00
|
|
|
|
2020-07-09 John Baldwin <jhb@FreeBSD.org>
|
|
|
|
|
|
|
|
|
|
* elf/common.h (AT_FREEBSD_ARGC, AT_FREEBSD_ARGV, AT_FREEBSD_ENVC)
|
|
|
|
|
(AT_FREEBSD_ENVV, AT_FREEBSD_PS_STRINGS): Define.
|
|
|
|
|
|
2020-07-08 19:51:32 +08:00
|
|
|
|
2020-07-09 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* coff/powerpc.h: Delete.
|
|
|
|
|
|
2020-07-04 17:16:22 +08:00
|
|
|
|
2020-07-04 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
Binutils 2.35 branch created.
|
|
|
|
|
|
2020-06-08 10:54:53 +08:00
|
|
|
|
2020-06-30 Nelson Chu <nelson.chu@sifive.com>
|
|
|
|
|
|
|
|
|
|
* opcode/riscv-opc.h: Support the unprivileged CSR. The versions
|
|
|
|
|
of the unprivileged CSR should be PRIV_SPEC_CLASS_NONE for now.
|
|
|
|
|
* opcode/riscv.h (enum riscv_csr_class): Add CSR_CLASS_DEBUG.
|
|
|
|
|
|
2020-06-23 14:23:51 +08:00
|
|
|
|
2020-06-30 Nelson Chu <nelson.chu@sifive.com>
|
|
|
|
|
|
|
|
|
|
* opcode/riscv-opc.h: Cleanup and remove the unused macros.
|
|
|
|
|
|
2020-06-29 08:37:56 +08:00
|
|
|
|
2020-06-29 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* coff/internal.h: Use C style comments.
|
|
|
|
|
* coff/pe.h: Likewise.
|
|
|
|
|
* elf/ppc64.h: Likewise.
|
|
|
|
|
|
libctf, binutils: support CTF archives like objdump
objdump and readelf have one major CTF-related behavioural difference:
objdump can read .ctf sections that contain CTF archives and extract and
dump their members, while readelf cannot. Since the linker often emits
CTF archives, this means that readelf intermittently and (from the
user's perspective) randomly fails to read CTF in files that ld emits,
with a confusing error message wrongly claiming that the CTF content is
corrupt. This is purely because the archive-opening code in libctf was
needlessly tangled up with the BFD code, so readelf couldn't use it.
Here, we disentangle it, moving ctf_new_archive_internal from
ctf-open-bfd.c into ctf-archive.c and merging it with the helper
function in ctf-archive.c it was already using. We add a new public API
function ctf_arc_bufopen, that looks very like ctf_bufopen but returns
an archive given suitable section data rather than a ctf_file_t: the
archive is a ctf_archive_t, so it can be called on raw CTF dictionaries
(with no archive present) and will return a single-member synthetic
"archive".
There is a tiny lifetime tweak here: before now, the archive code could
assume that the symbol section in the ctf_archive_internal wrapper
structure was always owned by BFD if it was present and should always be
freed: now, the caller can pass one in via ctf_arc_bufopen, wihch has
the usual lifetime rules for such sections (caller frees): so we add an
extra field to track whether this is an internal call from ctf-open-bfd,
in which case we still free the symbol section.
include/
* ctf-api.h (ctf_arc_bufopen): New.
libctf/
* ctf-impl.h (ctf_new_archive_internal): Declare.
(ctf_arc_bufopen): Remove.
(ctf_archive_internal) <ctfi_free_symsect>: New.
* ctf-archive.c (ctf_arc_close): Use it.
(ctf_arc_bufopen): Fuse into...
(ctf_new_archive_internal): ... this, moved across from...
* ctf-open-bfd.c: ... here.
(ctf_bfdopen_ctfsect): Use ctf_arc_bufopen.
* libctf.ver: Add it.
binutils/
* readelf.c (dump_section_as_ctf): Support .ctf archives using
ctf_arc_bufopen. Automatically load the .ctf member of such
archives as the parent of all other members, unless specifically
overridden via --ctf-parent. Split out dumping code into...
(dump_ctf_archive_member): ... here, as in objdump, and call
it once per archive member.
(dump_ctf_indent_lines): Code style fix.
2019-12-13 20:01:12 +08:00
|
|
|
|
2020-06-26 Nick Alcock <nick.alcock@oracle.com>
|
|
|
|
|
|
|
|
|
|
* ctf-api.h (ctf_arc_bufopen): New.
|
|
|
|
|
|
2020-06-26 04:05:38 +08:00
|
|
|
|
2020-06-26 Pat Bernardi <bernardi@adacore.com>
|
|
|
|
|
|
|
|
|
|
* elf/m68k.h: Add enum for GNU object attribute with floating point
|
|
|
|
|
tag name and values.
|
|
|
|
|
|
2020-06-25 18:16:42 +08:00
|
|
|
|
2020-06-25 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* libiberty.h (bsearch_r): Remove use of the register keyword from
|
|
|
|
|
the prototype.
|
|
|
|
|
|
2020-06-25 03:27:57 +08:00
|
|
|
|
2020-06-24 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
Sync with GCC
|
|
|
|
|
2020-06-23 Nick Alcock <nick.alcock@oracle.com>
|
|
|
|
|
|
|
|
|
|
* libiberty.h (bsearch_r): New.
|
|
|
|
|
|
|
|
|
|
2020-04-17 Martin Liska <mliska@suse.cz>
|
|
|
|
|
Jonathan Yong <10walls@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR gcov-profile/94570
|
|
|
|
|
* filenames.h (defined): Do not define HAVE_DOS_BASED_FILE_SYSTEM
|
|
|
|
|
for CYGWIN.
|
|
|
|
|
|
2020-06-22 21:51:04 +08:00
|
|
|
|
2020-06-22 Alex Coplan <alex.coplan@arm.com>
|
|
|
|
|
|
|
|
|
|
* opcode/aarch64.h (AARCH64_FEATURE_SHA2): Normalize.
|
|
|
|
|
(AARCH64_FEATURE_AES): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_V8_4): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_SM4): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_SHA3): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_V8): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_V8_2): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_V8_3): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_FP): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_SIMD): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_CRC): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_LSE): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_PAN): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_LOR): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_RDMA): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_V8_1): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_F16): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_RAS): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_PROFILE): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_SVE): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_RCPC): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_COMPNUM): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_DOTPROD): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_F16_FML): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_V8_5): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_V8_6): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_BFLOAT16): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_FLAGMANIP): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_FRINTTS): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_SB): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_PREDRES): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_CVADP): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_RNG): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_BTI): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_SCXTNUM): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_ID_PFR2): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_SSBS): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_MEMTAG): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_TME): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_I8MM): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_F32MM): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_F64MM): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_SVE2): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_SVE2_AES): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_SVE2_BITPERM): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_SVE2_SM4): Likewise.
|
|
|
|
|
(AARCH64_FEATURE_SVE2_SHA3): Likewise.
|
|
|
|
|
|
2020-06-22 21:29:20 +08:00
|
|
|
|
2020-06-22 Saagar Jha <saagar@saagarjha.com>
|
|
|
|
|
|
|
|
|
|
* mach-o/loader.h: Add declarations of two new Mach-O load
|
|
|
|
|
commands.
|
|
|
|
|
|
RISC-V: Report warning when linking the objects with different priv specs.
We do know some conflicts among different privileged specs. For linker,
the safest approach is that don't allow the object linked with others which
may cause conflicts. But this may cause inconvenience since not all objects
with conflicting priv specs are linked will cause problems. But it is hard
to know the detailed conflict cases for linker, so we probably need a option
to tell linker that we do know there are no conflicts, or we are willing to
take risks to link the objects with conflicted priv specs. But the option
is still under discussion.
Therefore, we can report warnings rather than errors when linking the objects
with conflicted priv specs. This not only makes the linker more flexible,
but also warns people that the conflicts may happen. We also need to update
the output priv spec version once the input priv spec is newer.
bfd/
* elfxx-riscv.c (struct priv_spec_t priv_specs[]): Move them from
opcodes/riscv-opc.c to bfd/elfxx-riscv.c, since we need it in linker.
(riscv_get_priv_spec_class): Likewise.
(riscv_get_priv_spec_name): Likewise.
(riscv_get_priv_spec_class_from_numbers): New function, convert
the version numbers into string, then call riscv_get_priv_spec_class
to get the priv spec class.
* elfxx-riscv.h (riscv_get_priv_spec_class): Move forward declaration
from include/opcode/riscv.h to bfd/elfxx-riscv.h.
(riscv_get_priv_spec_name): Likewise.
(riscv_get_priv_spec_class_from_numbers): New forward declaration.
(opcode/riscv.h): Include it in the header rather than elfxx-riscv.c.
* elfnn-riscv.c (riscv_merge_attributes): Get the priv spec classes
of input and output objects form their priv spec attributes by
riscv_get_priv_spec_class_from_numbers. Report warning rather than
errors when linking objects with differnet priv spec versions. We do
know v1.9.1 may have conflicts to other versions, so report the
warning, too. After that, update the output priv spec version to the
newest one so far.
gas/
* config/tc-riscv.c (buf_size, buf): Remove the unused variables.
(riscv_set_default_priv_spec): Get the priv spec version from the
priv spec attributes by riscv_get_priv_spec_class_from_numbers.
include/
* opcode/riscv.h (riscv_get_priv_spec_class): Move the function
forward declarations to bfd/elfxx-riscv.h.
(riscv_get_priv_spec_name): Likewise.
opcodes/
* riscv-opc.c: Move the structures and functions to bfd/elfxx-riscv.c.
* riscv-dis.c: Include elfxx-riscv.h.
ld/
* testsuite/ld-riscv-elf/attr-merge-priv-spec-failed-01.d: Updated.
* testsuite/ld-riscv-elf/attr-merge-priv-spec-failed-02.d: Updated.
* testsuite/ld-riscv-elf/attr-merge-priv-spec-failed-03.d: Updated.
* testsuite/ld-riscv-elf/attr-merge-priv-spec-failed-04.d: Updated.
* testsuite/ld-riscv-elf/attr-merge-priv-spec-failed-05.d: Updated.
* testsuite/ld-riscv-elf/attr-merge-priv-spec-failed-06.d: Updated.
2020-06-12 23:06:49 +08:00
|
|
|
|
2020-06-22 Nelson Chu <nelson.chu@sifive.com>
|
|
|
|
|
|
|
|
|
|
* opcode/riscv.h (riscv_get_priv_spec_class): Move the function
|
|
|
|
|
forward declarations to bfd/elfxx-riscv.h.
|
|
|
|
|
(riscv_get_priv_spec_name): Likewise.
|
|
|
|
|
|
2020-05-10 23:03:08 +08:00
|
|
|
|
2020-06-15 Max Filippov <jcmvbkbc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* elf/xtensa.h (xtensa_abi_choice): New declaration.
|
|
|
|
|
|
2020-06-16 02:45:02 +08:00
|
|
|
|
2020-06-12 Roland McGrath <mcgrathr@google.com>
|
|
|
|
|
|
|
|
|
|
* bfdlink.h (struct bfd_link_info): New field start_stop_visibility.
|
|
|
|
|
|
RISC-V: Drop the privileged spec v1.9 support.
There is a conflict between v1.9 and v1.9.1 - CSR MISA address. MISA is
0xf10 in v1.9, but change to 0x301 in v1.9.1. The change made MISA writable,
but may also cause risk of compatibility. Binutils already support the
-mpriv-spec options and ELF priv attributes, which can used to choose what
privileged spec you want, and then give a correponding CSR name and address
to use. But Gdb and other tools don't have the simialr mechanism for now.
However, there are two things can be confirmed,
1. If we don't have a way to control the priv specs, then the changes, like
MISA, will cause risk and hard to maintain.
2. We get the guarantee that the CSR address won't be reused in the future
specs, even if it is dropped.
I'm not sure if Gdb needs to care about the priv spec versions, it is still
discussing. But drop the priv spec v1.9, and make sure that we won't reuse
the CSR address is a useful solution for now. Also, we might drop the v1.9.1
in a year or two. After that, specs above v1.10 should be compatible anyway.
gas/
* testsuite/gas/riscv/priv-reg-fail-version-1p9.d: Removed.
* testsuite/gas/riscv/priv-reg-fail-version-1p9.l: Likewise.
* testsuite/gas/riscv/priv-reg-version-1p9.d: Likewise.
include/
* opcode/riscv-opc.h: Update the defined versions of CSR from
PRIV_SPEC_CLASS_1P9 to PRIV_SPEC_CLASS_1P9P1. Also, drop the
MISA DECLARE_CSR_ALIAS since it's aborted version is v1.9.
* opcode/riscv.h (enum riscv_priv_spec_class): Remove
PRIV_SPEC_CLASS_1P9.
opcodes/
* riscv-opc.c (priv_specs): Remove v1.9 and PRIV_SPEC_CLASS_1P9.
2020-06-10 14:07:54 +08:00
|
|
|
|
2020-06-12 Nelson Chu <nelson.chu@sifive.com>
|
|
|
|
|
|
|
|
|
|
* opcode/riscv-opc.h: Update the defined versions of CSR from
|
|
|
|
|
PRIV_SPEC_CLASS_1P9 to PRIV_SPEC_CLASS_1P9P1. Also, drop the
|
|
|
|
|
MISA DECLARE_CSR_ALIAS since it's aborted version is v1.9.
|
|
|
|
|
* opcode/riscv.h (enum riscv_priv_spec_class): Remove
|
|
|
|
|
PRIV_SPEC_CLASS_1P9.
|
|
|
|
|
|
2020-06-11 19:34:37 +08:00
|
|
|
|
2020-06-11 Alex Coplan <alex.coplan@arm.com>
|
|
|
|
|
|
|
|
|
|
* opcode/aarch64.h (aarch64_sys_reg): Add required features to struct
|
|
|
|
|
describing system registers.
|
|
|
|
|
|
2020-06-11 11:57:50 +08:00
|
|
|
|
2020-06-11 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* elf/mips.h (Elf32_RegInfo): Use fixed width integer types.
|
|
|
|
|
(Elf64_Internal_RegInfo, Elf_Internal_Options): Likewise.
|
|
|
|
|
|
Rename PowerPC64 pcrel GOT TLS relocations
These relocations should have had REL in their names, to reflect the
fact that they are pc-relative. Fix that now by adding _PCREL.
I've added some back-compatibility code to support anyone using
.reloc with the old relocations.
include/
* elf/ppc64.h (elf_ppc64_reloc_type): Rename
R_PPC64_GOT_TLSGD34 to R_PPC64_GOT_TLSGD_PCREL34,
R_PPC64_GOT_TLSLD34 to R_PPC64_GOT_TLSLD_PCREL34,
R_PPC64_GOT_TPREL34 to R_PPC64_GOT_TPREL_PCREL34, and
R_PPC64_GOT_DTPREL34 to R_PPC64_GOT_DTPREL_PCREL34.
bfd/
* reloc.c: Rename
BFD_RELOC_PPC64_GOT_TLSGD34 to BFD_RELOC_PPC64_GOT_TLSGD_PCREL34,
BFD_RELOC_PPC64_GOT_TLSLD34 to BFD_RELOC_PPC64_GOT_TLSLD_PCREL34,
BFD_RELOC_PPC64_GOT_TPREL34 to BFD_RELOC_PPC64_GOT_TPREL_PCREL34,
BFD_RELOC_PPC64_GOT_DTPREL34 to BFD_RELOC_PPC64_GOT_DTPREL_PCREL34.
* elf64-ppc.c: Update throughout for reloc renaming.
(ppc64_elf_reloc_name_lookup): Handle old reloc names.
* libbfd.h: Regenerate.
* bfd-in2.h: Regenerate.
gas/
* config/tc-ppc.c: Update throughout for reloc renaming.
elfcpp/
* powerpc.h: Rename
R_PPC64_GOT_TLSGD34 to R_PPC64_GOT_TLSGD_PCREL34,
R_PPC64_GOT_TLSLD34 to R_PPC64_GOT_TLSLD_PCREL34,
R_PPC64_GOT_TPREL34 to R_PPC64_GOT_TPREL_PCREL34, and
R_PPC64_GOT_DTPREL34 to R_PPC64_GOT_DTPREL_PCREL34.
gold/
* powerpc.cc: Update throughout for reloc renaming.
2020-06-06 10:26:20 +08:00
|
|
|
|
2020-06-06 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* elf/ppc64.h (elf_ppc64_reloc_type): Rename
|
|
|
|
|
R_PPC64_GOT_TLSGD34 to R_PPC64_GOT_TLSGD_PCREL34,
|
|
|
|
|
R_PPC64_GOT_TLSLD34 to R_PPC64_GOT_TLSLD_PCREL34,
|
|
|
|
|
R_PPC64_GOT_TPREL34 to R_PPC64_GOT_TPREL_PCREL34, and
|
|
|
|
|
R_PPC64_GOT_DTPREL34 to R_PPC64_GOT_DTPREL_PCREL34.
|
|
|
|
|
|
opcodes: discriminate endianness and insn-endianness in CGEN ports
The CGEN support code in opcodes accesses instruction contents using a
couple of functions defined in cgen-opc.c: cgen_get_insn_value and
cgen_put_insn_value. These functions use the "instruction endianness"
in the CPU description to order the read/written bytes.
The process of writing an instruction to the object file is:
a) cgen_put_insn_value ;; Writes out the opcodes.
b) ARCH_cgen_insert_operand
insert_normal
insert_1
cgen_put_insn_value ;; Writes out the bytes of the
;; operand.
Likewise, the process of reading an instruction from the object file
is:
a) cgen_get_insn_value ;; Reads the opcodes.
b) ARCH_cgen_extract_operand
extract_normal
extract_1
cgen_get_insn_value ;; Reads in the bytes of the
;; operand.
As can be seen above, cgen_{get,put}_insn_value are used to both
process the instruction opcodes (the constant fields conforming the
base instruction) and also the values of the instruction operands,
such as immediates.
This is problematic for architectures in which the endianness of
instructions is different to the endianness of data. An example is
BPF, where instructions are always encoded big-endian but the data may
be either big or little.
This patch changes the cgen_{get,put}_insn_value functions in order to
get an extra argument with the endianness to use, and adapts the
existin callers to these functions in order to provide cd->endian or
cd->insn_endian, whatever appropriate. Callers like extract_1 and
insert_1 pass cd->endian (since they are reading/writing operand
values) while callers reading/writing the base instruction pass
cd->insn_endian instead.
A few little adjustments have been needed in some existing CGEN based
ports:
* The BPF assembler uses cgen_put_insn_value. It has been adapted to
pass the new endian argument.
* The mep port has code in mep.opc that uses cgen_{get,put}_insn_value.
It has been adapted to pass the new endianargument. Ditto for a
call in the assembler.
Tested with --enable-targets=all.
Regested in all supported targets.
No regressions.
include/ChangeLog:
2020-06-04 Jose E. Marchesi <jose.marchesi@oracle.com>
* opcode/cgen.h: Get an `endian' argument in both
cgen_get_insn_value and cgen_put_insn_value.
opcodes/ChangeLog:
2020-06-04 Jose E. Marchesi <jose.marchesi@oracle.com>
* cgen-opc.c (cgen_get_insn_value): Get an `endian' argument.
(cgen_put_insn_value): Likewise.
(cgen_lookup_insn): Pass endianness to cgen_{get,put}_insn_value.
* cgen-dis.in (print_insn): Likewise.
* cgen-ibld.in (insert_1): Likewise.
(insert_1): Likewise.
(insert_insn_normal): Likewise.
(extract_1): Likewise.
* bpf-dis.c: Regenerate.
* bpf-ibld.c: Likewise.
* bpf-ibld.c: Likewise.
* cgen-dis.in: Likewise.
* cgen-ibld.in: Likewise.
* cgen-opc.c: Likewise.
* epiphany-dis.c: Likewise.
* epiphany-ibld.c: Likewise.
* fr30-dis.c: Likewise.
* fr30-ibld.c: Likewise.
* frv-dis.c: Likewise.
* frv-ibld.c: Likewise.
* ip2k-dis.c: Likewise.
* ip2k-ibld.c: Likewise.
* iq2000-dis.c: Likewise.
* iq2000-ibld.c: Likewise.
* lm32-dis.c: Likewise.
* lm32-ibld.c: Likewise.
* m32c-dis.c: Likewise.
* m32c-ibld.c: Likewise.
* m32r-dis.c: Likewise.
* m32r-ibld.c: Likewise.
* mep-dis.c: Likewise.
* mep-ibld.c: Likewise.
* mt-dis.c: Likewise.
* mt-ibld.c: Likewise.
* or1k-dis.c: Likewise.
* or1k-ibld.c: Likewise.
* xc16x-dis.c: Likewise.
* xc16x-ibld.c: Likewise.
* xstormy16-dis.c: Likewise.
* xstormy16-ibld.c: Likewise.
gas/ChangeLog:
2020-06-04 Jose E. Marchesi <jose.marchesi@oracle.com>
* cgen.c (gas_cgen_finish_insn): Pass the endianness to
cgen_put_insn_value.
(gas_cgen_md_apply_fix): Likewise.
(gas_cgen_md_apply_fix): Likewise.
* config/tc-bpf.c (md_apply_fix): Pass data endianness to
cgen_put_insn_value.
* config/tc-mep.c (mep_check_ivc2_scheduling): Pass endianness to
cgen_put_insn_value.
cpu/ChangeLog:
2020-06-02 Jose E. Marchesi <jose.marchesi@oracle.com>
* mep.opc (print_slot_insn): Pass the insn endianness to
cgen_get_insn_value.
2020-06-04 22:15:53 +08:00
|
|
|
|
2020-06-04 Jose E. Marchesi <jose.marchesi@oracle.com>
|
|
|
|
|
|
|
|
|
|
* opcode/cgen.h: Get an `endian' argument in both
|
|
|
|
|
cgen_get_insn_value and cgen_put_insn_value.
|
|
|
|
|
|
2020-06-04 22:14:41 +08:00
|
|
|
|
2020-06-04 Jose E. Marchesi <jemarch@gnu.org>
|
|
|
|
|
|
|
|
|
|
* opcode/cgen.h (enum cgen_cpu_open_arg): New value
|
|
|
|
|
CGEN_CPU_OPEN_INSN_ENDIAN.
|
|
|
|
|
|
2020-06-02 09:44:13 +08:00
|
|
|
|
2020-06-03 Nelson Chu <nelson.chu@sifive.com>
|
|
|
|
|
|
|
|
|
|
* opcode/riscv.h: Remove #include "bfd.h". And change the return
|
|
|
|
|
types of riscv_get_isa_spec_class and riscv_get_priv_spec_class
|
|
|
|
|
from bfd_boolean to int.
|
|
|
|
|
|
2020-05-28 17:16:17 +08:00
|
|
|
|
2020-05-28 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR 26044
|
|
|
|
|
* opcode/tilepro.h (TILEPRO_NUM_PIPELINE_ENCODINGS): Move to
|
|
|
|
|
tilepro_pipeline enum.
|
|
|
|
|
|
2020-05-27 19:53:54 +08:00
|
|
|
|
2020-05-27 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR ld/22909
|
|
|
|
|
* bfdlink.h (textrel_check_method): New enum.
|
|
|
|
|
(bfd_link_textrel_check): New.
|
|
|
|
|
(bfd_link_info): Replace warn_shared_textrel and error_textrel
|
|
|
|
|
with textrel_check.
|
|
|
|
|
|
2020-05-26 02:26:48 +08:00
|
|
|
|
2020-05-25 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* elf/common.h: Update comments for ET_EXEC and ET_DYN.
|
|
|
|
|
|
[PATCH v2 0/9] RISC-V: Support version controling for ISA standard extensions and CSR
1. Remove the -mriscv-isa-version and --with-riscv-isa-version options.
We can still use -march to choose the version for each extensions, so there is
no need to add these.
2. Change the arguments of options from [1p9|1p9p1|...] to [1.9|1.9.1|...].
Unlike the architecture string has specified by spec, ther is no need to do
the same thing for options.
3. Spilt the patches to reduce the burdens of review.
[PATCH 3/7] RISC-V: Support new GAS options and configure options to set ISA versions
to
[PATCH v2 3/9] RISC-V: Support GAS option -misa-spec to set ISA versions
[PATCH v2 4/9] RISC-V: Support configure options to set ISA versions by default.
[PATCH 4/7] RISC-V: Support version checking for CSR according to privilege version.
to
[PATCH v2 5/9] RISC-V: Support version checking for CSR according to privilege spec version.
[PATCH v2 6/9] RISC-V: Support configure option to choose the privilege spec version.
4. Use enum class rather than string to compare the choosen ISA spec in opcodes/riscv-opc.c.
The behavior is same as comparing the choosen privilege spec.
include * opcode/riscv.h: Include "bfd.h" to support bfd_boolean.
(enum riscv_isa_spec_class): New enum class. All supported ISA spec
belong to one of the class
(struct riscv_ext_version): New structure holds version information
for the specific ISA.
* opcode/riscv-opc.h (DECLARE_CSR): There are two version information,
define_version and abort_version. The define_version means which
privilege spec is started to define the CSR, and the abort_version
means which privilege spec is started to abort the CSR. If the CSR is
valid for the newest spec, then the abort_version should be
PRIV_SPEC_CLASS_DRAFT.
(DECLARE_CSR_ALIAS): Same as DECLARE_CSR, but only for the obselete CSR.
* opcode/riscv.h (enum riscv_priv_spec_class): New enum class. Define
the current supported privilege spec versions.
(struct riscv_csr_extra): Add new fields to store more information
about the CSR. We use these information to find the suitable CSR
address when user choosing a specific privilege spec.
binutils * dwarf.c: Updated since DECLARE_CSR is changed.
opcodes * riscv-opc.c (riscv_ext_version_table): The table used to store
all information about the supported spec and the corresponding ISA
versions. Currently, only Zicsr is supported to verify the
correctness of Z sub extension settings. Others will be supported
in the future patches.
(struct isa_spec_t, isa_specs): List for all supported ISA spec
classes and the corresponding strings.
(riscv_get_isa_spec_class): New function. Get the corresponding ISA
spec class by giving a ISA spec string.
* riscv-opc.c (struct priv_spec_t): New structure.
(struct priv_spec_t priv_specs): List for all supported privilege spec
classes and the corresponding strings.
(riscv_get_priv_spec_class): New function. Get the corresponding
privilege spec class by giving a spec string.
(riscv_get_priv_spec_name): New function. Get the corresponding
privilege spec string by giving a CSR version class.
* riscv-dis.c: Updated since DECLARE_CSR is changed.
* riscv-dis.c: Add new disassembler option -Mpriv-spec to dump the CSR
according to the chosen version. Build a hash table riscv_csr_hash to
store the valid CSR for the chosen pirv verison. Dump the direct
CSR address rather than it's name if it is invalid.
(parse_riscv_dis_option_without_args): New function. Parse the options
without arguments.
(parse_riscv_dis_option): Call parse_riscv_dis_option_without_args to
parse the options without arguments first, and then handle the options
with arguments. Add the new option -Mpriv-spec, which has argument.
* riscv-dis.c (print_riscv_disassembler_options): Add description
about the new OBJDUMP option.
ld * testsuite/ld-riscv-elf/attr-merge-arch-01.d: Updated
priv attributes according to the -mpriv-spec option.
* testsuite/ld-riscv-elf/attr-merge-arch-02.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-arch-03.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-priv-spec-a.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-priv-spec-b.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-priv-spec.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-stack-align.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-01.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-02.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-03.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-04.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-05.d: Likewise.
bfd * elfxx-riscv.h (riscv_parse_subset_t): Add new callback function
get_default_version. It is used to find the default version for
the specific extension.
* elfxx-riscv.c (riscv_parsing_subset_version): Remove the parameters
default_major_version and default_minor_version. Add new bfd_boolean
parameter *use_default_version. Set it to TRUE if we need to call
the callback rps->get_default_version to find the default version.
(riscv_parse_std_ext): Call rps->get_default_version if we fail to find
the default version in riscv_parsing_subset_version, and then call
riscv_add_subset to add the subset into subset list.
(riscv_parse_prefixed_ext): Likewise.
(riscv_std_z_ext_strtab): Support Zicsr extensions.
* elfnn-riscv.c (riscv_merge_std_ext): Use strcasecmp to compare the
strings rather than characters.
riscv_merge_arch_attr_info): The callback function get_default_version
is only needed for assembler, so set it to NULL int the linker.
* elfxx-riscv.c (riscv_estimate_digit): Remove the static.
* elfxx-riscv.h: Updated.
gas * testsuite/gas/riscv/priv-reg-fail-read-only-01.s: Updated.
* config/tc-riscv.c (default_arch_with_ext, default_isa_spec):
Static variables which are used to set the ISA extensions. You can
use -march (or ELF build attributes) and -misa-spec to set them,
respectively.
(ext_version_hash): The hash table used to handle the extensions
with versions.
(init_ext_version_hash): Initialize the ext_version_hash according
to riscv_ext_version_table.
(riscv_get_default_ext_version): The callback function of
riscv_parse_subset_t. According to the choosed ISA spec,
get the default version for the specific extension.
(riscv_set_arch): Set the callback function.
(enum options, struct option md_longopts): Add new option -misa-spec.
(md_parse_option): Do not call riscv_set_arch for -march. We will
call it later in riscv_after_parse_args. Call riscv_get_isa_spec_class
to set default_isa_spec class.
(riscv_after_parse_args): Call init_ext_version_hash to initialize the
ext_version_hash, and then call riscv_set_arch to set the architecture
with versions according to default_arch_with_ext.
* testsuite/gas/riscv/attribute-02.d: Set 0p0 as default version for
x extensions.
* testsuite/gas/riscv/attribute-03.d: Likewise.
* testsuite/gas/riscv/attribute-09.d: New testcase. For i-ext, we
already set it's version to 2p1 by march, so no need to use the default
2p2 version. For m-ext, we do not set the version by -march and ELF arch
attribute, so set the default 2p0 to it. For zicsr, it is not defined in
ISA spec 2p2, so set 0p0 to it.
* testsuite/gas/riscv/attribute-10.d: New testcase. The version of
zicsr is 2p0 according to ISA spec 20191213.
* config/tc-riscv.c (DEFAULT_RISCV_ARCH_WITH_EXT)
(DEFAULT_RISCV_ISA_SPEC): Default configure option settings.
You can set them by configure options --with-arch and
--with-isa-spec, respectively.
(riscv_set_default_isa_spec): New function used to set the
default ISA spec.
(md_parse_option): Call riscv_set_default_isa_spec rather than
call riscv_get_isa_spec_class directly.
(riscv_after_parse_args): If the -isa-spec is not set, then we
set the default ISA spec according to DEFAULT_RISCV_ISA_SPEC by
calling riscv_set_default_isa_spec.
* testsuite/gas/riscv/attribute-01.d: Add -misa-spec=2.2, since
the --with-isa-spec may be set to different ISA spec.
* testsuite/gas/riscv/attribute-02.d: Likewise.
* testsuite/gas/riscv/attribute-03.d: Likewise.
* testsuite/gas/riscv/attribute-04.d: Likewise.
* testsuite/gas/riscv/attribute-05.d: Likewise.
* testsuite/gas/riscv/attribute-06.d: Likewise.
* testsuite/gas/riscv/attribute-07.d: Likewise.
* configure.ac: Add configure options, --with-arch and
--with-isa-spec.
* configure: Regenerated.
* config.in: Regenerated.
* config/tc-riscv.c (default_priv_spec): Static variable which is
used to check if the CSR is valid for the chosen privilege spec. You
can use -mpriv-spec to set it.
(enum reg_class): We now get the CSR address from csr_extra_hash rather
than reg_names_hash. Therefore, move RCLASS_CSR behind RCLASS_MAX.
(riscv_init_csr_hashes): Only need to initialize one hash table
csr_extra_hash.
(riscv_csr_class_check): Change the return type to void. Don't check
the ISA dependency if -mcsr-check isn't set.
(riscv_csr_version_check): New function. Check and find the CSR address
from csr_extra_hash, according to default_priv_spec. Report warning
for the invalid CSR if -mcsr-check is set.
(reg_csr_lookup_internal): Updated.
(reg_lookup_internal): Likewise.
(md_begin): Updated since DECLARE_CSR and DECLARE_CSR_ALIAS are changed.
(enum options, struct option md_longopts): Add new GAS option -mpriv-spec.
(md_parse_option): Call riscv_set_default_priv_version to set
default_priv_spec.
(riscv_after_parse_args): If -mpriv-spec isn't set, then set the default
privilege spec to the newest one.
(enum riscv_csr_class, struct riscv_csr_extra): Move them to
include/opcode/riscv.h.
* testsuite/gas/riscv/priv-reg-fail-fext.d: This test case just want
to check the ISA dependency for CSR, so fix the spec version by adding
-mpriv-spec=1.11.
* testsuite/gas/riscv/priv-reg-fail-fext.l: Likewise. There are some
version warnings for the test case.
* gas/testsuite/gas/riscv/priv-reg-fail-read-only-01.d: Likewise.
* gas/testsuite/gas/riscv/priv-reg-fail-read-only-01.l: Likewise.
* gas/testsuite/gas/riscv/priv-reg-fail-read-only-02.d: Likewise.
* gas/testsuite/gas/riscv/priv-reg-fail-rv32-only.d: Likewise.
* gas/testsuite/gas/riscv/priv-reg-fail-rv32-only.l: Likewise.
* gas/testsuite/gas/riscv/priv-reg-fail-version-1p9.d: New test case.
Check whether the CSR is valid when privilege version 1.9 is choosed.
* gas/testsuite/gas/riscv/priv-reg-fail-version-1p9.l: Likewise.
* gas/testsuite/gas/riscv/priv-reg-fail-version-1p9p1.d: New test case.
Check whether the CSR is valid when privilege version 1.9.1 is choosed.
* gas/testsuite/gas/riscv/priv-reg-fail-version-1p9p1.l: Likewise.
* gas/testsuite/gas/riscv/priv-reg-fail-version-1p10.d: New test case.
Check whether the CSR is valid when privilege version 1.10 is choosed.
* gas/testsuite/gas/riscv/priv-reg-fail-version-1p10.l: Likewise.
* gas/testsuite/gas/riscv/priv-reg-fail-version-1p11.d: New test case.
Check whether the CSR is valid when privilege version 1.11 is choosed.
* gas/testsuite/gas/riscv/priv-reg-fail-version-1p11.l: Likewise.
* config/tc-riscv.c (DEFAULT_RISCV_ISA_SPEC): Default configure option
setting. You can set it by configure option --with-priv-spec.
(riscv_set_default_priv_spec): New function used to set the default
privilege spec.
(md_parse_option): Call riscv_set_default_priv_spec rather than
call riscv_get_priv_spec_class directly.
(riscv_after_parse_args): If -mpriv-spec isn't set, then we set the
default privilege spec according to DEFAULT_RISCV_PRIV_SPEC by
calling riscv_set_default_priv_spec.
* testsuite/gas/riscv/csr-dw-regnums.d: Add -mpriv-spec=1.11, since
the --with-priv-spec may be set to different privilege spec.
* testsuite/gas/riscv/priv-reg.d: Likewise.
* configure.ac: Add configure option --with-priv-spec.
* configure: Regenerated.
* config.in: Regenerated.
* config/tc-riscv.c (explicit_attr): Rename explicit_arch_attr to
explicit_attr. Set it to TRUE if any ELF attribute is found.
(riscv_set_default_priv_spec): Try to set the default_priv_spec if
the priv attributes are set.
(md_assemble): Set the default_priv_spec according to the priv
attributes when we start to assemble instruction.
(riscv_write_out_attrs): Rename riscv_write_out_arch_attr to
riscv_write_out_attrs. Update the arch and priv attributes. If we
don't set the corresponding ELF attributes, then try to output the
default ones.
(riscv_set_public_attributes): If any ELF attribute or -march-attr
options is set (explicit_attr is TRUE), then call riscv_write_out_attrs
to update the arch and priv attributes.
(s_riscv_attribute): Make sure all arch and priv attributes are set
before any instruction.
* testsuite/gas/riscv/attribute-01.d: Update the priv attributes if any
ELF attribute or -march-attr is set. If the priv attributes are not
set, then try to update them by the default setting (-mpriv-spec or
--with-priv-spec).
* testsuite/gas/riscv/attribute-02.d: Likewise.
* testsuite/gas/riscv/attribute-03.d: Likewise.
* testsuite/gas/riscv/attribute-04.d: Likewise.
* testsuite/gas/riscv/attribute-06.d: Likewise.
* testsuite/gas/riscv/attribute-07.d: Likewise.
* testsuite/gas/riscv/attribute-08.d: Likewise.
* testsuite/gas/riscv/attribute-09.d: Likewise.
* testsuite/gas/riscv/attribute-10.d: Likewise.
* testsuite/gas/riscv/attribute-unknown.d: Likewise.
* testsuite/gas/riscv/attribute-05.d: Likewise. Also, the priv spec
set by priv attributes must be supported.
* testsuite/gas/riscv/attribute-05.s: Likewise.
* testsuite/gas/riscv/priv-reg-fail-version-1p9.d: Likewise. Updated
priv attributes according to the -mpriv-spec option.
* testsuite/gas/riscv/priv-reg-fail-version-1p9p1.d: Likewise.
* testsuite/gas/riscv/priv-reg-fail-version-1p10.d: Likewise.
* testsuite/gas/riscv/priv-reg-fail-version-1p11.d: Likewise.
* testsuite/gas/riscv/priv-reg.d: Removed.
* testsuite/gas/riscv/priv-reg-version-1p9.d: New test case. Dump the
CSR according to the priv spec 1.9.
* testsuite/gas/riscv/priv-reg-version-1p9p1.d: New test case. Dump the
CSR according to the priv spec 1.9.1.
* testsuite/gas/riscv/priv-reg-version-1p10.d: New test case. Dump the
CSR according to the priv spec 1.10.
* testsuite/gas/riscv/priv-reg-version-1p11.d: New test case. Dump the
CSR according to the priv spec 1.11.
* config/tc-riscv.c (md_show_usage): Add descriptions about
the new GAS options.
* doc/c-riscv.texi: Likewise.
2020-05-21 00:22:48 +08:00
|
|
|
|
2020-05-20 Nelson Chu <nelson.chu@sifive.com>
|
|
|
|
|
|
|
|
|
|
* opcode/riscv.h: Include "bfd.h" to support bfd_boolean.
|
|
|
|
|
(enum riscv_isa_spec_class): New enum class. All supported ISA spec
|
|
|
|
|
belong to one of the class
|
|
|
|
|
(struct riscv_ext_version): New structure holds version information
|
|
|
|
|
for the specific ISA.
|
|
|
|
|
* opcode/riscv-opc.h (DECLARE_CSR): There are two version information,
|
|
|
|
|
define_version and abort_version. The define_version means which
|
|
|
|
|
privilege spec is started to define the CSR, and the abort_version
|
|
|
|
|
means which privilege spec is started to abort the CSR. If the CSR is
|
|
|
|
|
valid for the newest spec, then the abort_version should be
|
|
|
|
|
PRIV_SPEC_CLASS_DRAFT.
|
|
|
|
|
(DECLARE_CSR_ALIAS): Same as DECLARE_CSR, but only for the obselete CSR.
|
|
|
|
|
* opcode/riscv.h (enum riscv_priv_spec_class): New enum class. Define
|
|
|
|
|
the current supported privilege spec versions.
|
|
|
|
|
(struct riscv_csr_extra): Add new fields to store more information
|
|
|
|
|
about the CSR. We use these information to find the suitable CSR
|
|
|
|
|
address when user choosing a specific privilege spec.
|
|
|
|
|
|
2020-05-19 19:45:42 +08:00
|
|
|
|
2020-05-19 Alexander Fedotov <alfedotov@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR 25992
|
|
|
|
|
* opcode/arm.h (ARM_EXT2_V8R): Define. Modified ARM_AEXT2_V8R.
|
|
|
|
|
|
Power10 Reduced precision outer product operations
include/
* opcode/ppc.h (PPC_OPERAND_ACC): Define. Renumber following
PPC_OPERAND defines.
opcodes/
* ppc-opc.c (insert_xa6a, extract_xa6a, insert_xb6a, extract_xb6a):
New functions.
(powerpc_operands): Define ACC, PMSK8, PMSK4, PMSK2, XMSK, YMSK,
YMSK2, XA6a, XA6ap, XB6a entries.
(PMMIRR, P_X_MASK, P_XX1_MASK, P_GER_MASK): Define
(P_GER2_MASK, P_GER4_MASK, P_GER8_MASK, P_GER64_MASK): Define.
(PPCVSX4): Define.
(powerpc_opcodes): Add xxmfacc, xxmtacc, xxsetaccz,
xvi8ger4pp, xvi8ger4, xvf16ger2pp, xvf16ger2, xvf32gerpp, xvf32ger,
xvi4ger8pp, xvi4ger8, xvi16ger2spp, xvi16ger2s, xvbf16ger2pp,
xvbf16ger2, xvf64gerpp, xvf64ger, xvi16ger2, xvf16ger2np,
xvf32gernp, xvi8ger4spp, xvi16ger2pp, xvbf16ger2np, xvf64gernp,
xvf16ger2pn, xvf32gerpn, xvbf16ger2pn, xvf64gerpn, xvf16ger2nn,
xvf32gernn, xvbf16ger2nn, xvf64gernn, xvcvbf16sp, xvcvspbf16.
(prefix_opcodes): Add pmxvi8ger4pp, pmxvi8ger4, pmxvf16ger2pp,
pmxvf16ger2, pmxvf32gerpp, pmxvf32ger, pmxvi4ger8pp, pmxvi4ger8,
pmxvi16ger2spp, pmxvi16ger2s, pmxvbf16ger2pp, pmxvbf16ger2,
pmxvf64gerpp, pmxvf64ger, pmxvi16ger2, pmxvf16ger2np, pmxvf32gernp,
pmxvi8ger4spp, pmxvi16ger2pp, pmxvbf16ger2np, pmxvf64gernp,
pmxvf16ger2pn, pmxvf32gerpn, pmxvbf16ger2pn, pmxvf64gerpn,
pmxvf16ger2nn, pmxvf32gernn, pmxvbf16ger2nn, pmxvf64gernn.
gas/
* config/tc-ppc.c (pre_defined_registers): Add accumulators.
(md_assemble): Check acc specified in correct operand.
* testsuite/gas/ppc/outerprod.d,
* testsuite/gas/ppc/outerprod.s,
* testsuite/gas/ppc/vsx4.d,
* testsuite/gas/ppc/vsx4.s: New tests.
* testsuite/gas/ppc/ppc.exp: Run them.
2020-05-11 08:10:42 +08:00
|
|
|
|
2020-05-11 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* opcode/ppc.h (PPC_OPERAND_ACC): Define. Renumber following
|
|
|
|
|
PPC_OPERAND defines.
|
|
|
|
|
|
2020-05-11 07:54:14 +08:00
|
|
|
|
2020-05-11 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* elf/ppc64.h: Update comment.
|
|
|
|
|
* opcode/ppc.h (PPC_OPCODE_POWER10): Rename from PPC_OPCODE_POWERXX.
|
|
|
|
|
|
2020-04-30 22:47:30 +08:00
|
|
|
|
2020-04-30 Alex Coplan <alex.coplan@arm.com>
|
|
|
|
|
|
|
|
|
|
* opcode/aarch64.h (enum aarch64_opnd): Add
|
|
|
|
|
AARCH64_OPND_UNDEFINED.
|
|
|
|
|
|
2017-05-15 21:17:29 +08:00
|
|
|
|
2020-04-23 Anton Kolesov <anton.kolesov@synopsys.com>
|
|
|
|
|
|
|
|
|
|
* elf/common.h (NT_ARC_V2): New macro definitions.
|
|
|
|
|
|
xtensa: fix PR ld/25861
Introduce new relaxations XTENSA_PDIFF{8,16,32} for positive differences
(subtracted symbol precedes diminished symbol) and XTENSA_NDIFF{8,16,32}
for negative differences (subtracted symbol follows diminished symbol).
Don't generate XTENSA_DIFF relocations in the assembler, generate
XTENSA_PDIFF or XTENSA_NDIFF based on relative symbol position.
Handle XTENSA_DIFF in BFD for compatibility with old object files.
Handle XTENSA_PDIFF and XTENSA_NDIFF in BFD, treating difference value
as unsigned.
2020-04-22 Max Filippov <jcmvbkbc@gmail.com>
bfd/
* bfd-in2.h: Regenerated.
* elf32-xtensa.c (elf_howto_table): New entries for
R_XTENSA_PDIFF{8,16,32} and R_XTENSA_NDIFF{8,16,32}.
(elf_xtensa_reloc_type_lookup, elf_xtensa_do_reloc)
(relax_section): Add cases for R_XTENSA_PDIFF{8,16,32} and
R_XTENSA_NDIFF{8,16,32}.
* libbfd.h (bfd_reloc_code_real_names): Add names for
BFD_RELOC_XTENSA_PDIFF{8,16,32} and
BFD_RELOC_XTENSA_NDIFF{8,16,32}.
* reloc.c: Add documentation for BFD_RELOC_XTENSA_PDIFF{8,16,32}
and BFD_RELOC_XTENSA_NDIFF{8,16,32}.
binutils/
* readelf.c (is_none_reloc): Recognize
BFD_RELOC_XTENSA_PDIFF{8,16,32} and
BFD_RELOC_XTENSA_NDIFF{8,16,32}.
gas/
* config/tc-xtensa.c (md_apply_fix): Replace
BFD_RELOC_XTENSA_DIFF{8,16,32} generation with
BFD_RELOC_XTENSA_PDIFF{8,16,32} and
BFD_RELOC_XTENSA_NDIFF{8,16,32} generation.
* testsuite/gas/xtensa/loc.d: Replace BFD_RELOC_XTENSA_DIFF16
with BFD_RELOC_XTENSA_PDIFF16 in the expected output.
include/
* elf/xtensa.h (elf_xtensa_reloc_type): New entries for
R_XTENSA_PDIFF{8,16,32} and R_XTENSA_NDIFF{8,16,32}.
ld/
* testsuite/ld-xtensa/relax-loc.d: New test definition.
* testsuite/ld-xtensa/relax-loc.s: New test source.
* testsuite/ld-xtensa/xtensa.exp (relax-loc): New test.
2020-04-20 10:04:41 +08:00
|
|
|
|
2020-04-22 Max Filippov <jcmvbkbc@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR ld/25861
|
|
|
|
|
* elf/xtensa.h (elf_xtensa_reloc_type): New entries for
|
|
|
|
|
R_XTENSA_PDIFF{8,16,32} and R_XTENSA_NDIFF{8,16,32}.
|
|
|
|
|
|
2020-04-21 09:36:53 +08:00
|
|
|
|
2020-04-21 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* elf/sh.h (STO_SH5_ISA32, SHF_SH5_ISA32, SHF_SH5_ISA32_MIXED),
|
|
|
|
|
(SHT_SH5_CR_SORTED, STT_DATALABEL): Delete.
|
|
|
|
|
|
2020-04-15 21:25:08 +08:00
|
|
|
|
2020-04-10 Fangrui Song <maskray@google.com>
|
|
|
|
|
|
|
|
|
|
PR binutils/24613
|
|
|
|
|
* bfdlink.h (enum report_method): Delete RM_GENERATE_WARNING and
|
|
|
|
|
RM_GENERATE_ERROR. Add RM_DIAGNOSE.
|
|
|
|
|
(struct bfd_link_info): Add warn_unresolved_syms.
|
|
|
|
|
|
Fixes for the magic number used in PDP11 AOUT binaries.
PR ld/25677
include * aout/aout64.h (N_DATADDR): Add IMAGIC case.
bfd * pdp11.c: Add implementation of --imagic option.
(adjust_o_magic): Fix objcopy --extract-symbol test.
* libaout.h (enum aout_magic): Add i_magic.
ld * emulparams/pdp11.sh (SCRIPT_NAME): Change to pdp11.
(EXTRA_EM_FILE): New, add emulation file pdp11.
* scripttempl/pdp11.sc: New, derived from aout.sc without
irrelevant input sections.
* emultempl/pdp11.em (_add_options, _handle_option)
(_list_options): New. Add options -z, --imagic for pdp11-aout.
(_before_parse): Make --omagic be default instead of --nmagic.
(_get_script): Modify special-case linker script for --imagic.
* lexsup.c (parse_args): Explictly set config.text_read_only for -n.
* ld.texi (Options): Add documentation of PDP11-specific options.
(Options): Fix unrelated typo to --no-compact-branches.
* gen-doc.texi: @set PDP11.
* testsuite/ld-pdp11/pdp11.exp: New, start pdp11 testing.
* testsuite/ld-pdp11/sections.s: New, source for options tests.
* testsuite/ld-pdp11/imagic.d: New, test --imagic format.
* testsuite/ld-pdp11/imagicz.d: New, test -z (imagic) format.
* testsuite/ld-pdp11/nmagic.d: New, test --nmagic format.
* testsuite/ld-pdp11/omagic.d: New, test --omagic format.
2020-04-14 21:41:27 +08:00
|
|
|
|
2020-04-14 Stephen Casner <casner@acm.org>
|
|
|
|
|
|
|
|
|
|
PR ld/25677
|
|
|
|
|
* aout/aout64.h (N_DATADDR): Add IMAGIC case.
|
|
|
|
|
|
coff-go32-exe: support variable-length stubs
The stub size in GO32 executables has historically been fixed at 2048
bytes, due to hardcoded limitations in bfd. Recent patches to djgpp by
Stas Sergeev (CC'd) have pushed the stub right up to this limit, so if
any further expansion is desired, this must first be patched in bfd.
This series includes three patches: The first changes the meaning of
the bfd->origin field slightly, so that target code can use this to
specify an offset into the file where the actual bfd is located.
The second patch then uses this to enable support for variable-sized
stubs in the coff-go32-exe format.
The final patch is only a cleanup, it normalizes function and variable
names in coff-stgo32.c so that they all begin with the same prefix.
bfd * bfdio.c (bfd_bread, bfd_tell, bfd_seek, bfd_mmap): Always add
bfd->origin to file offset.
* bfdwin.c (bfd_get_file_window): Likewise.
* bfd.c: Clarify the use of the bfd->origin field.
* bfd-in2.h: Regenerate.
* coff-i386.c: Don't include go32exe.h. Allow overriding
coff_write_object_contents via COFF_WRITE_CONTENTS.
* coff-stgo32.c (go32exe_cleanup, go32exe_mkobject)
(go32exe_write_object_contents): New functions.
(go32exe_temp_stub, go32exe_temp_stub_size): New static globals.
(COFF_WRITE_CONTENTS, GO32EXE_DEFAULT_STUB_SIZE): Define.
(create_go32_stub): Remove check for 2k size limit. Read stub
from go32exe_temp_stub if present.
(go32_stubbed_coff_bfd_copy_private_bfd_data): Allocate and
copy variable-length stub.
(go32_check_format): Read stub to go32exe_temp_stub, set
origin, return go32exe_cleanup.
(adjust_filehdr_in_post, adjust_filehdr_out_pre)
(adjust_filehdr_out_post, adjust_scnhdr_in_post)
(adjust_scnhdr_out_pre, adjust_scnhdr_out_post)
(adjust_aux_in_post, adjust_aux_out_pre, adjust_aux_out_post):
Remove functions and their associated #defines.
* coffcode.h (coff_mkobject_hook): Remove stub copying code.
* libcoff-in.h: (struct coff_tdata): New field stub_size.
Rename field go32stub to stub.
* libcoff.h: Regenerate.
* coff-stgo32.c (go32_check_format): Rename to...
(go32exe_check_format): ...this.
(go32_stubbed_coff_bfd_copy_private_bfd_data): Rename to...
(go32exe_copy_private_bfd_data): ...this.
(stub_bytes): Rename to...
(go32exe_default_stub): ...this.
(create_go32_stub): Rename to...
(go32exe_create_stub): ...this.
* coff-stgo32.c (go32exe_copy_private_bfd_data): Avoid realloc
when possible.
include * coff/go32exe.h: Remove file.
* coff/internal.h (struct internal_filehdr): Remove field
go32stub. Remove flag F_GO32STUB.
2020-04-02 21:31:43 +08:00
|
|
|
|
2020-04-02 Jan W. Jagersma <jwjagersma@gmail.com>
|
|
|
|
|
|
|
|
|
|
* coff/go32exe.h: Remove file.
|
|
|
|
|
* coff/internal.h (struct internal_filehdr): Remove field
|
|
|
|
|
go32stub. Remove flag F_GO32STUB.
|
|
|
|
|
|
2020-04-01 17:36:11 +08:00
|
|
|
|
2020-04-01 Martin Liska <mliska@suse.cz>
|
|
|
|
|
Maciej W. Rozycki <macro@linux-mips.org>
|
|
|
|
|
|
|
|
|
|
PR lto/94249
|
|
|
|
|
* plugin-api.h: Fix a typo.
|
|
|
|
|
|
2020-03-12 17:48:39 +08:00
|
|
|
|
2020-03-30 Nelson Chu <nelson.chu@sifive.com>
|
|
|
|
|
|
|
|
|
|
* opcode/riscv-opc.h: Update CSR to 1.11.
|
|
|
|
|
|
2020-03-27 00:48:28 +08:00
|
|
|
|
2020-03-26 John Baldwin <jhb@FreeBSD.org>
|
|
|
|
|
|
|
|
|
|
* elf/common.h (AT_FREEBSD_BSDFLAGS): Define.
|
|
|
|
|
|
2020-03-24 18:40:10 +08:00
|
|
|
|
2020-03-24 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR lto/94249
|
|
|
|
|
* plugin-api.h: Add more robust endianess detection.
|
|
|
|
|
|
2020-03-21 15:09:02 +08:00
|
|
|
|
2020-03-21 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
* plugin-api.h (enum ld_plugin_symbol_type): Remove
|
|
|
|
|
comma after last value of an enum.
|
|
|
|
|
* lto-symtab.h (enum gcc_plugin_symbol_type): Likewise.
|
|
|
|
|
|
2020-03-19 23:55:59 +08:00
|
|
|
|
2020-03-19 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
* lto-symtab.h (enum gcc_plugin_symbol_type): New.
|
|
|
|
|
(enum gcc_plugin_symbol_section_kind): Likewise.
|
|
|
|
|
|
|
|
|
|
2020-03-19 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
* plugin-api.h (struct ld_plugin_symbol): Split
|
|
|
|
|
int def into 4 char fields.
|
|
|
|
|
(enum ld_plugin_symbol_type): New.
|
|
|
|
|
(enum ld_plugin_symbol_section_kind): New.
|
|
|
|
|
(enum ld_plugin_tag): Add LDPT_ADD_SYMBOLS_V2.
|
|
|
|
|
|
2020-03-14 06:37:10 +08:00
|
|
|
|
2020-03-13 Kamil Rytarowski <n54@gmx.com>
|
|
|
|
|
|
|
|
|
|
* elf/common.h (NT_NETBSDCORE_LWPSTATUS): New define.
|
|
|
|
|
|
|
|
|
|
2020-03-13 Kamil Rytarowski <n54@gmx.com>
|
2020-03-14 04:27:40 +08:00
|
|
|
|
|
|
|
|
|
* elf/common.h (NT_NETBSDCORE_AUXV): New define.
|
|
|
|
|
|
2019-11-25 16:55:37 +08:00
|
|
|
|
2020-03-13 Christophe Lyon <christophe.lyon@linaro.org>
|
|
|
|
|
|
|
|
|
|
* bfdlink.h (bfd_link_info): Add non_contiguous_regions and
|
|
|
|
|
non_contiguous_regions_warnings fields.
|
|
|
|
|
|
2020-03-03 04:17:00 +08:00
|
|
|
|
2020-03-13 Christian Eggers <ceggers@gmx.de>
|
|
|
|
|
|
|
|
|
|
* bfdlink.h (struct bfd_link_order): Add unit (bytes/octets) to
|
|
|
|
|
offset and size members.
|
|
|
|
|
* elf/internal.h (struct elf_internal_phdr): Likewise for
|
|
|
|
|
p_align member.
|
|
|
|
|
(struct elf_segment_map): Likewise for p_paddr and p_size
|
|
|
|
|
members
|
|
|
|
|
|
2020-03-03 04:11:00 +08:00
|
|
|
|
2020-03-13 Christian Eggers <ceggers@gmx.de>
|
|
|
|
|
|
|
|
|
|
* elf/internal.h (struct elf_internal_phdr): Add unit (octets)
|
|
|
|
|
to several member field comments.
|
|
|
|
|
(Elf_Internal_Shdr): likewise.
|
|
|
|
|
|
2020-03-10 15:22:01 +08:00
|
|
|
|
2020-03-10 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* som/aout.h (SOM_AUX_ID_MANDATORY, SOM_SPACE_IS_LOADABLE),
|
|
|
|
|
(SOM_SYMBOL_HIDDEN, SOM_SYMBOL_HAS_LONG_RETURN): Use 1u << 31.
|
|
|
|
|
* som/lst.h (LST_SYMBOL_HIDDEN): Likewise.
|
|
|
|
|
|
2020-03-03 21:13:53 +08:00
|
|
|
|
2020-03-03 Luis Machado <luis.machado@linaro.org>
|
|
|
|
|
|
|
|
|
|
* elf/common.h (AT_L1I_CACHESIZE, AT_L1I_CACHEGEOMETRY)
|
|
|
|
|
(AT_L1D_CACHESIZE, AT_L1D_CACHEGEOMETRY, AT_L2_CACHESIZE)
|
|
|
|
|
(AT_L2_CACHEGEOMETRY, AT_L3_CACHESIZE, AT_L3_CACHEGEOMETRY)
|
|
|
|
|
(AT_MINSIGSTKSZ): New defines, imported from glibc.
|
|
|
|
|
|
2020-02-20 03:01:51 +08:00
|
|
|
|
2020-02-25 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
Import from gcc mainline:
|
|
|
|
|
2020-02-05 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* hashtab.h (htab_remove_elt): Make a parameter const.
|
|
|
|
|
(htab_remove_elt_with_hash): Likewise.
|
|
|
|
|
|
RISC-V: Support the ISA-dependent CSR checking.
According to the riscv privilege spec, some CSR are only valid when rv32 or
the specific extension is set. We extend the DECLARE_CSR and DECLARE_CSR_ALIAS
to record more informaton we need, and then check whether the CSR is valid
according to these information. We report warning message when the CSR is
invalid, so we have a choice between error and warning by --fatal-warnings
option. Also, a --no-warn/-W option is used to turn the warnings off, if
people don't want the warnings.
gas/
* config/tc-riscv.c (enum riscv_csr_class): New enum. Used to decide
whether or not this CSR is legal in the current ISA string.
(struct riscv_csr_extra): New structure to hold all extra information
of CSR.
(riscv_init_csr_hash): New function. According to the DECLARE_CSR and
DECLARE_CSR_ALIAS, insert CSR extra information into csr_extra_hash.
Call hash_reg_name to insert CSR address into reg_names_hash.
(md_begin): Call riscv_init_csr_hashes for each DECLARE_CSR.
(reg_csr_lookup_internal, riscv_csr_class_check): New functions.
Decide whether the CSR is valid according to the csr_extra_hash.
(init_opcode_hash): Update 'if (hash_error != NULL)' as hash_error is
not a boolean. This is same as riscv_init_csr_hash, so keep the
consistent usage.
* testsuite/gas/riscv/csr-dw-regnums.d: Add -march=rv32if option.
* testsuite/gas/riscv/priv-reg.d: Add f-ext by -march option.
* testsuite/gas/riscv/priv-reg-fail-fext.d: New testcase. The source
file is `priv-reg.s`, and the ISA is rv32i without f-ext, so the
f-ext CSR are not allowed.
* testsuite/gas/riscv/priv-reg-fail-fext.l: Likewise.
* testsuite/gas/riscv/priv-reg-fail-rv32-only.d: New testcase. The
source file is `priv-reg.s`, and the ISA is rv64if, so the
rv32-only CSR are not allowed.
* testsuite/gas/riscv/priv-reg-fail-rv32-only.l: Likewise.
include/
* opcode/riscv-opc.h: Extend DECLARE_CSR and DECLARE_CSR_ALIAS to
record riscv_csr_class.
opcodes/
* riscv-dis.c (print_insn_args): Updated since the DECLARE_CSR is changed.
gdb/
* riscv-tdep.c: Updated since the DECLARE_CSR is changed.
* riscv-tdep.h: Likewise.
* features/riscv/rebuild-csr-xml.sh: Generate the 64bit-csr.xml without
rv32-only CSR.
* features/riscv/64bit-csr.xml: Regernated.
binutils/
* dwarf.c: Updated since the DECLARE_CSR is changed.
2020-02-12 18:18:49 +08:00
|
|
|
|
2020-02-20 Nelson Chu <nelson.chu@sifive.com>
|
|
|
|
|
|
|
|
|
|
* opcode/riscv-opc.h: Extend DECLARE_CSR and DECLARE_CSR_ALIAS to
|
|
|
|
|
record riscv_csr_class.
|
|
|
|
|
|
[binutils][arm] arm support for ARMv8.m Custom Datapath Extension
This patch is part of a series that adds support for the Armv8.m
ARMv8.m Custom Datapath Extension to binutils.
This patch introduces the Custom Instructions Class 1/2/3 (Single/
Dual, Accumulator/Non-accumulator varianats) to the arm backend.
The following Custom Instructions are added: cx1, cx1a,
cx1d, cx1da, cx2, cx2a, cx2d, cx2da, cx3, cx3a, cx3d, cx3da.
Specification can be found at
https://developer.arm.com/docs/ddi0607/latest
This patch distinguishes between enabling CDE for different coprocessor
numbers by defining multiple architecture flags. This means that the
parsing of the architecture extension flags is kept entirely in the
existing code path.
We introduce a new IT block state to indicate the behaviour of these
instructions. This new state allows being used in an IT block or
outside an IT block, but does not allow the instruction to be used
inside a VPT block.
We need this since the CX*A instruction versions can be used in IT
blocks, but they aren't to have the conditional suffixes on them. Hence
we need to mark an instruction as allowed in either position.
We also need a new flag to objdump, in order to determine whether to
disassemble an instruction as CDE related or not.
Successfully regression tested on arm-none-eabi, and arm-wince-pe.
gas/ChangeLog:
2020-02-10 Stam Markianos-Wright <stam.markianos-wright@arm.com>
Matthew Malcomson <matthew.malcomson@arm.com>
* config/tc-arm.c (arm_ext_cde*): New feature sets for each
CDE coprocessor that can be enabled.
(enum pred_instruction_type): New pred type.
(BAD_NO_VPT): New error message.
(BAD_CDE): New error message.
(BAD_CDE_COPROC): New error message.
(enum operand_parse_code): Add new immediate operands.
(parse_operands): Account for new immediate operands.
(check_cde_operand): New.
(cde_coproc_enabled): New.
(cde_coproc_pos): New.
(cde_handle_coproc): New.
(cxn_handle_predication): New.
(do_custom_instruction_1): New.
(do_custom_instruction_2): New.
(do_custom_instruction_3): New.
(do_cx1): New.
(do_cx1a): New.
(do_cx1d): New.
(do_cx1da): New.
(do_cx2): New.
(do_cx2a): New.
(do_cx2d): New.
(do_cx2da): New.
(do_cx3): New.
(do_cx3a): New.
(do_cx3d): New.
(do_cx3da): New.
(handle_pred_state): Define new IT block behaviour.
(insns): Add newn CX*{,d}{,a} instructions.
(CDE_EXTENSIONS,armv8m_main_ext_table,armv8_1m_main_ext_table):
Define new cdecp extension strings.
* doc/c-arm.texi: Document new cdecp extension arguments.
* testsuite/gas/arm/cde-scalar.d: New test.
* testsuite/gas/arm/cde-scalar.s: New test.
* testsuite/gas/arm/cde-warnings.d: New test.
* testsuite/gas/arm/cde-warnings.l: New test.
* testsuite/gas/arm/cde-warnings.s: New test.
* testsuite/gas/arm/cde.d: New test.
* testsuite/gas/arm/cde.s: New test.
include/ChangeLog:
2020-02-10 Stam Markianos-Wright <stam.markianos-wright@arm.com>
Matthew Malcomson <matthew.malcomson@arm.com>
* opcode/arm.h (ARM_EXT2_CDE): New extension macro.
(ARM_EXT2_CDE0): New extension macro.
(ARM_EXT2_CDE1): New extension macro.
(ARM_EXT2_CDE2): New extension macro.
(ARM_EXT2_CDE3): New extension macro.
(ARM_EXT2_CDE4): New extension macro.
(ARM_EXT2_CDE5): New extension macro.
(ARM_EXT2_CDE6): New extension macro.
(ARM_EXT2_CDE7): New extension macro.
opcodes/ChangeLog:
2020-02-10 Stam Markianos-Wright <stam.markianos-wright@arm.com>
Matthew Malcomson <matthew.malcomson@arm.com>
* arm-dis.c (struct cdeopcode32): New.
(CDE_OPCODE): New macro.
(cde_opcodes): New disassembly table.
(regnames): New option to table.
(cde_coprocs): New global variable.
(print_insn_cde): New
(print_insn_thumb32): Use print_insn_cde.
(parse_arm_disassembler_options): Parse coprocN args.
2020-02-11 00:38:00 +08:00
|
|
|
|
2020-02-10 Stam Markianos-Wright <stam.markianos-wright@arm.com>
|
|
|
|
|
Matthew Malcomson <matthew.malcomson@arm.com>
|
|
|
|
|
|
|
|
|
|
* opcode/arm.h (ARM_EXT2_CDE): New extension macro.
|
|
|
|
|
(ARM_EXT2_CDE0): New extension macro.
|
|
|
|
|
(ARM_EXT2_CDE1): New extension macro.
|
|
|
|
|
(ARM_EXT2_CDE2): New extension macro.
|
|
|
|
|
(ARM_EXT2_CDE3): New extension macro.
|
|
|
|
|
(ARM_EXT2_CDE4): New extension macro.
|
|
|
|
|
(ARM_EXT2_CDE5): New extension macro.
|
|
|
|
|
(ARM_EXT2_CDE6): New extension macro.
|
|
|
|
|
(ARM_EXT2_CDE7): New extension macro.
|
|
|
|
|
|
2020-02-07 22:53:46 +08:00
|
|
|
|
2020-02-07 Sergey Belyashov <sergey.belyashov@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR 25469
|
|
|
|
|
* coff/internal.h (R_IMM16BE): Define.
|
|
|
|
|
* elf/z80.h (EF_Z80_MACH_Z80N): Define.
|
|
|
|
|
(R_Z80_16_BE): New reloc.
|
|
|
|
|
|
2020-02-04 06:00:22 +08:00
|
|
|
|
2020-02-04 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* opcode/d30v.h (struct pd_reg): Make value field unsigned.
|
|
|
|
|
|
2020-01-16 02:50:31 +08:00
|
|
|
|
2020-01-16 Jon Turney <jon.turney@dronecode.org.uk>
|
|
|
|
|
|
|
|
|
|
* coff/internal.h (PE_IMAGE_DEBUG_TYPE_VC_FEATURE)
|
|
|
|
|
(PE_IMAGE_DEBUG_TYPE_POGO, PE_IMAGE_DEBUG_TYPE_ILTCG)
|
|
|
|
|
(PE_IMAGE_DEBUG_TYPE_MPX, PE_IMAGE_DEBUG_TYPE_REPRO): Add.
|
|
|
|
|
|
2020-01-18 21:50:25 +08:00
|
|
|
|
2020-01-18 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
Binutils 2.34 branch created.
|
|
|
|
|
|
Update libiberty sources with changes in the gcc mainline.
+2020-01-01 Jakub Jelinek <jakub@redhat.com>
+
+ Update copyright years.
+
+2019-12-06 Tim Ruehsen <tim.ruehsen@gmx.de>
+
+ * make-relative-prefix.c (split_directories):
+ Return early on empty 'name'
+
+2019-11-16 Tim Ruehsen <tim.ruehsen@gmx.de>
+
+ * cp-demangle.c (d_print_init): Remove const from 4th param.
+ (cplus_demangle_fill_name): Initialize d->d_counting.
+ (cplus_demangle_fill_extended_operator): Likewise.
+ (cplus_demangle_fill_ctor): Likewise.
+ (cplus_demangle_fill_dtor): Likewise.
+ (d_make_empty): Likewise.
+ (d_count_templates_scopes): Remobe const from 3rd param,
+ Return on dc->d_counting > 1,
+ Increment dc->d_counting.
+ * cp-demint.c (cplus_demangle_fill_component): Initialize d->d_counting.
+ (cplus_demangle_fill_builtin_type): Likewise.
+ (cplus_demangle_fill_operator): Likewise.
+
+2019-11-16 Eduard-Mihai Burtescu <eddyb@lyken.rs>
+
+ * cplus-dem.c (cplus_demangle): Use rust_demangle directly.
+ (rust_demangle): Remove.
+ * rust-demangle.c (is_prefixed_hash): Rename to is_legacy_prefixed_hash.
+ (parse_lower_hex_nibble): Rename to decode_lower_hex_nibble.
+ (parse_legacy_escape): Rename to decode_legacy_escape.
+ (rust_is_mangled): Remove.
+ (struct rust_demangler): Add.
+ (peek): Add.
+ (next): Add.
+ (struct rust_mangled_ident): Add.
+ (parse_ident): Add.
+ (rust_demangle_sym): Remove.
+ (print_str): Add.
+ (PRINT): Add.
+ (print_ident): Add.
+ (rust_demangle_callback): Add.
+ (struct str_buf): Add.
+ (str_buf_reserve): Add.
+ (str_buf_append): Add.
+ (str_buf_demangle_callback): Add.
+ (rust_demangle): Add.
+ * rust-demangle.h: Remove.
+
+2019-11-15 Miguel Saldivar <saldivarcher@gmail.com>
+
+ * testsuite/demangle-expected: Fix test.
+
+2019-11-04 Kamlesh Kumar <kamleshbhalui@gmail.com>
+
+ * cp-demangle.c (d_expr_primary): Handle
+ nullptr demangling.
+ * testsuite/demangle-expected: Added test.
+
+2019-10-29 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ * cp-demangle.c (d_number): Avoid signed int overflow.
+
+2019-10-28 Miguel Saldivar <saldivarcher@gmail.com>
+
+ * cp-demangle.c (d_print_mod): Add a space before printing `complex`
+ and `imaginary`, as opposed to after.
+ * testsuite/demangle-expected: Adjust test.
+
+2019-10-03 Eduard-Mihai Burtescu <eddyb@lyken.rs>
+
+ * rust-demangle.c (looks_like_rust): Remove.
+ (rust_is_mangled): Don't check escapes.
+ (is_prefixed_hash): Allow 0-9a-f permutations.
+ (rust_demangle_sym): Don't bail on unknown escapes.
+ * testsuite/rust-demangle-expected: Update 'main::$99$' test.
+
+2019-09-03 Eduard-Mihai Burtescu <eddyb@lyken.rs>
+
+ * rust-demangle.c (unescape): Remove.
+ (parse_lower_hex_nibble): New function.
+ (parse_legacy_escape): New function.
+ (is_prefixed_hash): Use parse_lower_hex_nibble.
+ (looks_like_rust): Use parse_legacy_escape.
+ (rust_demangle_sym): Use parse_legacy_escape.
+ * testsuite/rust-demangle-expected: Add 'llv$u6d$' test.
+
+2019-08-27 Martin Liska <mliska@suse.cz>
+
+ PR lto/91478
+ * simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):
+ First find a WEAK HIDDEN symbol in symbol table that will be
+ preserved. Later, use the symbol name for all removed symbols.
+
+2019-08-12 Martin Liska <mliska@suse.cz>
+
+ * Makefile.in: Add filedescriptor.c.
+ * filedescriptor.c: New file.
+ * lrealpath.c (is_valid_fd): Remove.
diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
index 0be45b4ae8..fe738d0db4 100644
--- a/libiberty/Makefile.in
+++ b/libiberty/Makefile.in
@@ -1,7 +1,7 @@
# Makefile for the libiberty library.
# Originally written by K. Richard Pixley <rich@cygnus.com>.
#
-# Copyright (C) 1990-2019 Free Software Foundation, Inc.
+# Copyright (C) 1990-2020 Free Software Foundation, Inc.
#
# This file is part of the libiberty library.
# Libiberty is free software; you can redistribute it and/or
@@ -127,7 +127,7 @@ CFILES = alloca.c argv.c asprintf.c atexit.c \
calloc.c choose-temp.c clock.c concat.c cp-demangle.c \
cp-demint.c cplus-dem.c crc32.c \
d-demangle.c dwarfnames.c dyn-string.c \
- fdmatch.c ffs.c fibheap.c filename_cmp.c floatformat.c \
+ fdmatch.c ffs.c fibheap.c filedescriptor.c filename_cmp.c floatformat.c \
fnmatch.c fopen_unlocked.c \
getcwd.c getopt.c getopt1.c getpagesize.c getpwd.c getruntime.c \
gettimeofday.c \
@@ -171,6 +171,7 @@ REQUIRED_OFILES = \
./cp-demint.$(objext) ./crc32.$(objext) ./d-demangle.$(objext) \
./dwarfnames.$(objext) ./dyn-string.$(objext) \
./fdmatch.$(objext) ./fibheap.$(objext) \
+ ./filedescriptor.$(objext) \
./filename_cmp.$(objext) ./floatformat.$(objext) \
./fnmatch.$(objext) ./fopen_unlocked.$(objext) \
./getopt.$(objext) ./getopt1.$(objext) ./getpwd.$(objext) \
@@ -756,6 +757,17 @@ $(CONFIGURED_OFILES): stamp-picdir stamp-noasandir
else true; fi
$(COMPILE.c) $(srcdir)/fibheap.c $(OUTPUT_OPTION)
+./filedescriptor.$(objext): $(srcdir)/filedescriptor.c config.h $(INCDIR)/ansidecl.h \
+ $(INCDIR)/libiberty.h
+ if [ x"$(PICFLAG)" != x ]; then \
+ $(COMPILE.c) $(PICFLAG) $(srcdir)/filedescriptor.c -o pic/$@; \
+ else true; fi
+ if [ x"$(NOASANFLAG)" != x ]; then \
+ $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/filedescriptor.c -o noasan/$@; \
+ else true; fi
+ $(COMPILE.c) $(srcdir)/filedescriptor.c $(OUTPUT_OPTION)
+
+
./filename_cmp.$(objext): $(srcdir)/filename_cmp.c config.h $(INCDIR)/ansidecl.h \
$(INCDIR)/filenames.h $(INCDIR)/hashtab.h \
$(INCDIR)/safe-ctype.h
diff --git a/libiberty/_doprnt.c b/libiberty/_doprnt.c
index d44dc415ed..a739f4304f 100644
--- a/libiberty/_doprnt.c
+++ b/libiberty/_doprnt.c
@@ -1,5 +1,5 @@
/* Provide a version of _doprnt in terms of fprintf.
- Copyright (C) 1998-2019 Free Software Foundation, Inc.
+ Copyright (C) 1998-2020 Free Software Foundation, Inc.
Contributed by Kaveh Ghazi (ghazi@caip.rutgers.edu) 3/29/98
This program is free software; you can redistribute it and/or modify it
diff --git a/libiberty/argv.c b/libiberty/argv.c
index 6444896f99..8c9794db6a 100644
--- a/libiberty/argv.c
+++ b/libiberty/argv.c
@@ -1,5 +1,5 @@
/* Create and destroy argument vectors (argv's)
- Copyright (C) 1992-2019 Free Software Foundation, Inc.
+ Copyright (C) 1992-2020 Free Software Foundation, Inc.
Written by Fred Fish @ Cygnus Support
This file is part of the libiberty library.
diff --git a/libiberty/asprintf.c b/libiberty/asprintf.c
index 5718682f69..6e38e2234d 100644
--- a/libiberty/asprintf.c
+++ b/libiberty/asprintf.c
@@ -1,6 +1,6 @@
/* Like sprintf but provides a pointer to malloc'd storage, which must
be freed by the caller.
- Copyright (C) 1997-2019 Free Software Foundation, Inc.
+ Copyright (C) 1997-2020 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of the libiberty library.
diff --git a/libiberty/choose-temp.c b/libiberty/choose-temp.c
index 72c1b710bd..49a2faaa51 100644
--- a/libiberty/choose-temp.c
+++ b/libiberty/choose-temp.c
@@ -1,5 +1,5 @@
/* Utility to pick a temporary filename prefix.
- Copyright (C) 1996-2019 Free Software Foundation, Inc.
+ Copyright (C) 1996-2020 Free Software Foundation, Inc.
This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or
diff --git a/libiberty/clock.c b/libiberty/clock.c
index a3730714bd..0de74657d0 100644
--- a/libiberty/clock.c
+++ b/libiberty/clock.c
@@ -1,5 +1,5 @@
/* ANSI-compatible clock function.
- Copyright (C) 1994-2019 Free Software Foundation, Inc.
+ Copyright (C) 1994-2020 Free Software Foundation, Inc.
This file is part of the libiberty library. This library is free
software; you can redistribute it and/or modify it under the
diff --git
2020-01-17 22:13:22 +08:00
|
|
|
|
2020-01-17 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* Import from gcc mainline:
|
|
|
|
|
2019-06-10 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
* ansidecl.h (ATTRIBUTE_WARN_UNUSED_RESULT): New macro.
|
|
|
|
|
* libiberty.h (xmalloc): Use it.
|
|
|
|
|
(xrealloc): Likewise.
|
|
|
|
|
(xcalloc): Likewise.
|
|
|
|
|
(xstrdup): Likewise.
|
|
|
|
|
(xstrndup): Likewise.
|
|
|
|
|
(xmemdup): Likewise.
|
|
|
|
|
|
|
|
|
|
2019-06-10 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
* ansidecl.h:
|
|
|
|
|
(ATTRIBUTE_RESULT_SIZE_1): Define new macro.
|
|
|
|
|
(ATTRIBUTE_RESULT_SIZE_2): Likewise.
|
|
|
|
|
(ATTRIBUTE_RESULT_SIZE_1_2): Likewise.
|
|
|
|
|
* libiberty.h (xmalloc): Add RESULT_SIZE attribute.
|
|
|
|
|
(xrealloc): Likewise.
|
|
|
|
|
(xcalloc): Likewise.
|
|
|
|
|
|
|
|
|
|
2019-11-16 Tim Ruehsen <tim.ruehsen@gmx.de>
|
|
|
|
|
|
|
|
|
|
* demangle.h (struct demangle_component): Add member
|
|
|
|
|
d_counting.
|
|
|
|
|
|
|
|
|
|
2019-11-16 Eduard-Mihai Burtescu <eddyb@lyken.rs>
|
|
|
|
|
|
|
|
|
|
* demangle.h (rust_demangle_callback): Add.
|
|
|
|
|
|
|
|
|
|
2019-07-18 Eduard-Mihai Burtescu <eddyb@lyken.rs>
|
|
|
|
|
|
|
|
|
|
* demangle.h (rust_is_mangled): Move to libiberty/rust-demangle.h.
|
|
|
|
|
(rust_demangle_sym): Move to libiberty/rust-demangle.h.
|
|
|
|
|
|
2020-01-16 21:50:52 +08:00
|
|
|
|
2020-01-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
|
|
|
|
|
|
|
|
|
|
PR 25376
|
|
|
|
|
* opcodes/arm.h (FPU_MVE, FPU_MVE_FPU): Move these features to...
|
|
|
|
|
(ARM_EXT2_MVE, ARM_EXT2_MVE_FP): ... the CORE_HIGH space.
|
|
|
|
|
(ARM_ANY): Redefine to not include any MVE bits.
|
|
|
|
|
(ARM_FEATURE_ALL): Removed.
|
|
|
|
|
|
2020-01-15 21:17:27 +08:00
|
|
|
|
2020-01-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
|
|
|
|
|
|
|
|
|
|
* opcode/msp430.h (enum msp430_expp_e): New.
|
|
|
|
|
(struct msp430_operand_s): Add expp member to struct.
|
|
|
|
|
|
2020-01-13 17:16:47 +08:00
|
|
|
|
2020-01-13 Claudiu Zissulescu <claziss@gmail.com>
|
|
|
|
|
|
|
|
|
|
* elf/arc-cpu.def: Update ARC cpu list.
|
|
|
|
|
|
2020-01-12 17:46:22 +08:00
|
|
|
|
2020-01-13 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* opcode/tic4x.h (EXTR): Delete.
|
|
|
|
|
(EXTRU, EXTRS, INSERTU, INSERTS): Rewrite without zero/sign
|
|
|
|
|
extension using shifts. Do trim INSERTU value to specified bitfield.
|
|
|
|
|
|
2020-01-09 04:14:16 +08:00
|
|
|
|
2020-01-10 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* opcode/spu.h: Formatting.
|
|
|
|
|
(UNSIGNED_EXTRACT): Use 1u.
|
|
|
|
|
(SIGNED_EXTRACT): Don't sign extend with shifts.
|
|
|
|
|
(DECODE_INSN_I9a, DECODE_INSN_I9b): Avoid left shift of signed value.
|
|
|
|
|
Keep result signed.
|
|
|
|
|
(DECODE_INSN_U9a, DECODE_INSN_U9b): Delete.
|
|
|
|
|
|
2020-01-07 21:25:15 +08:00
|
|
|
|
2020-01-07 Shahab Vahedi <shahab@synopsys.com>
|
|
|
|
|
|
|
|
|
|
* opcode/arc.h (insn_class_t): Add 'LLOCK' and 'SCOND'.
|
|
|
|
|
|
2020-01-02 22:10:40 +08:00
|
|
|
|
2020-01-02 Sergey Belyashov <sergey.belyashov@gmail.com>
|
|
|
|
|
|
|
|
|
|
* coff/internal.h: Add defintions of Z80 reloc names.
|
|
|
|
|
|
2020-01-02 20:04:40 +08:00
|
|
|
|
2020-01-02 Christian Biesinger <cbiesinger@google.com>
|
|
|
|
|
|
|
|
|
|
* opcode/s12z.h: Undef REG_Y.
|
|
|
|
|
|
2020-01-01 16:22:19 +08:00
|
|
|
|
2020-01-01 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
Update year range in copyright notice of all files.
|
|
|
|
|
|
2020-01-01 15:37:11 +08:00
|
|
|
|
For older changes see ChangeLog-2019
|
2016-01-01 18:44:31 +08:00
|
|
|
|
|
2020-01-01 15:37:11 +08:00
|
|
|
|
Copyright (C) 2020 Free Software Foundation, Inc.
|
2016-01-01 18:44:31 +08:00
|
|
|
|
|
|
|
|
|
Copying and distribution of this file, with or without modification,
|
|
|
|
|
are permitted in any medium without royalty provided the copyright
|
|
|
|
|
notice and this notice are preserved.
|
|
|
|
|
|
|
|
|
|
Local Variables:
|
|
|
|
|
mode: change-log
|
|
|
|
|
left-margin: 8
|
|
|
|
|
fill-column: 74
|
|
|
|
|
version-control: never
|
|
|
|
|
End:
|