From: "Richard Earnshaw (lists)" <Richard.Earnshaw@arm.com>
To: Christophe Lyon <christophe.lyon@st.com>,
gcc-patches@gcc.gnu.org, ian@airs.com
Cc: christophe.lyon@linaro.org
Subject: Re: [ARM/FDPIC v3 05/21] [ARM] FDPIC: Fix __do_global_dtors_aux and frame_dummy generation
Date: Fri, 12 Oct 2018 11:29:00 -0000 [thread overview]
Message-ID: <6599c145-e040-5c7c-7913-17099178affa@arm.com> (raw)
In-Reply-To: <20181011133518.17258-6-christophe.lyon@st.com>
On 11/10/18 14:34, Christophe Lyon wrote:
> In FDPIC, we need to make sure __do_global_dtors_aux and frame_dummy
> are referenced by their address, not by pointers to the function
> descriptors.
>
> 2018-XX-XX Christophe Lyon <christophe.lyon@st.com>
> Mickaël Guêné <mickael.guene@st.com>
>
> * libgcc/crtstuff.c: Add support for FDPIC.
>
This looks a little bit hacky; and since it's to a generic file I'd like
a second opinion from the libgcc maintainer.
At the very least, don't you need an alignment directive before the entries?
R.
> Change-Id: Iff3aec3815e8ebd87276c0107752f00908a22100
>
> diff --git a/libgcc/crtstuff.c b/libgcc/crtstuff.c
> index d81c527..ad40719 100644
> --- a/libgcc/crtstuff.c
> +++ b/libgcc/crtstuff.c
> @@ -429,9 +429,17 @@ __do_global_dtors_aux (void)
> #ifdef FINI_SECTION_ASM_OP
> CRT_CALL_STATIC_FUNCTION (FINI_SECTION_ASM_OP, __do_global_dtors_aux)
> #elif defined (FINI_ARRAY_SECTION_ASM_OP)
> +#if defined(__FDPIC__)
> +__asm__(
> + " .section .fini_array\n"
> + " .word __do_global_dtors_aux\n"
> +);
> +asm (TEXT_SECTION_ASM_OP);
> +#else /* defined(__FDPIC__) */
> static func_ptr __do_global_dtors_aux_fini_array_entry[]
> __attribute__ ((__used__, section(".fini_array"), aligned(sizeof(func_ptr))))
> = { __do_global_dtors_aux };
> +#endif /* defined(__FDPIC__) */
> #else /* !FINI_SECTION_ASM_OP && !FINI_ARRAY_SECTION_ASM_OP */
> static void __attribute__((used))
> __do_global_dtors_aux_1 (void)
> @@ -473,9 +481,17 @@ frame_dummy (void)
> #ifdef __LIBGCC_INIT_SECTION_ASM_OP__
> CRT_CALL_STATIC_FUNCTION (__LIBGCC_INIT_SECTION_ASM_OP__, frame_dummy)
> #else /* defined(__LIBGCC_INIT_SECTION_ASM_OP__) */
> +#if defined(__FDPIC__)
> +__asm__(
> + " .section .init_array\n"
> + " .word frame_dummy\n"
> +);
> +asm (TEXT_SECTION_ASM_OP);
> +#else /* defined(__FDPIC__) */
> static func_ptr __frame_dummy_init_array_entry[]
> __attribute__ ((__used__, section(".init_array"), aligned(sizeof(func_ptr))))
> = { frame_dummy };
> +#endif /* defined(__FDPIC__) */
> #endif /* !defined(__LIBGCC_INIT_SECTION_ASM_OP__) */
> #endif /* USE_EH_FRAME_REGISTRY || USE_TM_CLONE_REGISTRY */
>
>
next prev parent reply other threads:[~2018-10-12 11:03 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-11 13:36 [ARM/FDPIC v3 00/21] FDPIC ABI for ARM Christophe Lyon
2018-10-11 13:36 ` [ARM/FDPIC v3 02/21] [ARM] FDPIC: Handle arm*-*-uclinuxfdpiceabi in configure scripts Christophe Lyon
2018-10-12 10:14 ` Richard Earnshaw (lists)
2018-10-15 8:46 ` Christophe Lyon
2018-11-09 12:31 ` Christophe Lyon
2018-10-11 13:36 ` [ARM/FDPIC v3 01/21] [ARM] FDPIC: Add -mfdpic option support Christophe Lyon
2018-10-12 10:01 ` Richard Earnshaw (lists)
2018-10-17 8:13 ` Sandra Loosemore
2018-10-11 13:37 ` [ARM/FDPIC v3 03/21] [ARM] FDPIC: Force FDPIC related options unless -mno-fdpic is provided Christophe Lyon
2018-10-12 10:46 ` Richard Earnshaw (lists)
2018-10-15 10:35 ` Christophe Lyon
2018-10-23 15:01 ` Richard Earnshaw (lists)
2018-10-23 15:42 ` Segher Boessenkool
2018-10-26 15:33 ` Christophe Lyon
2018-10-29 14:25 ` Christophe Lyon
2018-10-29 23:15 ` Segher Boessenkool
2018-10-11 13:37 ` [ARM/FDPIC v3 05/21] [ARM] FDPIC: Fix __do_global_dtors_aux and frame_dummy generation Christophe Lyon
2018-10-12 11:29 ` Richard Earnshaw (lists) [this message]
2018-10-11 13:37 ` [ARM/FDPIC v3 04/21] [ARM] FDPIC: Add support for FDPIC for arm architecture Christophe Lyon
2018-10-12 11:02 ` Richard Earnshaw (lists)
2018-10-19 13:57 ` Christophe Lyon
2018-10-23 15:12 ` Richard Earnshaw (lists)
2018-10-26 16:34 ` Christophe Lyon
2018-10-26 16:41 ` Richard Earnshaw (lists)
2018-10-29 10:31 ` Christophe Lyon
2018-10-11 13:38 ` [ARM/FDPIC v3 06/21] [ARM] FDPIC: Add support for c++ exceptions Christophe Lyon
2018-10-12 11:54 ` Richard Earnshaw (lists)
2018-10-15 14:22 ` Christophe Lyon
2018-10-11 13:38 ` [ARM/FDPIC v3 08/21] [ARM] FDPIC: Ensure local/global binding for function descriptors Christophe Lyon
2018-10-12 12:39 ` Richard Earnshaw (lists)
2018-10-11 13:38 ` [ARM/FDPIC v3 07/21] [ARM] FDPIC: Avoid saving/restoring r9 on stack since it is RO Christophe Lyon
2018-10-12 12:21 ` Richard Earnshaw (lists)
2018-10-15 14:30 ` Christophe Lyon
2018-10-11 13:39 ` [ARM/FDPIC v3 09/21] [ARM] FDPIC: Add support for taking address of nested function Christophe Lyon
2018-10-11 13:39 ` [ARM/FDPIC v3 11/21] [ARM] FDPIC: Add support to unwind FDPIC signal frame Christophe Lyon
2018-10-11 13:39 ` [ARM/FDPIC v3 10/21] [ARM] FDPIC: Implement TLS support Christophe Lyon
2018-10-11 13:40 ` [ARM/FDPIC v3 13/21] [ARM] FDPIC: Force LSB bit for PC in Cortex-M architecture Christophe Lyon
2018-10-11 13:40 ` [ARM/FDPIC v3 12/21] [ARM] FDPIC: Restore r9 after we call __aeabi_read_tp Christophe Lyon
2018-10-19 14:02 ` Christophe Lyon
2018-10-11 13:41 ` [ARM/FDPIC v3 14/21] [ARM][testsuite] FDPIC: Skip unsupported tests Christophe Lyon
2018-10-11 13:41 ` [ARM/FDPIC v3 16/21] [ARM][testsuite] FDPIC: Skip v8-m and v6-m tests that currently produce an ICE Christophe Lyon
2018-10-11 13:41 ` [ARM/FDPIC v3 15/21] [ARM][testsuite] FDPIC: Adjust scan-assembler patterns Christophe Lyon
2018-10-11 13:42 ` [ARM/FDPIC v3 18/21] [ARM][testsuite] FDPIC: Handle *-*-uclinux* Christophe Lyon
2018-10-11 13:42 ` [ARM/FDPIC v3 19/21] [ARM][testsuite] FDPIC: Enable tests on pie_enabled targets Christophe Lyon
2018-10-11 13:42 ` [ARM/FDPIC v3 17/21] [ARM][testsuite] FDPIC: Skip tests that don't work in PIC mode Christophe Lyon
2018-10-11 13:43 ` [ARM/FDPIC v3 20/21] [ARM][testsuite] FDPIC: Adjust pr43698.c to avoid clash with uclibc Christophe Lyon
2018-10-11 13:56 ` [ARM/FDPIC v3 21/21] [ARM][testsuite] FDPIC: Skip tests using architecture older than v7 Christophe Lyon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6599c145-e040-5c7c-7913-17099178affa@arm.com \
--to=richard.earnshaw@arm.com \
--cc=christophe.lyon@linaro.org \
--cc=christophe.lyon@st.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=ian@airs.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).