defaults.h (JCR_SECTION_NAME, [...]): Remove.
authorJakub Jelinek <jakub@redhat.com>
Tue, 4 Oct 2016 07:49:44 +0000 (09:49 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 4 Oct 2016 07:49:44 +0000 (09:49 +0200)
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.

From-SVN: r240739

22 files changed:
gcc/ChangeLog
gcc/c-family/ChangeLog
gcc/c-family/c-cppbuiltin.c
gcc/config/darwin.h
gcc/config/i386/cygming.h
gcc/config/i386/mingw32.h
gcc/config/pa/pa64-hpux.h
gcc/config/rs6000/aix51.h
gcc/config/rs6000/aix52.h
gcc/config/rs6000/aix53.h
gcc/config/rs6000/aix61.h
gcc/config/rs6000/aix71.h
gcc/defaults.h
gcc/doc/tm.texi
gcc/doc/tm.texi.in
gcc/system.h
libgcc/ChangeLog
libgcc/config/i386/cygming-crtbegin.c
libgcc/config/i386/cygming-crtend.c
libgcc/config/ia64/crtbegin.S
libgcc/config/ia64/crtend.S
libgcc/crtstuff.c

index 2b0ed4e4c820084f3de3cdcd11dfc016dc35cd57..efed569f6057f3824d97de3b6079cdce5ac7bc79 100644 (file)
@@ -1,3 +1,19 @@
+2016-10-04  Jakub Jelinek  <jakub@redhat.com>
+
+       * 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  <prathamesh.kulkarni@linaro.org>
 
        * ipa-cp.c (propagate_bits_accross_jump_function): Introduce space
index 6c2f3cf5655b6b9fd55ddbca7479b650b53eb42c..d39e036c1a970866b6cc7d7fd4af7784ee7c3789 100644 (file)
@@ -1,3 +1,8 @@
+2016-10-04  Jakub Jelinek  <jakub@redhat.com>
+
+       * c-cppbuiltin.c (c_cpp_builtins): Don't define
+       __LIBGCC_JCR_SECTION_NAME__.
+
 2016-10-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>
 
        * c-common.c (c_common_truthvalue_conversion): Warn for suspicious
index b860c21e3e60648398ab076565e28b78960185c4..97eda67e93b1173bb2cb9ed60253bf0c16ff1523 100644 (file)
@@ -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);
index 3782eb340479844117f9fa52f5f83a2899068d1d..b16fec89cdf8fbed3404479ac35ce4a5b79866bf 100644 (file)
@@ -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) \
index 1d9675eaf93e34cb8befda456d770d7bf7fd7e41..10d68361eb1d056f1af6a0ccced9305c0ab53190 100644 (file)
@@ -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
index 0407efe7df3ab2ad208d1a08a4833614fd0773f5..ac4aa0d728b067dc7ff131100256714ca46d135c 100644 (file)
@@ -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
index 279406a01fb3661350646b96be48e36a54939a32..88ec4909ee98706c63b9a3b50dd6a4993e7d271e 100644 (file)
@@ -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 ""
index e1d4ee72b77b7edc970271c2bcc7c2c93fdcaf88..3218712cd54ab9c24023553a12837b7014bfbb1d 100644 (file)
@@ -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
index f1893c70b0d18ff977123e11b7ffffcdb8ac36d4..0e25ff26b4fdba51eb521a88e5c19bb52eedc8c6 100644 (file)
@@ -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
index 50e77e79051411612f170d1a9469d88534174737..8ca58823c4c8ca8f05b6baa8c579b2cdf7b28345 100644 (file)
@@ -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
index 0c9e7f0829bb68b197c9631899eaed7572d4b1aa..cddb5b791473230f451c5a4678a24211dceb220d 100644 (file)
@@ -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
index a0f5b3cf2bc01edd3c7381e21a451723297f7b9b..4d097fb824bc401051bb80fee3c9feab974fe2ec 100644 (file)
@@ -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.  */
index c62c844cbebfd361ff9ef3157178e992bd518554..1bbcf0eb5b867752f19cab980e8671d49806767e 100644 (file)
@@ -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  */
 
index 8a98ba43a67eac87c2be8a974f6c0b924e519f52..634f701d6e30acc02c4fb6706e80db14326af817 100644 (file)
@@ -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.
index f1cfc863f30d25c5ef3d0bba055205d5280b305d..7b6fa873c5be3285bc7faea0595b04591460dca7 100644 (file)
@@ -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.
index cc353f555aea9c4f5a740c878c70909bc6f803e6..8c6127c97a9306297e0063be7477233ab4a21e8e 100644 (file)
@@ -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  \
index f876b9b16d3416ea057448b7652ca90598e5d1ac..2baca35456ac848ddfbbbebcdbd34c5dca7b33b1 100644 (file)
@@ -1,3 +1,17 @@
+2016-10-04  Jakub Jelinek  <jakub@redhat.com>
+
+       * 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  <ubizjak@gmail.com>
 
        * config/i386/cpuinfo.c (__get_cpuid_output): Remove.
index e4a6672294a5afaabf4094447f6db7acac4231bd..be8344d6f9b2bfcf8f8e4f835ad229c041f8c083 100644 (file)
@@ -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
index fdf6a0e94528dd185bce352443df5ded6e145ec3..9bd0e10a1c744c9d59a426f27f9722c5740e0073 100644 (file)
@@ -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);
 
index a8d738b959237efc3073b806b42bada9ffe922f8..3bf0e71a3ac7b1dc9f275a6c2826aec3e5a80366 100644 (file)
@@ -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
index 7434930040a7f3bf1c4c1c761009ef3607d0108b..69cc5d77881b0b15c1a273c0fa5b98311b4b48fb 100644 (file)
@@ -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
index f3343fc4fd88ba9d71a6dfdbff7bf0376028649c..5449c4dbdb638ac68d94c3a0202f2d3b2e6b0a49 100644 (file)
@@ -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