diff options
author | Vivek Das Mohapatra <vivek@collabora.com> | 2020-12-14 17:25:53 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2020-12-15 18:45:09 +1030 |
commit | a5da3dee21c1c2f52c1e9f5c0e5ed82fce5bb429 (patch) | |
tree | 8bbfb8c504334ae66bc93a8330ec41ad505444e2 /binutils | |
parent | c3805e4cef747655e15f620afe6279a96d8c3fae (diff) | |
download | binutils-a5da3dee21c1c2f52c1e9f5c0e5ed82fce5bb429.zip binutils-a5da3dee21c1c2f52c1e9f5c0e5ed82fce5bb429.tar.gz binutils-a5da3dee21c1c2f52c1e9f5c0e5ed82fce5bb429.tar.bz2 |
Handle DT_GNU_FLAGS_1 in readelf
* readelf.c (get_dynamic_type): Handle DT_GNU_FLAGS_1.
(process_dynamic_section): Likewise.
Diffstat (limited to 'binutils')
-rw-r--r-- | binutils/ChangeLog | 5 | ||||
-rw-r--r-- | binutils/readelf.c | 23 |
2 files changed, 28 insertions, 0 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 6f0ed5e..885b470 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,8 @@ +2020-12-15 Vivek Das Mohapatra <vivek@collabora.com> + + * readelf.c (get_dynamic_type): Handle DT_GNU_FLAGS_1. + (process_dynamic_section): Likewise. + 2020-12-11 Cary Coutant <ccoutant@gmail.com> * readelf.c (get_machine_name): Update list of e_machine values. diff --git a/binutils/readelf.c b/binutils/readelf.c index ed252f9..22354ba 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -2232,6 +2232,7 @@ get_dynamic_type (Filedata * filedata, unsigned long type) case DT_GNU_LIBLIST: return "GNU_LIBLIST"; case DT_GNU_LIBLISTSZ: return "GNU_LIBLISTSZ"; case DT_GNU_HASH: return "GNU_HASH"; + case DT_GNU_FLAGS_1: return "GNU_FLAGS_1"; default: if ((type >= DT_LOPROC) && (type <= DT_HIPROC)) @@ -11082,6 +11083,28 @@ the .dynstr section doesn't match the DT_STRTAB and DT_STRSZ tags\n")); } break; + case DT_GNU_FLAGS_1: + if (do_dynamic) + { + printf (_("Flags:")); + if (entry->d_un.d_val == 0) + printf (_(" None\n")); + else + { + unsigned long int val = entry->d_un.d_val; + + if (val & DF_GNU_1_UNIQUE) + { + printf (" UNIQUE"); + val ^= DF_GNU_1_UNIQUE; + } + if (val != 0) + printf (" %lx", val); + puts (""); + } + } + break; + default: if ((entry->d_tag >= DT_VERSYM) && (entry->d_tag <= DT_VERNEEDNUM)) filedata->version_info[DT_VERSIONTAGIDX (entry->d_tag)] |