From: Mark Rutland <mark.rutland@arm.com>
To: Andre Przywara <andre.przywara@arm.com>
Cc: linux-arm-kernel@lists.infradead.org, Jaxson Han <jaxson.han@arm.com>
Subject: Re: [boot-wrapper PATCH v2 1/9] Makefile: Avoid .got section creation
Date: Fri, 7 Jan 2022 13:49:54 +0000 [thread overview]
Message-ID: <YdhFAvJoo0vt6CCT@FVFF77S0Q05N> (raw)
In-Reply-To: <20211222181607.1203191-2-andre.przywara@arm.com>
On Wed, Dec 22, 2021 at 06:15:59PM +0000, Andre Przywara wrote:
> At the moment we build the boot-wrapper with the default toolchain
> settings, which has issues if that is a toolchain targeted to Linux
> userland, for instance. Since boot-wrapper is rather simple, we get away
> with this, *mostly*, but there is at least one case where this breaks:
> Many distributions enable PIE builds by default when building GCC, so by
> just calling "gcc" we build the .o files for PIE (although we don't link
> them accordingly, since we use "ld" directly).
> When we moved the PSCI code from assembly to C, we also introduced
> global variables, which a PIE enabled GCC will put into a .got section
> (global offset table), to be able to easily relocate them at runtime
> (if needed). This section happens to be outside of the memory region
> we reserve, so can (and will be) overwritten by Linux at some point.
> Doing PSCI calls afterwards does not end well then. "memtest=1" is one
> way to trigger this.
>
> To avoid the (in our case pointless) creation of the GOT, we specify
> -fno-pic and -fno-pie, to override any potential toolchain default.
>
> This fixes boot-wrapper builds on many distro compilers, for instance
> as provided by Ubuntu and Arch Linux.
>
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Thanks; applied.
Mark.
> ---
> Makefile.am | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/Makefile.am b/Makefile.am
> index d0a68df..3e970a3 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -126,6 +126,7 @@ CPPFLAGS += $(INITRD_FLAGS)
> CFLAGS += -I$(top_srcdir)/include/ -I$(top_srcdir)/$(ARCH_SRC)/include/
> CFLAGS += -Wall -fomit-frame-pointer
> CFLAGS += -ffunction-sections -fdata-sections
> +CFLAGS += -fno-pic -fno-pie
> LDFLAGS += --gc-sections
>
> OBJ := $(addprefix $(ARCH_SRC),$(ARCH_OBJ)) $(addprefix $(COMMON_SRC),$(COMMON_OBJ))
> --
> 2.25.1
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-01-07 13:51 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-22 18:15 [boot-wrapper PATCH v2 0/9] Various (build system) fixes Andre Przywara
2021-12-22 18:15 ` [boot-wrapper PATCH v2 1/9] Makefile: Avoid .got section creation Andre Przywara
2022-01-07 13:49 ` Mark Rutland [this message]
2021-12-22 18:16 ` [boot-wrapper PATCH v2 2/9] Add standard headers Andre Przywara
2022-01-07 13:49 ` Mark Rutland
2022-01-07 14:31 ` Andre Przywara
2022-01-11 11:34 ` Mark Rutland
2021-12-22 18:16 ` [boot-wrapper PATCH v2 3/9] Makefile: Tell compiler to generate bare-metal code Andre Przywara
2022-01-07 13:53 ` Mark Rutland
2022-01-07 14:38 ` Andre Przywara
2022-01-11 11:30 ` Mark Rutland
2022-01-18 12:52 ` Andre Przywara
2022-01-18 14:10 ` Ard Biesheuvel
2021-12-22 18:16 ` [boot-wrapper PATCH v2 4/9] configure: Make PSCI the default boot method Andre Przywara
2022-01-07 14:12 ` Mark Rutland
2021-12-22 18:16 ` [boot-wrapper PATCH v2 5/9] configure: Fix default DTB Andre Przywara
2022-01-07 14:13 ` Mark Rutland
2021-12-22 18:16 ` [boot-wrapper PATCH v2 6/9] configure: Use earlycon instead of earlyprintk Andre Przywara
2022-01-07 14:01 ` Mark Rutland
2022-01-07 14:14 ` Mark Rutland
2022-01-07 14:47 ` Andre Przywara
2021-12-22 18:16 ` [boot-wrapper PATCH v2 7/9] pointer auth: Document CPU feature bit mask Andre Przywara
2022-01-07 14:15 ` Mark Rutland
2021-12-22 18:16 ` [boot-wrapper PATCH v2 8/9] configure: Autodetect GICv3 Andre Przywara
2022-01-07 14:19 ` Mark Rutland
2021-12-22 18:16 ` [boot-wrapper PATCH v2 9/9] avoid dtc warnings on re-compiling DTB Andre Przywara
2022-01-07 13:59 ` Mark Rutland
2022-01-13 18:42 ` Vladimir Murzin
2022-01-13 19:50 ` Andre Przywara
2022-01-14 8:35 ` Vladimir Murzin
2022-01-14 10:44 ` Mark Rutland
2022-01-14 12:09 ` Andre Przywara
2022-01-19 12:02 ` Mark Rutland
2022-01-07 14:25 ` [boot-wrapper PATCH v2 0/9] Various (build system) fixes Mark Rutland
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=YdhFAvJoo0vt6CCT@FVFF77S0Q05N \
--to=mark.rutland@arm.com \
--cc=andre.przywara@arm.com \
--cc=jaxson.han@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.