defaults.h (JCR_SECTION_NAME, [...]): Remove.
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
This commit is contained in:
parent
4b3a7e03e5
commit
5a79befbf4
|
@ -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>
|
2016-10-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
|
||||||
|
|
||||||
* ipa-cp.c (propagate_bits_accross_jump_function): Introduce space
|
* ipa-cp.c (propagate_bits_accross_jump_function): Introduce space
|
||||||
|
|
|
@ -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>
|
2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||||||
|
|
||||||
* c-common.c (c_common_truthvalue_conversion): Warn for suspicious
|
* c-common.c (c_common_truthvalue_conversion): Warn for suspicious
|
||||||
|
|
|
@ -1213,10 +1213,6 @@ c_cpp_builtins (cpp_reader *pfile)
|
||||||
builtin_define_with_value ("__LIBGCC_EH_FRAME_SECTION_NAME__",
|
builtin_define_with_value ("__LIBGCC_EH_FRAME_SECTION_NAME__",
|
||||||
EH_FRAME_SECTION_NAME, 1);
|
EH_FRAME_SECTION_NAME, 1);
|
||||||
#endif
|
#endif
|
||||||
#ifdef JCR_SECTION_NAME
|
|
||||||
builtin_define_with_value ("__LIBGCC_JCR_SECTION_NAME__",
|
|
||||||
JCR_SECTION_NAME, 1);
|
|
||||||
#endif
|
|
||||||
#ifdef CTORS_SECTION_ASM_OP
|
#ifdef CTORS_SECTION_ASM_OP
|
||||||
builtin_define_with_value ("__LIBGCC_CTORS_SECTION_ASM_OP__",
|
builtin_define_with_value ("__LIBGCC_CTORS_SECTION_ASM_OP__",
|
||||||
CTORS_SECTION_ASM_OP, 1);
|
CTORS_SECTION_ASM_OP, 1);
|
||||||
|
|
|
@ -825,9 +825,6 @@ enum machopic_addr_class {
|
||||||
#define EH_FRAME_SECTION_NAME "__TEXT"
|
#define EH_FRAME_SECTION_NAME "__TEXT"
|
||||||
#define EH_FRAME_SECTION_ATTR ",coalesced,no_toc+strip_static_syms+live_support"
|
#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
|
#undef ASM_PREFERRED_EH_DATA_FORMAT
|
||||||
#define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) \
|
#define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) \
|
||||||
(((CODE) == 2 && (GLOBAL) == 1) \
|
(((CODE) == 2 && (GLOBAL) == 1) \
|
||||||
|
|
|
@ -443,11 +443,6 @@ do { \
|
||||||
|
|
||||||
#endif /* HAVE_GAS_WEAK */
|
#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
|
/* Decide whether it is safe to use a local alias for a virtual function
|
||||||
when constructing thunks. */
|
when constructing thunks. */
|
||||||
#undef TARGET_USE_LOCAL_THUNK_ALIAS_P
|
#undef TARGET_USE_LOCAL_THUNK_ALIAS_P
|
||||||
|
|
|
@ -239,9 +239,6 @@ do { \
|
||||||
#undef TARGET_N_FORMAT_TYPES
|
#undef TARGET_N_FORMAT_TYPES
|
||||||
#define TARGET_N_FORMAT_TYPES 3
|
#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
|
#define HAVE_ENABLE_EXECUTE_STACK
|
||||||
#undef CHECK_EXECUTE_STACK_ENABLED
|
#undef CHECK_EXECUTE_STACK_ENABLED
|
||||||
#define CHECK_EXECUTE_STACK_ENABLED flag_setstackexecutable
|
#define CHECK_EXECUTE_STACK_ENABLED flag_setstackexecutable
|
||||||
|
|
|
@ -170,8 +170,6 @@ along with GCC; see the file COPYING3. If not see
|
||||||
#define DATA_SECTION_ASM_OP "\t.data"
|
#define DATA_SECTION_ASM_OP "\t.data"
|
||||||
#define BSS_SECTION_ASM_OP "\t.section\t.bss"
|
#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 HP_INIT_ARRAY_SECTION_ASM_OP "\t.section\t.init"
|
||||||
#define GNU_INIT_ARRAY_SECTION_ASM_OP "\t.section\t.init_array"
|
#define GNU_INIT_ARRAY_SECTION_ASM_OP "\t.section\t.init_array"
|
||||||
#define HP_FINI_ARRAY_SECTION_ASM_OP "\t.section\t.fini"
|
#define HP_FINI_ARRAY_SECTION_ASM_OP "\t.section\t.fini"
|
||||||
|
@ -382,8 +380,8 @@ do { \
|
||||||
initializers specified here. */
|
initializers specified here. */
|
||||||
|
|
||||||
/* We need to add frame_dummy to the initializer list if EH_FRAME_SECTION_NAME
|
/* We need to add frame_dummy to the initializer list if EH_FRAME_SECTION_NAME
|
||||||
or JCR_SECTION_NAME is defined. */
|
is defined. */
|
||||||
#if defined(EH_FRAME_SECTION_NAME) || defined(JCR_SECTION_NAME)
|
#if defined(EH_FRAME_SECTION_NAME)
|
||||||
#define PA_INIT_FRAME_DUMMY_ASM_OP ".dword P%frame_dummy"
|
#define PA_INIT_FRAME_DUMMY_ASM_OP ".dword P%frame_dummy"
|
||||||
#else
|
#else
|
||||||
#define PA_INIT_FRAME_DUMMY_ASM_OP ""
|
#define PA_INIT_FRAME_DUMMY_ASM_OP ""
|
||||||
|
|
|
@ -163,8 +163,6 @@ do { \
|
||||||
/* This target defines SUPPORTS_WEAK and TARGET_ASM_NAMED_SECTION,
|
/* This target defines SUPPORTS_WEAK and TARGET_ASM_NAMED_SECTION,
|
||||||
but does not have crtbegin/end. */
|
but does not have crtbegin/end. */
|
||||||
|
|
||||||
#define TARGET_USE_JCR_SECTION 0
|
|
||||||
|
|
||||||
#define TARGET_AIX_VERSION 51
|
#define TARGET_AIX_VERSION 51
|
||||||
|
|
||||||
#undef TARGET_LIBC_HAS_FUNCTION
|
#undef TARGET_LIBC_HAS_FUNCTION
|
||||||
|
|
|
@ -176,6 +176,4 @@ extern long long int atoll(const char *);
|
||||||
/* This target defines SUPPORTS_WEAK and TARGET_ASM_NAMED_SECTION,
|
/* This target defines SUPPORTS_WEAK and TARGET_ASM_NAMED_SECTION,
|
||||||
but does not have crtbegin/end. */
|
but does not have crtbegin/end. */
|
||||||
|
|
||||||
#define TARGET_USE_JCR_SECTION 0
|
|
||||||
|
|
||||||
#define TARGET_AIX_VERSION 52
|
#define TARGET_AIX_VERSION 52
|
||||||
|
|
|
@ -177,6 +177,4 @@ extern long long int atoll(const char *);
|
||||||
/* This target defines SUPPORTS_WEAK and TARGET_ASM_NAMED_SECTION,
|
/* This target defines SUPPORTS_WEAK and TARGET_ASM_NAMED_SECTION,
|
||||||
but does not have crtbegin/end. */
|
but does not have crtbegin/end. */
|
||||||
|
|
||||||
#define TARGET_USE_JCR_SECTION 0
|
|
||||||
|
|
||||||
#define TARGET_AIX_VERSION 53
|
#define TARGET_AIX_VERSION 53
|
||||||
|
|
|
@ -210,6 +210,4 @@ extern long long int atoll(const char *);
|
||||||
/* This target defines SUPPORTS_WEAK and TARGET_ASM_NAMED_SECTION,
|
/* This target defines SUPPORTS_WEAK and TARGET_ASM_NAMED_SECTION,
|
||||||
but does not have crtbegin/end. */
|
but does not have crtbegin/end. */
|
||||||
|
|
||||||
#define TARGET_USE_JCR_SECTION 0
|
|
||||||
|
|
||||||
#define TARGET_AIX_VERSION 61
|
#define TARGET_AIX_VERSION 61
|
||||||
|
|
|
@ -210,8 +210,6 @@ extern long long int atoll(const char *);
|
||||||
/* This target defines SUPPORTS_WEAK and TARGET_ASM_NAMED_SECTION,
|
/* This target defines SUPPORTS_WEAK and TARGET_ASM_NAMED_SECTION,
|
||||||
but does not have crtbegin/end. */
|
but does not have crtbegin/end. */
|
||||||
|
|
||||||
#define TARGET_USE_JCR_SECTION 0
|
|
||||||
|
|
||||||
#define TARGET_AIX_VERSION 71
|
#define TARGET_AIX_VERSION 71
|
||||||
|
|
||||||
/* AIX 7.1 supports DWARF3 debugging, but XCOFF remains the default. */
|
/* AIX 7.1 supports DWARF3 debugging, but XCOFF remains the default. */
|
||||||
|
|
|
@ -392,27 +392,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||||
#define MASK_RETURN_ADDR NULL_RTX
|
#define MASK_RETURN_ADDR NULL_RTX
|
||||||
#endif
|
#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.
|
/* Number of hardware registers that go into the DWARF-2 unwind info.
|
||||||
If not defined, equals FIRST_PSEUDO_REGISTER */
|
If not defined, equals FIRST_PSEUDO_REGISTER */
|
||||||
|
|
||||||
|
|
|
@ -11598,12 +11598,6 @@ conversion rules.
|
||||||
This is currently used only by the C and C++ front ends.
|
This is currently used only by the C and C++ front ends.
|
||||||
@end deftypefn
|
@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
|
@defmac OBJC_JBLEN
|
||||||
This macro determines the size of the objective C jump buffer for the
|
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.
|
NeXT runtime. By default, OBJC_JBLEN is defined to an innocuous value.
|
||||||
|
|
|
@ -8186,12 +8186,6 @@ and scanf formatter settings.
|
||||||
|
|
||||||
@hook TARGET_CONVERT_TO_TYPE
|
@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
|
@defmac OBJC_JBLEN
|
||||||
This macro determines the size of the objective C jump buffer for the
|
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.
|
NeXT runtime. By default, OBJC_JBLEN is defined to an innocuous value.
|
||||||
|
|
|
@ -987,7 +987,8 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
|
||||||
CALLER_SAVE_PROFITABLE LARGEST_EXPONENT_IS_NORMAL \
|
CALLER_SAVE_PROFITABLE LARGEST_EXPONENT_IS_NORMAL \
|
||||||
ROUND_TOWARDS_ZERO SF_SIZE DF_SIZE XF_SIZE TF_SIZE LIBGCC2_TF_CEXT \
|
ROUND_TOWARDS_ZERO SF_SIZE DF_SIZE XF_SIZE TF_SIZE LIBGCC2_TF_CEXT \
|
||||||
LIBGCC2_LONG_DOUBLE_TYPE_SIZE STRUCT_VALUE \
|
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. */
|
/* Hooks that are no longer used. */
|
||||||
#pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \
|
#pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \
|
||||||
|
|
|
@ -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>
|
2015-09-28 Uros Bizjak <ubizjak@gmail.com>
|
||||||
|
|
||||||
* config/i386/cpuinfo.c (__get_cpuid_output): Remove.
|
* config/i386/cpuinfo.c (__get_cpuid_output): Remove.
|
||||||
|
|
|
@ -73,18 +73,6 @@ __deregister_frame_info (__attribute__((unused)) const void *p)
|
||||||
#endif
|
#endif
|
||||||
#endif /* DWARF2_UNWIND_INFO */
|
#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)
|
#if defined(HAVE_LD_RO_RW_SECTION_MIXING)
|
||||||
# define EH_FRAME_SECTION_CONST const
|
# define EH_FRAME_SECTION_CONST const
|
||||||
#else
|
#else
|
||||||
|
@ -105,12 +93,6 @@ HANDLE hmod_libgcc;
|
||||||
static void * (*deregister_frame_fn) (const void *) = NULL;
|
static void * (*deregister_frame_fn) (const void *) = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if TARGET_USE_JCR_SECTION
|
|
||||||
static void *__JCR_LIST__[]
|
|
||||||
__attribute__ ((used, section(__LIBGCC_JCR_SECTION_NAME__), aligned(4)))
|
|
||||||
= { };
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __CYGWIN__
|
#ifdef __CYGWIN__
|
||||||
/* Declare the __dso_handle variable. It should have a unique value
|
/* Declare the __dso_handle variable. It should have a unique value
|
||||||
in every shared-object; in a main program its value is zero. The
|
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);
|
register_frame_fn (__EH_FRAME_BEGIN__, &obj);
|
||||||
#endif
|
#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 DEFAULT_USE_CXA_ATEXIT
|
||||||
/* If we use the __cxa_atexit method to register C++ dtors
|
/* If we use the __cxa_atexit method to register C++ dtors
|
||||||
at object construction, also use atexit to register eh frame
|
at object construction, also use atexit to register eh frame
|
||||||
|
|
|
@ -53,14 +53,6 @@ static EH_FRAME_SECTION_CONST int __FRAME_END__[]
|
||||||
= { 0 };
|
= { 0 };
|
||||||
#endif
|
#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_register_frame (void);
|
||||||
extern void __gcc_deregister_frame (void);
|
extern void __gcc_deregister_frame (void);
|
||||||
|
|
||||||
|
|
|
@ -34,10 +34,6 @@ __CTOR_LIST__:
|
||||||
__DTOR_LIST__:
|
__DTOR_LIST__:
|
||||||
data8 -1
|
data8 -1
|
||||||
|
|
||||||
.section .jcr,"aw","progbits"
|
|
||||||
.align 8
|
|
||||||
__JCR_LIST__:
|
|
||||||
|
|
||||||
.section .sdata
|
.section .sdata
|
||||||
.type dtor_ptr,@object
|
.type dtor_ptr,@object
|
||||||
.size dtor_ptr,8
|
.size dtor_ptr,8
|
||||||
|
|
|
@ -34,11 +34,6 @@ __CTOR_END__:
|
||||||
__DTOR_END__:
|
__DTOR_END__:
|
||||||
data8 0
|
data8 0
|
||||||
|
|
||||||
.section .jcr,"aw","progbits"
|
|
||||||
.align 8
|
|
||||||
__JCR_END__:
|
|
||||||
data8 0
|
|
||||||
|
|
||||||
#if HAVE_INITFINI_ARRAY_SUPPORT
|
#if HAVE_INITFINI_ARRAY_SUPPORT
|
||||||
.global __do_global_ctors_aux
|
.global __do_global_ctors_aux
|
||||||
.hidden __do_global_ctors_aux
|
.hidden __do_global_ctors_aux
|
||||||
|
|
|
@ -266,15 +266,6 @@ STATIC EH_FRAME_SECTION_CONST char __EH_FRAME_BEGIN__[]
|
||||||
= { };
|
= { };
|
||||||
#endif /* USE_EH_FRAME_REGISTRY */
|
#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
|
#if USE_TM_CLONE_REGISTRY
|
||||||
STATIC func_ptr __TMC_LIST__[]
|
STATIC func_ptr __TMC_LIST__[]
|
||||||
__attribute__((used, section(".tm_clone_table"), aligned(sizeof(void*))))
|
__attribute__((used, section(".tm_clone_table"), aligned(sizeof(void*))))
|
||||||
|
@ -449,7 +440,6 @@ CRT_CALL_STATIC_FUNCTION (__LIBGCC_INIT_SECTION_ASM_OP__,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(USE_EH_FRAME_REGISTRY) \
|
#if defined(USE_EH_FRAME_REGISTRY) \
|
||||||
|| defined(__LIBGCC_JCR_SECTION_NAME__) \
|
|
||||||
|| defined(USE_TM_CLONE_REGISTRY)
|
|| defined(USE_TM_CLONE_REGISTRY)
|
||||||
/* Stick a call to __register_frame_info into the .init section. For some
|
/* 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
|
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 /* CRT_GET_RFIB_DATA */
|
||||||
#endif /* USE_EH_FRAME_REGISTRY */
|
#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
|
#if USE_TM_CLONE_REGISTRY
|
||||||
register_tm_clones ();
|
register_tm_clones ();
|
||||||
#endif /* USE_TM_CLONE_REGISTRY */
|
#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))))
|
__attribute__ ((__used__, section(".init_array"), aligned(sizeof(func_ptr))))
|
||||||
= { frame_dummy };
|
= { frame_dummy };
|
||||||
#endif /* !defined(__LIBGCC_INIT_SECTION_ASM_OP__) */
|
#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 */
|
#else /* OBJECT_FORMAT_ELF */
|
||||||
|
|
||||||
|
@ -564,7 +542,6 @@ __do_global_dtors (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(USE_EH_FRAME_REGISTRY) \
|
#if defined(USE_EH_FRAME_REGISTRY) \
|
||||||
|| defined(__LIBGCC_JCR_SECTION_NAME__) \
|
|
||||||
|| defined(USE_TM_CLONE_REGISTRY)
|
|| defined(USE_TM_CLONE_REGISTRY)
|
||||||
/* A helper function for __do_global_ctors, which is in crtend.o. Here
|
/* 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.
|
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);
|
__register_frame_info (__EH_FRAME_BEGIN__, &object);
|
||||||
#endif
|
#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
|
#if USE_TM_CLONE_REGISTRY
|
||||||
register_tm_clones ();
|
register_tm_clones ();
|
||||||
#endif /* USE_TM_CLONE_REGISTRY */
|
#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 */
|
#else /* ! __LIBGCC_INIT_SECTION_ASM_OP__ && ! HAS_INIT_SECTION */
|
||||||
#error "What are you doing with crtstuff.c, then?"
|
#error "What are you doing with crtstuff.c, then?"
|
||||||
|
@ -671,14 +636,6 @@ STATIC EH_FRAME_SECTION_CONST int32 __FRAME_END__[]
|
||||||
= { 0 };
|
= { 0 };
|
||||||
#endif /* __LIBGCC_EH_FRAME_SECTION_NAME__ */
|
#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
|
#if USE_TM_CLONE_REGISTRY
|
||||||
# ifndef HAVE_GAS_HIDDEN
|
# ifndef HAVE_GAS_HIDDEN
|
||||||
static
|
static
|
||||||
|
@ -757,7 +714,6 @@ __do_global_ctors (void)
|
||||||
{
|
{
|
||||||
func_ptr *p;
|
func_ptr *p;
|
||||||
#if defined(USE_EH_FRAME_REGISTRY) \
|
#if defined(USE_EH_FRAME_REGISTRY) \
|
||||||
|| defined(__LIBGCC_JCR_SECTION_NAME__) \
|
|
||||||
|| defined(USE_TM_CLONE_REGISTRY)
|
|| defined(USE_TM_CLONE_REGISTRY)
|
||||||
__do_global_ctors_1();
|
__do_global_ctors_1();
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue