diff options
author | Richard Henderson <rth@redhat.com> | 2002-01-26 20:18:12 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2002-01-26 20:18:12 -0800 |
commit | cea3bd3e5a0a40eb90809bf90063da4911ba23b0 (patch) | |
tree | e5878dd8630022a33d8797b199100a5b12fc5c7f /gcc/doc/tm.texi | |
parent | 1f9131b7db56276783f0276f2083c208dbf05709 (diff) | |
download | gcc-cea3bd3e5a0a40eb90809bf90063da4911ba23b0.zip gcc-cea3bd3e5a0a40eb90809bf90063da4911ba23b0.tar.gz gcc-cea3bd3e5a0a40eb90809bf90063da4911ba23b0.tar.bz2 |
Makefile.in (CRTSTUFF_CFLAGS): New.
* Makefile.in (CRTSTUFF_CFLAGS): New.
(crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
* config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
crtstuff.c instead of alpha assembly version.
* crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
entire dummy function sequence. Use FORCE_CODE_SECTION_ALIGN
not FORCE_{INIT,FINI}_SECTION_ALIGN.
(__do_global_dtors_aux): Mark used.
(frame_dummy, __do_global_ctors_aux): Mark used.
(fini_dummy, init_dummy): Remove.
* config/alpha/crtbegin.asm: Remove file.
* config/alpha/crtend.asm: Remove file.
* config/alpha/t-crtbe: Remove file.
* config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
(LINK_EH_SPEC): New.
* config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
FORCE_INIT_SECTION_ALIGN hack. Register __fini_start before
calling constructors.
* config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
* config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
* config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
CRT_END_INIT_DUMMY hack.
* config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
FORCE_{INIT,FINI}_SECTION_ALIGN.
* config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
FORCE_{INIT,FINI}_SECTION_ALIGN.
* config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
invocation sequence.
* config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
* doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
(FORCE_CODE_SECTION_ALIGN): New.
From-SVN: r49261
Diffstat (limited to 'gcc/doc/tm.texi')
-rw-r--r-- | gcc/doc/tm.texi | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 706cca4..a7a7c5b 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -5458,16 +5458,24 @@ finalization code. If not defined, GCC will assume such a section does not exist. @findex CRT_CALL_STATIC_FUNCTION -@item CRT_CALL_STATIC_FUNCTION -If defined, a C statement that calls the function named as the sole -argument of this macro. This is used in @file{crtstuff.c} if -@code{INIT_SECTION_ASM_OP} or @code{FINI_SECTION_ASM_OP} to calls to -initialization and finalization functions from the init and fini -sections. By default, this macro is a simple function call. Some +@item CRT_CALL_STATIC_FUNCTION (@var{section_op}, @var{function}) +If defined, an ASM statement that switches to a different section +via @var{section_op}, calls @var{function}, and switches back to +the text section. This is used in @file{crtstuff.c} if +@code{INIT_SECTION_ASM_OP} or @code{FINI_SECTION_ASM_OP} to calls +to initialization and finalization functions from the init and fini +sections. By default, this macro uses a simple function call. Some ports need hand-crafted assembly code to avoid dependencies on registers initialized in the function prologue or to ensure that constant pools don't end up too far way in the text section. +@findex FORCE_CODE_SECTION_ALIGN +@item FORCE_CODE_SECTION_ALIGN +If defined, an ASM statement that aligns a code section to some +arbitrary boundary. This is used to force all fragments of the +@code{.init} and @code{.fini} sections to have to same alignment +and thus prevent the linker from having to add any padding. + @findex EXTRA_SECTIONS @findex in_text @findex in_data |