diff options
author | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2018-09-20 10:23:46 +0200 |
---|---|---|
committer | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2018-09-20 10:23:46 +0200 |
commit | 3d282ac37064ec0105d3aa3f379f7fb8af98759c (patch) | |
tree | a8610dea4bf9f680343604c6a0e326da53a9226c | |
parent | 8c93fae61550ee343ad15e98a6636c56bcb0dc9d (diff) | |
download | binutils-gdb-3d282ac37064ec0105d3aa3f379f7fb8af98759c.tar.gz |
Handle missing Solaris auxv entries
Currently, three tests FAIL on Solaris 11.4+ (amd64-pc-solaris2.11 and
sparcv9-sun-solaris2.11):
info auxv
[...]
2009 AT_SUN_HWCAP Machine-dependent CPU capability hints 0x3f5ff7
2023 ??? 0x0
0 AT_NULL End of vector 0x0
(gdb) WARNING: Unrecognized tag value: 2023 ??? 0x0
FAIL: gdb.base/auxv.exp: info auxv on live process
info auxv
4294969310 ??? 0x7fffbfffe410
9225589753816 ??? 0x7fffbfffe45c
[...]
WARNING: Unrecognized tag value: 4294969310 ??? 0x7fffbfffe410
WARNING: Unrecognized tag value: 9225589753816 ??? 0x7fffbfffe45c
WARNING: Unrecognized tag value: 140733193388037 ??? 0x6
[...]
2009 AT_SUN_HWCAP Machine-dependent CPU capability hints 0x3f5ff7
2023 ??? 0x0
0 AT_NULL End of vector 0x0
(gdb) WARNING: Unrecognized tag value: 2023 ??? 0x0
UNRESOLVED: gdb.base/auxv.exp: info auxv on native core dump
info auxv
[...]
2009 AT_SUN_HWCAP Machine-dependent CPU capability hints 0x3f5ff7
2023 ??? 0x0
0 AT_NULL End of vector 0x0
(gdb) WARNING: Unrecognized tag value: 2023 ??? 0x0
FAIL: gdb.base/auxv.exp: info auxv on gcore-created dump
The following patch fixes this by introducing the missing AT_SUN_*
values from Solaris 11.4+ <sys/auxv.h>. This lets the live and
gcore-created dump tests PASS.
I don't know yet what's the reason for those weird 'Unrecognized tag
value' warnings with native core dumps is; elfdump -n certainly doesn't
show them. However, native core dumps still need quite some work
(mostly in bfd) in this and other areas.
Tested on amd64-pc-solaris2.11.
gdb:
* auxv.c (default_print_auxv_entry): Reflect AT_SUN_CAP_HW1
renaming.
Handle AT_SUN_EMULATOR, AT_SUN_BRANDNAME, AT_SUN_BRAND_AUX1,
AT_SUN_BRAND_AUX2, AT_SUN_BRAND_AUX3, AT_SUN_CAP_HW2.
include:
* elf/common.h (AT_SUN_HWCAP): Rename to ...
(AT_SUN_CAP_HW1): ... this. Retain old name for backward
compatibility.
(AT_SUN_EMULATOR, AT_SUN_BRANDNAME, AT_SUN_BRAND_AUX1)
(AT_SUN_BRAND_AUX2, AT_SUN_BRAND_AUX3, AT_SUN_CAP_HW2): Define.
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/auxv.c | 13 | ||||
-rw-r--r-- | include/ChangeLog | 8 | ||||
-rw-r--r-- | include/elf/common.h | 12 |
4 files changed, 36 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index bd019f0573f..d0f3fe3cbd4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,12 @@ 2018-09-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + * auxv.c (default_print_auxv_entry): Reflect AT_SUN_CAP_HW1 + renaming. + Handle AT_SUN_EMULATOR, AT_SUN_BRANDNAME, AT_SUN_BRAND_AUX1, + AT_SUN_BRAND_AUX2, AT_SUN_BRAND_AUX3, AT_SUN_CAP_HW2. + +2018-09-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + * i386-v4-nat.c (regmap, supply_gregset, fill_gregset) (supply_fpregset, fill_fpregset): Move ... * i386-sol2-nat.c [PR_MODEL_NATIVE != PR_MODEL_LP64]: ... here. diff --git a/gdb/auxv.c b/gdb/auxv.c index 13bf9c390aa..2148b529b18 100644 --- a/gdb/auxv.c +++ b/gdb/auxv.c @@ -493,7 +493,7 @@ default_print_auxv_entry (struct gdbarch *gdbarch, struct ui_file *file, AUXV_FORMAT_STR); TAG (AT_SUN_LPAGESZ, _("Large pagesize"), AUXV_FORMAT_DEC); TAG (AT_SUN_PLATFORM, _("Platform name string"), AUXV_FORMAT_STR); - TAG (AT_SUN_HWCAP, _("Machine-dependent CPU capability hints"), + TAG (AT_SUN_CAP_HW1, _("Machine-dependent CPU capability hints"), AUXV_FORMAT_HEX); TAG (AT_SUN_IFLUSH, _("Should flush icache?"), AUXV_FORMAT_DEC); TAG (AT_SUN_CPU, _("CPU name string"), AUXV_FORMAT_STR); @@ -507,6 +507,17 @@ default_print_auxv_entry (struct gdbarch *gdbarch, struct ui_file *file, AUXV_FORMAT_HEX); TAG (AT_SUN_AUXFLAGS, _("AF_SUN_ flags passed from the kernel"), AUXV_FORMAT_HEX); + TAG (AT_SUN_EMULATOR, _("Name of emulation binary for runtime linker"), + AUXV_FORMAT_STR); + TAG (AT_SUN_BRANDNAME, _("Name of brand library"), AUXV_FORMAT_STR); + TAG (AT_SUN_BRAND_AUX1, _("Aux vector for brand modules 1"), + AUXV_FORMAT_HEX); + TAG (AT_SUN_BRAND_AUX2, _("Aux vector for brand modules 2"), + AUXV_FORMAT_HEX); + TAG (AT_SUN_BRAND_AUX3, _("Aux vector for brand modules 3"), + AUXV_FORMAT_HEX); + TAG (AT_SUN_CAP_HW2, _("Machine-dependent CPU capability hints 2"), + AUXV_FORMAT_HEX); } fprint_auxv_entry (file, name, description, format, type, val); diff --git a/include/ChangeLog b/include/ChangeLog index c23c7437386..e277c7c7755 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,11 @@ +2018-09-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * elf/common.h (AT_SUN_HWCAP): Rename to ... + (AT_SUN_CAP_HW1): ... this. Retain old name for backward + compatibility. + (AT_SUN_EMULATOR, AT_SUN_BRANDNAME, AT_SUN_BRAND_AUX1) + (AT_SUN_BRAND_AUX2, AT_SUN_BRAND_AUX3, AT_SUN_CAP_HW2): Define. + 2018-09-05 Simon Marchi <simon.marchi@ericsson.com> * diagnostics.h (DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL): New macro. diff --git a/include/elf/common.h b/include/elf/common.h index 961d022a1b8..e1942743056 100644 --- a/include/elf/common.h +++ b/include/elf/common.h @@ -1236,9 +1236,9 @@ #define AT_SUN_LDNAME 2006 /* String giving name of dynamic linker. */ #define AT_SUN_LPAGESZ 2007 /* Large pagesize. */ #define AT_SUN_PLATFORM 2008 /* Platform name string. */ -#undef AT_SUN_HWCAP -#define AT_SUN_HWCAP 2009 /* Machine dependent hints about +#define AT_SUN_CAP_HW1 2009 /* Machine dependent hints about processor capabilities. */ +#define AT_SUN_HWCAP AT_SUN_CAP_HW1 /* For backward compat only. */ #define AT_SUN_IFLUSH 2010 /* Should flush icache? */ #define AT_SUN_CPU 2011 /* CPU name string. */ #define AT_SUN_EMUL_ENTRY 2012 /* COFF entry point address. */ @@ -1247,6 +1247,12 @@ #define AT_SUN_MMU 2015 /* String for name of MMU module. */ #define AT_SUN_LDDATA 2016 /* Dynamic linker's data segment address. */ #define AT_SUN_AUXFLAGS 2017 /* AF_SUN_ flags passed from the kernel. */ - +#define AT_SUN_EMULATOR 2018 /* Name of emulation binary for runtime + linker. */ +#define AT_SUN_BRANDNAME 2019 /* Name of brand library. */ +#define AT_SUN_BRAND_AUX1 2020 /* Aux vectors for brand modules. */ +#define AT_SUN_BRAND_AUX2 2021 +#define AT_SUN_BRAND_AUX3 2022 +#define AT_SUN_CAP_HW2 2023 /* Extension of AT_SUN_CAP_HW1. */ #endif /* _ELF_COMMON_H */ |