From bc93e287d0e7a100c1aba869398b5341839c1927 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 4 Sep 2003 12:47:46 +0200 Subject: [PATCH] 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 --- gcc/ChangeLog | 10 ++++++++++ gcc/config/ia64/libgcc-ia64.ver | 3 +++ gcc/config/ia64/unwind-ia64.c | 8 ++++++++ gcc/libgcc-std.ver | 6 +++++- gcc/mkmap-symver.awk | 16 +++++++++++----- gcc/unwind.h | 3 +++ 6 files changed, 40 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2b90b2a0a5b7..2874e3514b57 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2003-09-04 Jakub Jelinek + + * 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 * 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 2ffb69368640..cd769907df0c 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 9b6023da58af..41f59d10b9d6 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 12a339719151..1caebc54cfa5 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 e4bc58e18807..7953afcff806 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 a0d6ab3a14b0..35c765ef4ac3 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 *); -- 2.43.5