vxworks: don't define vxworks_asm_out_constructor when using .init_array
When the compiler is configured with --enable-initfini-array, config/initfini-array.h gets included after config/vxworks.h by tm.h, so the definitions of TARGET_ASM_CONSTRUTOR/TARGET_ASM_DESTRUCTOR in vxworks.h get undone in initfini-array.h. Hence, we might as well not define the vxworks_asm_out_* functions. From-SVN: r263692
This commit is contained in:
parent
ace193dc47
commit
eae016fc70
3 changed files with 10 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
2018-08-21 Rasmus Villemoes <rv@rasmusvillemoes.dk>
|
||||
|
||||
* config/vxworks.h: Guard vxworks_asm_out_constructor and
|
||||
vxworks_asm_out_destructor by !HAVE_INITFINI_ARRAY_SUPPORT
|
||||
* config/vxworks.c: Likewise.
|
||||
|
||||
2018-08-21 Rasmus Villemoes <rv@rasmusvillemoes.dk>
|
||||
|
||||
* config/vxworks.c: Set targetm.have_ctors_dtors
|
||||
|
|
|
@ -28,6 +28,7 @@ along with GCC; see the file COPYING3. If not see
|
|||
#include "output.h"
|
||||
#include "fold-const.h"
|
||||
|
||||
#if !HAVE_INITFINI_ARRAY_SUPPORT
|
||||
/* Like default_named_section_asm_out_constructor, except that even
|
||||
constructors with DEFAULT_INIT_PRIORITY must go in a numbered
|
||||
section on VxWorks. The VxWorks runtime uses a clever trick to get
|
||||
|
@ -56,6 +57,7 @@ vxworks_asm_out_destructor (rtx symbol, int priority)
|
|||
/*constructor_p=*/false);
|
||||
assemble_addr_to_section (symbol, sec);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Return the list of FIELD_DECLs that make up an emulated TLS
|
||||
variable's control object. TYPE is the structure these are fields
|
||||
|
|
|
@ -150,6 +150,7 @@ extern void vxworks_override_options (void);
|
|||
#define SUPPORTS_INIT_PRIORITY \
|
||||
(TARGET_VXWORKS_RTP || HAVE_INITFINI_ARRAY_SUPPORT)
|
||||
|
||||
#if !HAVE_INITFINI_ARRAY_SUPPORT
|
||||
/* VxWorks requires special handling of constructors and destructors.
|
||||
All VxWorks configurations must use these functions. */
|
||||
#undef TARGET_ASM_CONSTRUCTOR
|
||||
|
@ -158,6 +159,7 @@ extern void vxworks_override_options (void);
|
|||
#define TARGET_ASM_DESTRUCTOR vxworks_asm_out_destructor
|
||||
extern void vxworks_asm_out_constructor (rtx symbol, int priority);
|
||||
extern void vxworks_asm_out_destructor (rtx symbol, int priority);
|
||||
#endif
|
||||
|
||||
/* Override the vxworks-dummy.h definitions. TARGET_VXWORKS_RTP
|
||||
is defined by vxworks.opt. */
|
||||
|
|
Loading…
Add table
Reference in a new issue