On Mon, Oct 03, 2016 at 03:26:10PM +0000, Joseph Myers wrote: > As usual when removing target macros they should be poisoned in system.h.
Here is the patch with that poisoning. Bootstrapped/regtested on x86_64-linux and i686-linux again, ok for trunk? 2016-10-03 Jakub Jelinek <ja...@redhat.com> gcc/ * 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. gcc/c-family/ * c-cppbuiltin.c (c_cpp_builtins): Don't define __LIBGCC_JCR_SECTION_NAME__. libgcc/ * 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. --- gcc/config/i386/mingw32.h.jj 2016-05-20 09:05:08.836063467 +0200 +++ gcc/config/i386/mingw32.h 2016-10-01 18:55:14.646199686 +0200 @@ -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 --- gcc/config/i386/cygming.h.jj 2016-09-27 09:46:13.000000000 +0200 +++ gcc/config/i386/cygming.h 2016-10-01 18:56:16.133441952 +0200 @@ -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 --- gcc/config/darwin.h.jj 2016-09-15 13:39:14.518013115 +0200 +++ gcc/config/darwin.h 2016-10-01 18:55:40.056886539 +0200 @@ -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) \ --- gcc/config/pa/pa64-hpux.h.jj 2016-04-08 19:19:23.894042211 +0200 +++ gcc/config/pa/pa64-hpux.h 2016-10-01 18:55:35.171946738 +0200 @@ -170,8 +170,6 @@ along with GCC; see the file COPYING3. #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 "" --- gcc/config/rs6000/aix71.h.jj 2016-01-21 21:28:01.218834652 +0100 +++ gcc/config/rs6000/aix71.h 2016-10-01 18:55:49.667768100 +0200 @@ -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. */ --- gcc/config/rs6000/aix51.h.jj 2016-06-20 10:30:35.629607920 +0200 +++ gcc/config/rs6000/aix51.h 2016-10-01 18:55:51.659743552 +0200 @@ -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 --- gcc/config/rs6000/aix52.h.jj 2016-01-04 14:55:57.081414429 +0100 +++ gcc/config/rs6000/aix52.h 2016-10-01 18:55:43.356845872 +0200 @@ -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 --- gcc/config/rs6000/aix53.h.jj 2016-01-04 14:55:57.280411661 +0100 +++ gcc/config/rs6000/aix53.h 2016-10-01 18:55:47.620793326 +0200 @@ -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 --- gcc/config/rs6000/aix61.h.jj 2016-01-04 14:55:57.150413469 +0100 +++ gcc/config/rs6000/aix61.h 2016-10-01 18:55:45.736816543 +0200 @@ -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 --- gcc/defaults.h.jj 2016-09-29 22:53:12.000000000 +0200 +++ gcc/defaults.h 2016-10-01 18:56:54.180973076 +0200 @@ -392,27 +392,6 @@ see the files COPYING3 and COPYING.RUNTI #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 */ --- gcc/system.h.jj 2016-09-29 22:53:15.275713645 +0200 +++ gcc/system.h 2016-10-03 17:39:18.361698158 +0200 @@ -987,7 +987,8 @@ extern void fancy_abort (const char *, i 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 \ --- gcc/c-family/c-cppbuiltin.c.jj 2016-09-27 21:15:39.000000000 +0200 +++ gcc/c-family/c-cppbuiltin.c 2016-10-01 19:49:58.395673099 +0200 @@ -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); --- gcc/doc/tm.texi.in.jj 2016-09-23 09:32:12.000000000 +0200 +++ gcc/doc/tm.texi.in 2016-10-01 19:48:14.537954491 +0200 @@ -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. --- gcc/doc/tm.texi.jj 2016-09-27 09:46:07.000000000 +0200 +++ gcc/doc/tm.texi 2016-10-01 19:48:23.254846943 +0200 @@ -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. --- libgcc/config/i386/cygming-crtbegin.c.jj 2016-01-04 15:14:09.000000000 +0100 +++ libgcc/config/i386/cygming-crtbegin.c 2016-10-01 18:53:57.743147396 +0200 @@ -73,18 +73,6 @@ __deregister_frame_info (__attribute__(( #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 --- libgcc/config/i386/cygming-crtend.c.jj 2016-01-04 15:14:09.000000000 +0100 +++ libgcc/config/i386/cygming-crtend.c 2016-10-01 18:54:11.980971937 +0200 @@ -53,14 +53,6 @@ static EH_FRAME_SECTION_CONST int __FRAM = { 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); --- libgcc/config/ia64/crtbegin.S.jj 2016-01-04 15:14:10.000000000 +0100 +++ libgcc/config/ia64/crtbegin.S 2016-10-01 18:53:10.237732825 +0200 @@ -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 --- libgcc/config/ia64/crtend.S.jj 2016-01-04 15:14:10.000000000 +0100 +++ libgcc/config/ia64/crtend.S 2016-10-01 18:53:19.641616937 +0200 @@ -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 --- libgcc/crtstuff.c.jj 2016-01-04 15:14:09.000000000 +0100 +++ libgcc/crtstuff.c 2016-10-01 18:51:52.246693943 +0200 @@ -266,15 +266,6 @@ STATIC EH_FRAME_SECTION_CONST char __EH_ = { }; #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_ #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 __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 __FR = { 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 Jakub