aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2003-09-04 12:47:46 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2003-09-04 12:47:46 +0200
commitbc93e287d0e7a100c1aba869398b5341839c1927 (patch)
treefbca5c641e0562d683b20ddb9cb242c318a76e78
parentec24a740308c01129bd934831787db53fbde8bc1 (diff)
downloadgcc-bc93e287d0e7a100c1aba869398b5341839c1927.zip
gcc-bc93e287d0e7a100c1aba869398b5341839c1927.tar.gz
gcc-bc93e287d0e7a100c1aba869398b5341839c1927.tar.bz2
libgcc-ia64.ver: Export _Unwind_GetBSP@@GCC_3.3.2.
* config/ia64/libgcc-ia64.ver: Export _Unwind_GetBSP@@GCC_3.3.2. * config/ia64/unwind-ia64.c (_Unwind_GetBSP): New function. * unwind.h (_Unwind_GetBSP): New prototype. * libgcc-std.ver: Add empty GCC_3.3.2 version. * mkmap-symver.awk: For symbol versions with no exported symbols, don't put anything into version script, just change all symbol versions which inherit from it to inherit from its ancestor. From-SVN: r71057
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/config/ia64/libgcc-ia64.ver3
-rw-r--r--gcc/config/ia64/unwind-ia64.c8
-rw-r--r--gcc/libgcc-std.ver6
-rw-r--r--gcc/mkmap-symver.awk16
-rw-r--r--gcc/unwind.h3
6 files changed, 40 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2b90b2a..2874e35 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2003-09-04 Jakub Jelinek <jakub@redhat.com>
+
+ * config/ia64/libgcc-ia64.ver: Export _Unwind_GetBSP@@GCC_3.3.2.
+ * config/ia64/unwind-ia64.c (_Unwind_GetBSP): New function.
+ * unwind.h (_Unwind_GetBSP): New prototype.
+ * libgcc-std.ver: Add empty GCC_3.3.2 version.
+ * mkmap-symver.awk: For symbol versions with no exported symbols,
+ don't put anything into version script, just change all symbol
+ versions which inherit from it to inherit from its ancestor.
+
2003-09-04 Eric Christopher <echristo@redhat.com>
* config/mips/mips.c (mips_expand_prologue): Convert to
diff --git a/gcc/config/ia64/libgcc-ia64.ver b/gcc/config/ia64/libgcc-ia64.ver
index 2ffb693..cd76990 100644
--- a/gcc/config/ia64/libgcc-ia64.ver
+++ b/gcc/config/ia64/libgcc-ia64.ver
@@ -7,3 +7,6 @@ GCC_3.0 {
__ia64_trampoline
__ia64_backtrace
}
+GCC_3.3.2 {
+ _Unwind_GetBSP
+}
diff --git a/gcc/config/ia64/unwind-ia64.c b/gcc/config/ia64/unwind-ia64.c
index 9b6023d..41f59d1 100644
--- a/gcc/config/ia64/unwind-ia64.c
+++ b/gcc/config/ia64/unwind-ia64.c
@@ -1667,6 +1667,14 @@ _Unwind_GetCFA (struct _Unwind_Context *context)
return (_Unwind_Ptr) context->psp;
}
+/* Get the value of the Backing Store Pointer as saved in CONTEXT. */
+
+_Unwind_Word
+_Unwind_GetBSP (struct _Unwind_Context *context)
+{
+ return (_Unwind_Ptr) context->bsp;
+}
+
static _Unwind_Reason_Code
uw_frame_state_for (struct _Unwind_Context *context, _Unwind_FrameState *fs)
diff --git a/gcc/libgcc-std.ver b/gcc/libgcc-std.ver
index 12a3397..1caebc5 100644
--- a/gcc/libgcc-std.ver
+++ b/gcc/libgcc-std.ver
@@ -191,7 +191,11 @@ GCC_3.3.1 {
__gcc_personality_v0
}
-%inherit GCC_3.4 GCC_3.3.1
+%inherit GCC_3.3.2 GCC_3.3.1
+GCC_3.3.2 {
+}
+
+%inherit GCC_3.4 GCC_3.3.2
GCC_3.4 {
# bit scanning and counting built-ins
__clzsi2
diff --git a/gcc/mkmap-symver.awk b/gcc/mkmap-symver.awk
index e4bc58e..7953afc 100644
--- a/gcc/mkmap-symver.awk
+++ b/gcc/mkmap-symver.awk
@@ -95,22 +95,28 @@ function output(lib) {
if (inherit[lib])
output(inherit[lib]);
- printf("%s {\n", lib);
- sawglobal = 0;
+ empty=1
for (sym in ver)
if ((ver[sym] == lib) && (sym in def))
{
- if (!sawglobal)
+ if (empty)
{
+ printf("%s {\n", lib);
printf(" global:\n");
- sawglobal = 1;
+ empty = 0;
}
printf("\t%s;\n", sym);
if (dotsyms)
printf("\t.%s;\n", sym);
}
- if (inherit[lib])
+ if (empty)
+ {
+ for (l in libs)
+ if (inherit[l] == lib)
+ inherit[l] = inherit[lib];
+ }
+ else if (inherit[lib])
printf("} %s;\n", inherit[lib]);
else
printf ("\n local:\n\t*;\n};\n");
diff --git a/gcc/unwind.h b/gcc/unwind.h
index a0d6ab3..35c765e 100644
--- a/gcc/unwind.h
+++ b/gcc/unwind.h
@@ -210,6 +210,9 @@ _Unwind_GetTextRelBase (struct _Unwind_Context *_C __attribute__ ((__unused__)))
abort ();
return 0;
}
+
+/* @@@ Retrieve the Backing Store Pointer of the given context. */
+extern _Unwind_Word _Unwind_GetBSP (struct _Unwind_Context *);
#else
extern _Unwind_Ptr _Unwind_GetDataRelBase (struct _Unwind_Context *);
extern _Unwind_Ptr _Unwind_GetTextRelBase (struct _Unwind_Context *);