linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Embedding Position Independent Executables
@ 2016-06-28 22:44 Alexandre Belloni
  2016-06-28 22:44 ` [PATCH v2 1/2] ARM: PIE infrastructure Alexandre Belloni
  2016-06-28 22:44 ` [PATCH v2 2/2] ARM: at91: pm: switch to the " Alexandre Belloni
  0 siblings, 2 replies; 6+ messages in thread
From: Alexandre Belloni @ 2016-06-28 22:44 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

This series introduces Position Independent Executables (PIEs) for the
ARM architecture.
The main goal is to avoid having to write low level code in assembly as
this is currently the case for suspend/resume. Multiple platforms will
benefit from this infrastructure: at91, rockchip, sunxi, am335x.

Changes in v2:
 - handle big endian
 - handle gcov and ftrace by disabling them before compilling the PIE
 - Get the alignment from the original ELF to ensure the PIE is
   properly aligned in SRAM.
 - stop using fncpy
 - rebased on v4.7-rc1

I've still avoided using the ELF header itself to be more efficient.
For example, for atmel, the PIE is 66772 bytes when embedded in an ELF
versus 344 bytes standalone. This is working properly because the PIE
is self standing and correctly padded.

Alexandre Belloni (2):
  ARM: PIE infrastructure
  ARM: at91: pm: switch to the PIE infrastructure

 arch/arm/Kconfig                 |   2 +
 arch/arm/Makefile                |   1 +
 arch/arm/mach-at91/Kconfig       |   1 +
 arch/arm/mach-at91/Makefile      |   2 +-
 arch/arm/mach-at91/pm.c          |  31 ++--
 arch/arm/mach-at91/pm/.gitignore |   2 +
 arch/arm/mach-at91/pm/Makefile   |   3 +
 arch/arm/mach-at91/pm/atmel_pm.c |  97 +++++++++++
 arch/arm/mach-at91/pm_suspend.S  | 338 ---------------------------------------
 arch/arm/pie/Kconfig             |   8 +
 arch/arm/pie/Makefile            |   1 +
 arch/arm/pie/Makefile.pie        |  86 ++++++++++
 arch/arm/pie/lib/empty.c         |  15 ++
 arch/arm/pie/pie.c               |  97 +++++++++++
 arch/arm/pie/pie.lds.S           |  40 +++++
 include/linux/pie.h              | 146 +++++++++++++++++
 16 files changed, 510 insertions(+), 360 deletions(-)
 create mode 100644 arch/arm/mach-at91/pm/.gitignore
 create mode 100644 arch/arm/mach-at91/pm/Makefile
 create mode 100644 arch/arm/mach-at91/pm/atmel_pm.c
 delete mode 100644 arch/arm/mach-at91/pm_suspend.S
 create mode 100644 arch/arm/pie/Kconfig
 create mode 100644 arch/arm/pie/Makefile
 create mode 100644 arch/arm/pie/Makefile.pie
 create mode 100644 arch/arm/pie/lib/empty.c
 create mode 100644 arch/arm/pie/pie.c
 create mode 100644 arch/arm/pie/pie.lds.S
 create mode 100644 include/linux/pie.h

-- 
2.8.1

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-06-29  8:30 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-06-28 22:44 [PATCH v2 0/2] Embedding Position Independent Executables Alexandre Belloni
2016-06-28 22:44 ` [PATCH v2 1/2] ARM: PIE infrastructure Alexandre Belloni
2016-06-28 22:44 ` [PATCH v2 2/2] ARM: at91: pm: switch to the " Alexandre Belloni
2016-06-29  6:12   ` Alexander Stein
2016-06-29  7:57     ` Alexandre Belloni
2016-06-29  8:30       ` Alexander Stein

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 NNTP newsgroup(s).