diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2b0ed4e4c82..efed569f605 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,19 @@ +2016-10-04 Jakub Jelinek + + * defaults.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Remove. + * system.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Poison. + * doc/tm.texi.in (TARGET_USE_JCR_SECTION): Remove. + * doc/tm.texi: Regenerated. + * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Remove. + * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Remove. + * config/darwin.h (JCR_SECTION_NAME): Remove. + * config/pa/pa64-hpux.h (JCR_SECTION_NAME): Remove. + * config/rs6000/aix71.h (TARGET_USE_JCR_SECTION): Remove. + * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Remove. + * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Remove. + * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Remove. + * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Remove. + 2016-10-03 Prathamesh Kulkarni * ipa-cp.c (propagate_bits_accross_jump_function): Introduce space diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 6c2f3cf5655..d39e036c1a9 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,8 @@ +2016-10-04 Jakub Jelinek + + * c-cppbuiltin.c (c_cpp_builtins): Don't define + __LIBGCC_JCR_SECTION_NAME__. + 2016-10-03 Bernd Edlinger * c-common.c (c_common_truthvalue_conversion): Warn for suspicious diff --git a/gcc/c-family/c-cppbuiltin.c b/gcc/c-family/c-cppbuiltin.c index b860c21e3e6..97eda67e93b 100644 --- a/gcc/c-family/c-cppbuiltin.c +++ b/gcc/c-family/c-cppbuiltin.c @@ -1213,10 +1213,6 @@ c_cpp_builtins (cpp_reader *pfile) builtin_define_with_value ("__LIBGCC_EH_FRAME_SECTION_NAME__", EH_FRAME_SECTION_NAME, 1); #endif -#ifdef JCR_SECTION_NAME - builtin_define_with_value ("__LIBGCC_JCR_SECTION_NAME__", - JCR_SECTION_NAME, 1); -#endif #ifdef CTORS_SECTION_ASM_OP builtin_define_with_value ("__LIBGCC_CTORS_SECTION_ASM_OP__", CTORS_SECTION_ASM_OP, 1); diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h index 3782eb34047..b16fec89cdf 100644 --- a/gcc/config/darwin.h +++ b/gcc/config/darwin.h @@ -825,9 +825,6 @@ enum machopic_addr_class { #define EH_FRAME_SECTION_NAME "__TEXT" #define EH_FRAME_SECTION_ATTR ",coalesced,no_toc+strip_static_syms+live_support" -/* Java runtime class list. */ -#define JCR_SECTION_NAME "__DATA,jcr,regular,no_dead_strip" - #undef ASM_PREFERRED_EH_DATA_FORMAT #define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) \ (((CODE) == 2 && (GLOBAL) == 1) \ diff --git a/gcc/config/i386/cygming.h b/gcc/config/i386/cygming.h index 1d9675eaf93..10d68361eb1 100644 --- a/gcc/config/i386/cygming.h +++ b/gcc/config/i386/cygming.h @@ -443,11 +443,6 @@ do { \ #endif /* HAVE_GAS_WEAK */ -/* FIXME: SUPPORTS_WEAK && TARGET_HAVE_NAMED_SECTIONS is true, - but for .jcr section to work we also need crtbegin and crtend - objects. */ -#define TARGET_USE_JCR_SECTION 1 - /* Decide whether it is safe to use a local alias for a virtual function when constructing thunks. */ #undef TARGET_USE_LOCAL_THUNK_ALIAS_P diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h index 0407efe7df3..ac4aa0d728b 100644 --- a/gcc/config/i386/mingw32.h +++ b/gcc/config/i386/mingw32.h @@ -239,9 +239,6 @@ do { \ #undef TARGET_N_FORMAT_TYPES #define TARGET_N_FORMAT_TYPES 3 -/* Let defaults.h definition of TARGET_USE_JCR_SECTION apply. */ -#undef TARGET_USE_JCR_SECTION - #define HAVE_ENABLE_EXECUTE_STACK #undef CHECK_EXECUTE_STACK_ENABLED #define CHECK_EXECUTE_STACK_ENABLED flag_setstackexecutable diff --git a/gcc/config/pa/pa64-hpux.h b/gcc/config/pa/pa64-hpux.h index 279406a01fb..88ec4909ee9 100644 --- a/gcc/config/pa/pa64-hpux.h +++ b/gcc/config/pa/pa64-hpux.h @@ -170,8 +170,6 @@ along with GCC; see the file COPYING3. If not see #define DATA_SECTION_ASM_OP "\t.data" #define BSS_SECTION_ASM_OP "\t.section\t.bss" -#define JCR_SECTION_NAME ".jcr" - #define HP_INIT_ARRAY_SECTION_ASM_OP "\t.section\t.init" #define GNU_INIT_ARRAY_SECTION_ASM_OP "\t.section\t.init_array" #define HP_FINI_ARRAY_SECTION_ASM_OP "\t.section\t.fini" @@ -382,8 +380,8 @@ do { \ initializers specified here. */ /* We need to add frame_dummy to the initializer list if EH_FRAME_SECTION_NAME - or JCR_SECTION_NAME is defined. */ -#if defined(EH_FRAME_SECTION_NAME) || defined(JCR_SECTION_NAME) + is defined. */ +#if defined(EH_FRAME_SECTION_NAME) #define PA_INIT_FRAME_DUMMY_ASM_OP ".dword P%frame_dummy" #else #define PA_INIT_FRAME_DUMMY_ASM_OP "" diff --git a/gcc/config/rs6000/aix51.h b/gcc/config/rs6000/aix51.h index e1d4ee72b77..3218712cd54 100644 --- a/gcc/config/rs6000/aix51.h +++ b/gcc/config/rs6000/aix51.h @@ -163,8 +163,6 @@ do { \ /* This target defines SUPPORTS_WEAK and TARGET_ASM_NAMED_SECTION, but does not have crtbegin/end. */ -#define TARGET_USE_JCR_SECTION 0 - #define TARGET_AIX_VERSION 51 #undef TARGET_LIBC_HAS_FUNCTION diff --git a/gcc/config/rs6000/aix52.h b/gcc/config/rs6000/aix52.h index f1893c70b0d..0e25ff26b4f 100644 --- a/gcc/config/rs6000/aix52.h +++ b/gcc/config/rs6000/aix52.h @@ -176,6 +176,4 @@ extern long long int atoll(const char *); /* This target defines SUPPORTS_WEAK and TARGET_ASM_NAMED_SECTION, but does not have crtbegin/end. */ -#define TARGET_USE_JCR_SECTION 0 - #define TARGET_AIX_VERSION 52 diff --git a/gcc/config/rs6000/aix53.h b/gcc/config/rs6000/aix53.h index 50e77e79051..8ca58823c4c 100644 --- a/gcc/config/rs6000/aix53.h +++ b/gcc/config/rs6000/aix53.h @@ -177,6 +177,4 @@ extern long long int atoll(const char *); /* This target defines SUPPORTS_WEAK and TARGET_ASM_NAMED_SECTION, but does not have crtbegin/end. */ -#define TARGET_USE_JCR_SECTION 0 - #define TARGET_AIX_VERSION 53 diff --git a/gcc/config/rs6000/aix61.h b/gcc/config/rs6000/aix61.h index 0c9e7f0829b..cddb5b79147 100644 --- a/gcc/config/rs6000/aix61.h +++ b/gcc/config/rs6000/aix61.h @@ -210,6 +210,4 @@ extern long long int atoll(const char *); /* This target defines SUPPORTS_WEAK and TARGET_ASM_NAMED_SECTION, but does not have crtbegin/end. */ -#define TARGET_USE_JCR_SECTION 0 - #define TARGET_AIX_VERSION 61 diff --git a/gcc/config/rs6000/aix71.h b/gcc/config/rs6000/aix71.h index a0f5b3cf2bc..4d097fb824b 100644 --- a/gcc/config/rs6000/aix71.h +++ b/gcc/config/rs6000/aix71.h @@ -210,8 +210,6 @@ extern long long int atoll(const char *); /* This target defines SUPPORTS_WEAK and TARGET_ASM_NAMED_SECTION, but does not have crtbegin/end. */ -#define TARGET_USE_JCR_SECTION 0 - #define TARGET_AIX_VERSION 71 /* AIX 7.1 supports DWARF3 debugging, but XCOFF remains the default. */ diff --git a/gcc/defaults.h b/gcc/defaults.h index c62c844cbeb..1bbcf0eb5b8 100644 --- a/gcc/defaults.h +++ b/gcc/defaults.h @@ -392,27 +392,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #define MASK_RETURN_ADDR NULL_RTX #endif -/* If we have named section and we support weak symbols, then use the - .jcr section for recording java classes which need to be registered - at program start-up time. */ -#if defined (TARGET_ASM_NAMED_SECTION) && SUPPORTS_WEAK -#ifndef JCR_SECTION_NAME -#define JCR_SECTION_NAME ".jcr" -#endif -#endif - -/* This decision to use a .jcr section can be overridden by defining - USE_JCR_SECTION to 0 in target file. This is necessary if target - can define JCR_SECTION_NAME but does not have crtstuff or - linker support for .jcr section. */ -#ifndef TARGET_USE_JCR_SECTION -#ifdef JCR_SECTION_NAME -#define TARGET_USE_JCR_SECTION 1 -#else -#define TARGET_USE_JCR_SECTION 0 -#endif -#endif - /* Number of hardware registers that go into the DWARF-2 unwind info. If not defined, equals FIRST_PSEUDO_REGISTER */ diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 8a98ba43a67..634f701d6e3 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -11598,12 +11598,6 @@ conversion rules. This is currently used only by the C and C++ front ends. @end deftypefn -@defmac TARGET_USE_JCR_SECTION -This macro determines whether to use the JCR section to register Java -classes. By default, TARGET_USE_JCR_SECTION is defined to 1 if both -SUPPORTS_WEAK and TARGET_HAVE_NAMED_SECTIONS are true, else 0. -@end defmac - @defmac OBJC_JBLEN This macro determines the size of the objective C jump buffer for the NeXT runtime. By default, OBJC_JBLEN is defined to an innocuous value. diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in index f1cfc863f30..7b6fa873c5b 100644 --- a/gcc/doc/tm.texi.in +++ b/gcc/doc/tm.texi.in @@ -8186,12 +8186,6 @@ and scanf formatter settings. @hook TARGET_CONVERT_TO_TYPE -@defmac TARGET_USE_JCR_SECTION -This macro determines whether to use the JCR section to register Java -classes. By default, TARGET_USE_JCR_SECTION is defined to 1 if both -SUPPORTS_WEAK and TARGET_HAVE_NAMED_SECTIONS are true, else 0. -@end defmac - @defmac OBJC_JBLEN This macro determines the size of the objective C jump buffer for the NeXT runtime. By default, OBJC_JBLEN is defined to an innocuous value. diff --git a/gcc/system.h b/gcc/system.h index cc353f555ae..8c6127c97a9 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -987,7 +987,8 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN; CALLER_SAVE_PROFITABLE LARGEST_EXPONENT_IS_NORMAL \ ROUND_TOWARDS_ZERO SF_SIZE DF_SIZE XF_SIZE TF_SIZE LIBGCC2_TF_CEXT \ LIBGCC2_LONG_DOUBLE_TYPE_SIZE STRUCT_VALUE \ - EH_FRAME_IN_DATA_SECTION TARGET_FLT_EVAL_METHOD_NON_DEFAULT + EH_FRAME_IN_DATA_SECTION TARGET_FLT_EVAL_METHOD_NON_DEFAULT \ + JCR_SECTION_NAME TARGET_USE_JCR_SECTION /* Hooks that are no longer used. */ #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \ diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index f876b9b16d3..2baca35456a 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,17 @@ +2016-10-04 Jakub Jelinek + + * config/i386/cygming-crtbegin.c (_Jv_RegisterClasses): Remove. + (__JCR_LIST__): Remove. + (__gcc_register_frame): Don't attempt to _Jv_RegisterClasses. + * config/i386/cygming-crtend.c (__JCR_END__): Remove. + * config/ia64/crtbegin.S (__JCR_LIST__): Remove. + * config/ia64/crtend.S (__JCR_END__): Remove. + * crtstuff.c: Remove __LIBGCC_JCR_SECTION_NAME__ from preprocessor + conditionals. + (__JCR_LIST__, __JCR_END__): Remove. + (frame_dummy): Don't attempt to _Jv_RegisterClasses. + (__do_global_ctors_1): Likewise. + 2015-09-28 Uros Bizjak * config/i386/cpuinfo.c (__get_cpuid_output): Remove. diff --git a/libgcc/config/i386/cygming-crtbegin.c b/libgcc/config/i386/cygming-crtbegin.c index e4a6672294a..be8344d6f9b 100644 --- a/libgcc/config/i386/cygming-crtbegin.c +++ b/libgcc/config/i386/cygming-crtbegin.c @@ -73,18 +73,6 @@ __deregister_frame_info (__attribute__((unused)) const void *p) #endif #endif /* DWARF2_UNWIND_INFO */ -#if TARGET_USE_JCR_SECTION -extern void _Jv_RegisterClasses (__attribute__((unused)) const void *) - TARGET_ATTRIBUTE_WEAK; - -#ifdef __x86_64__ -TARGET_ATTRIBUTE_WEAK void -_Jv_RegisterClasses (__attribute__((unused)) const void *p) -{ -} -#endif -#endif /* TARGET_USE_JCR_SECTION */ - #if defined(HAVE_LD_RO_RW_SECTION_MIXING) # define EH_FRAME_SECTION_CONST const #else @@ -105,12 +93,6 @@ HANDLE hmod_libgcc; static void * (*deregister_frame_fn) (const void *) = NULL; #endif -#if TARGET_USE_JCR_SECTION -static void *__JCR_LIST__[] - __attribute__ ((used, section(__LIBGCC_JCR_SECTION_NAME__), aligned(4))) - = { }; -#endif - #ifdef __CYGWIN__ /* Declare the __dso_handle variable. It should have a unique value in every shared-object; in a main program its value is zero. The @@ -163,22 +145,6 @@ __gcc_register_frame (void) register_frame_fn (__EH_FRAME_BEGIN__, &obj); #endif -#if TARGET_USE_JCR_SECTION - if (__JCR_LIST__[0]) - { - void (*register_class_fn) (const void *); - HANDLE h = GetModuleHandle (LIBGCJ_SONAME); - if (h) - register_class_fn = (void (*) (const void *)) - GetProcAddress (h, "_Jv_RegisterClasses"); - else - register_class_fn = _Jv_RegisterClasses; - - if (register_class_fn) - register_class_fn (__JCR_LIST__); - } -#endif - #if DEFAULT_USE_CXA_ATEXIT /* If we use the __cxa_atexit method to register C++ dtors at object construction, also use atexit to register eh frame diff --git a/libgcc/config/i386/cygming-crtend.c b/libgcc/config/i386/cygming-crtend.c index fdf6a0e9452..9bd0e10a1c7 100644 --- a/libgcc/config/i386/cygming-crtend.c +++ b/libgcc/config/i386/cygming-crtend.c @@ -53,14 +53,6 @@ static EH_FRAME_SECTION_CONST int __FRAME_END__[] = { 0 }; #endif -#if TARGET_USE_JCR_SECTION -/* Null terminate the .jcr section array. */ -static void *__JCR_END__[1] - __attribute__ ((used, section(__LIBGCC_JCR_SECTION_NAME__), - aligned(sizeof(void *)))) - = { 0 }; -#endif - extern void __gcc_register_frame (void); extern void __gcc_deregister_frame (void); diff --git a/libgcc/config/ia64/crtbegin.S b/libgcc/config/ia64/crtbegin.S index a8d738b9592..3bf0e71a3ac 100644 --- a/libgcc/config/ia64/crtbegin.S +++ b/libgcc/config/ia64/crtbegin.S @@ -34,10 +34,6 @@ __CTOR_LIST__: __DTOR_LIST__: data8 -1 -.section .jcr,"aw","progbits" - .align 8 -__JCR_LIST__: - .section .sdata .type dtor_ptr,@object .size dtor_ptr,8 diff --git a/libgcc/config/ia64/crtend.S b/libgcc/config/ia64/crtend.S index 7434930040a..69cc5d77881 100644 --- a/libgcc/config/ia64/crtend.S +++ b/libgcc/config/ia64/crtend.S @@ -34,11 +34,6 @@ __CTOR_END__: __DTOR_END__: data8 0 -.section .jcr,"aw","progbits" - .align 8 -__JCR_END__: - data8 0 - #if HAVE_INITFINI_ARRAY_SUPPORT .global __do_global_ctors_aux .hidden __do_global_ctors_aux diff --git a/libgcc/crtstuff.c b/libgcc/crtstuff.c index f3343fc4fd8..5449c4dbdb6 100644 --- a/libgcc/crtstuff.c +++ b/libgcc/crtstuff.c @@ -266,15 +266,6 @@ STATIC EH_FRAME_SECTION_CONST char __EH_FRAME_BEGIN__[] = { }; #endif /* USE_EH_FRAME_REGISTRY */ -#ifdef __LIBGCC_JCR_SECTION_NAME__ -/* Stick a label at the beginning of the java class registration info - so we can register them properly. */ -STATIC void *__JCR_LIST__[] - __attribute__ ((used, section(__LIBGCC_JCR_SECTION_NAME__), - aligned(sizeof(void*)))) - = { }; -#endif /* __LIBGCC_JCR_SECTION_NAME__ */ - #if USE_TM_CLONE_REGISTRY STATIC func_ptr __TMC_LIST__[] __attribute__((used, section(".tm_clone_table"), aligned(sizeof(void*)))) @@ -449,7 +440,6 @@ CRT_CALL_STATIC_FUNCTION (__LIBGCC_INIT_SECTION_ASM_OP__, #endif #if defined(USE_EH_FRAME_REGISTRY) \ - || defined(__LIBGCC_JCR_SECTION_NAME__) \ || defined(USE_TM_CLONE_REGISTRY) /* Stick a call to __register_frame_info into the .init section. For some reason calls with no arguments work more reliably in .init, so stick the @@ -472,18 +462,6 @@ frame_dummy (void) #endif /* CRT_GET_RFIB_DATA */ #endif /* USE_EH_FRAME_REGISTRY */ -#ifdef __LIBGCC_JCR_SECTION_NAME__ - void **jcr_list; - __asm ("" : "=g" (jcr_list) : "0" (__JCR_LIST__)); - if (__builtin_expect (*jcr_list != NULL, 0)) - { - void (*register_classes) (void *) = _Jv_RegisterClasses; - __asm ("" : "+r" (register_classes)); - if (register_classes) - register_classes (jcr_list); - } -#endif /* __LIBGCC_JCR_SECTION_NAME__ */ - #if USE_TM_CLONE_REGISTRY register_tm_clones (); #endif /* USE_TM_CLONE_REGISTRY */ @@ -496,7 +474,7 @@ static func_ptr __frame_dummy_init_array_entry[] __attribute__ ((__used__, section(".init_array"), aligned(sizeof(func_ptr)))) = { frame_dummy }; #endif /* !defined(__LIBGCC_INIT_SECTION_ASM_OP__) */ -#endif /* USE_EH_FRAME_REGISTRY || __LIBGCC_JCR_SECTION_NAME__ || USE_TM_CLONE_REGISTRY */ +#endif /* USE_EH_FRAME_REGISTRY || USE_TM_CLONE_REGISTRY */ #else /* OBJECT_FORMAT_ELF */ @@ -564,7 +542,6 @@ __do_global_dtors (void) } #if defined(USE_EH_FRAME_REGISTRY) \ - || defined(__LIBGCC_JCR_SECTION_NAME__) \ || defined(USE_TM_CLONE_REGISTRY) /* A helper function for __do_global_ctors, which is in crtend.o. Here in crtbegin.o, we can reference a couple of symbols not visible there. @@ -579,23 +556,11 @@ __do_global_ctors_1(void) __register_frame_info (__EH_FRAME_BEGIN__, &object); #endif -#ifdef __LIBGCC_JCR_SECTION_NAME__ - void **jcr_list; - __asm ("" : "=g" (jcr_list) : "0" (__JCR_LIST__)); - if (__builtin_expect (*jcr_list != NULL, 0)) - { - void (*register_classes) (void *) = _Jv_RegisterClasses; - __asm ("" : "+r" (register_classes)); - if (register_classes) - register_classes (jcr_list); - } -#endif - #if USE_TM_CLONE_REGISTRY register_tm_clones (); #endif /* USE_TM_CLONE_REGISTRY */ } -#endif /* USE_EH_FRAME_REGISTRY || __LIBGCC_JCR_SECTION_NAME__ || USE_TM_CLONE_REGISTRY */ +#endif /* USE_EH_FRAME_REGISTRY || USE_TM_CLONE_REGISTRY */ #else /* ! __LIBGCC_INIT_SECTION_ASM_OP__ && ! HAS_INIT_SECTION */ #error "What are you doing with crtstuff.c, then?" @@ -671,14 +636,6 @@ STATIC EH_FRAME_SECTION_CONST int32 __FRAME_END__[] = { 0 }; #endif /* __LIBGCC_EH_FRAME_SECTION_NAME__ */ -#ifdef __LIBGCC_JCR_SECTION_NAME__ -/* Null terminate the .jcr section array. */ -STATIC void *__JCR_END__[1] - __attribute__ ((used, section(__LIBGCC_JCR_SECTION_NAME__), - aligned(sizeof(void *)))) - = { 0 }; -#endif /* __LIBGCC_JCR_SECTION_NAME__ */ - #if USE_TM_CLONE_REGISTRY # ifndef HAVE_GAS_HIDDEN static @@ -757,7 +714,6 @@ __do_global_ctors (void) { func_ptr *p; #if defined(USE_EH_FRAME_REGISTRY) \ - || defined(__LIBGCC_JCR_SECTION_NAME__) \ || defined(USE_TM_CLONE_REGISTRY) __do_global_ctors_1(); #endif