This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Handle missing Solaris auxv entries


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=3d282ac37064ec0105d3aa3f379f7fb8af98759c

commit 3d282ac37064ec0105d3aa3f379f7fb8af98759c
Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Date:   Thu Sep 20 10:23:46 2018 +0200

    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.

Diff:
---
 gdb/ChangeLog        |  7 +++++++
 gdb/auxv.c           | 13 ++++++++++++-
 include/ChangeLog    |  8 ++++++++
 include/elf/common.h | 12 +++++++++---
 4 files changed, 36 insertions(+), 4 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index bd019f0..d0f3fe3 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 13bf9c3..2148b52 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 c23c743..e277c7c 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 961d022..e194274 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 */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]