Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
To: gdb-patches@sourceware.org
Cc: binutils@sourceware.org
Subject: [PATCH] Handle missing Solaris auxv entries
Date: Wed, 19 Sep 2018 11:49:00 -0000	[thread overview]
Message-ID: <ydd5zz1k8q4.fsf@CeBiTec.Uni-Bielefeld.DE> (raw)

[-- Attachment #1: Type: text/plain, Size: 2826 bytes --]

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.  Ok for master?

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


2018-06-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	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.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: sol2-auxv-missing.patch --]
[-- Type: text/x-patch, Size: 2908 bytes --]

# HG changeset patch
# Parent  7005944ef9bca8a972c826ef139fadd28c57d6a7
Handle missing Solaris auxv entries

diff --git a/gdb/auxv.c b/gdb/auxv.c
--- a/gdb/auxv.c
+++ b/gdb/auxv.c
@@ -495,7 +495,7 @@ default_print_auxv_entry (struct gdbarch
 	   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);
@@ -509,6 +509,17 @@ default_print_auxv_entry (struct gdbarch
 	   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/elf/common.h b/include/elf/common.h
--- a/include/elf/common.h
+++ b/include/elf/common.h
@@ -1164,9 +1164,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.  */
@@ -1175,6 +1175,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 */

             reply	other threads:[~2018-09-19 11:49 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-19 11:49 Rainer Orth [this message]
2018-09-19 14:59 ` Nick Clifton
2018-09-19 19:52 ` Tom Tromey
2018-09-20  8:26   ` Rainer Orth

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ydd5zz1k8q4.fsf@CeBiTec.Uni-Bielefeld.DE \
    --to=ro@cebitec.uni-bielefeld.de \
    --cc=binutils@sourceware.org \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox