diff options
Diffstat (limited to 'gcc/ada/gcc-interface')
-rw-r--r-- | gcc/ada/gcc-interface/Makefile.in | 12 | ||||
-rw-r--r-- | gcc/ada/gcc-interface/decl.c | 18 |
2 files changed, 12 insertions, 18 deletions
diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in index 9991405e3cc..5c4acda5388 100644 --- a/gcc/ada/gcc-interface/Makefile.in +++ b/gcc/ada/gcc-interface/Makefile.in @@ -1083,6 +1083,8 @@ ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(arch) $(osys))),) TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb + EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o + EH_MECHANISM=-gcc THREADSLIB = -lposix4 -lthread MISCLIB = -lposix4 -lnsl -lsocket @@ -1175,6 +1177,8 @@ ifeq ($(strip $(filter-out %86 kfreebsd%,$(arch) $(osys))),) mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ indepsw.adb<indepsw-gnu.adb + EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o + EH_MECHANISM=-gcc THREADSLIB = -lpthread GNATLIB_SHARED = gnatlib-shared-dual @@ -1231,6 +1235,8 @@ ifeq ($(strip $(filter-out %86 freebsd%,$(arch) $(osys))),) mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb GNATLIB_SHARED = gnatlib-shared-dual + EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o + EH_MECHANISM=-gcc THREADSLIB= -lpthread GMEM_LIB = gmemlib @@ -1259,6 +1265,8 @@ ifeq ($(strip $(filter-out %86_64 freebsd%,$(arch) $(osys))),) mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb GNATLIB_SHARED = gnatlib-shared-dual + EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o + EH_MECHANISM=-gcc THREADSLIB= -lpthread GMEM_LIB = gmemlib @@ -2160,6 +2168,8 @@ ifeq ($(strip $(filter-out darwin%,$(osys))),) $(X86_TARGET_PAIRS) \ system.ads<system-darwin-x86.ads endif + + EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o endif ifeq ($(strip $(filter-out %x86_64,$(arch))),) @@ -2178,6 +2188,8 @@ ifeq ($(strip $(filter-out darwin%,$(osys))),) $(X86_64_TARGET_PAIRS) \ system.ads<system-darwin-x86_64.ads endif + + EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o endif ifeq ($(strip $(filter-out powerpc%,$(arch))),) diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c index b925f422a21..dac9942237f 100644 --- a/gcc/ada/gcc-interface/decl.c +++ b/gcc/ada/gcc-interface/decl.c @@ -81,9 +81,6 @@ #define FOREIGN_FORCE_REALIGN_STACK 0 #endif -/* The (internal) name of the System.Secondary_Stack.SS_Mark function. */ -#define SS_MARK_NAME "system__secondary_stack__ss_mark" - struct incomplete { struct incomplete *next; @@ -4409,21 +4406,6 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition) get_identifier ("force_align_arg_pointer"), NULL_TREE, gnat_entity); - /* ??? Declare System.Secondary_Stack.SS_Mark as leaf, in order to - avoid creating abnormal edges in SJLJ mode, which can break the - dominance relationship if there is a dynamic stack allocation. - We cannot do this in System.Secondary_Stack directly since it's - a compiler unit and this would introduce bootstrap path issues. */ - if (IDENTIFIER_LENGTH (gnu_entity_name) == strlen (SS_MARK_NAME) - && IDENTIFIER_POINTER (gnu_entity_name)[0] == SS_MARK_NAME[0] - && IDENTIFIER_POINTER (gnu_entity_name)[1] == SS_MARK_NAME[1] - && IDENTIFIER_POINTER (gnu_entity_name)[2] == SS_MARK_NAME[2] - && gnu_entity_name == get_identifier (SS_MARK_NAME)) - prepend_one_attribute_to - (&attr_list, ATTR_MACHINE_ATTRIBUTE, - get_identifier ("leaf"), NULL_TREE, - gnat_entity); - /* The lists have been built in reverse. */ gnu_param_list = nreverse (gnu_param_list); if (has_stub) |