linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: nicolas.pitre@linaro.org (Nicolas Pitre)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 00/15] allow BFLT executables on systems with a MMU
Date: Sun, 24 Jul 2016 11:30:14 -0400	[thread overview]
Message-ID: <1469374229-21585-1-git-send-email-nicolas.pitre@linaro.org> (raw)

This series provides the necessary changes to allow "flat" executable
binaries meant for no-MMU systems to actually run on systems with a MMU.
Also thrown in are various cleanups to binfmt_flat.c.

This can also be found in the following git repo:

	git://git.linaro.org/people/nicolas.pitre/linux binfmt_flat_with_mmu

*Why?*

Because developing and testing natively on a large system with lots of
RAM makes it so much more convenient to use all the existing profiling
tools and debugging facilities that a kernel with lots of RAM can give.
And incidentally, those systems with lots of RAM all have a MMU.

*Why not use elf_fdpic?*

The flat executable format is simple with very small footprint
overhead, either in the executables themselves or kernel support.
This makes the flat format more suitable than elf_fdpic for very small
single user-app embedded systems.

And while elf_fdpic binaries can run on MMU systems, flat binaries still
couldn't, which just felt wrong.

So here it is. The no-MMU support should remain unaffected, confirmed by
Greg Ungerer. Tested with MMU on ARM and M68K.

Changes since v4:

- Isolated architecture specific changes in their own patches for easier
  review through their own path to mainline.

- Added needed m68k register fixup from Greg Ungerer.

Changes since v3:

- Small cosmetic changes to pr_*().

- Addressed most important checkpatch complaints on the whole source file
  and patches in this seris.

Changes since  v2:

- Added protection against a corrupted header that could have caused nasty
  overflows etc. Suggested by Alan Cox.

- printk() modernization. Suggested by Greg Ungerer / Geert Uytterhoeven.

- Added Greg Ungerer's reviewed-by tag.

Changes since v1:

- Removed SuperH and Xtensa from the Kconfig rule as they fail to build
  due to lack of get/put_unaligned_user().

- Clarified some commit logs a bit.

diffstat:

 arch/arm/include/asm/flat.h       |   5 +-
 arch/m68k/include/asm/flat.h      |  11 +-
 arch/m68k/include/asm/processor.h |   2 -
 fs/Kconfig.binfmt                 |   3 +-
 fs/binfmt_elf_fdpic.c             |  38 +--
 fs/binfmt_flat.c                  | 525 ++++++++++++++++++--------------
 fs/exec.c                         |  33 ++
 include/linux/binfmts.h           |   2 +
 8 files changed, 345 insertions(+), 274 deletions(-)

             reply	other threads:[~2016-07-24 15:30 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-24 15:30 Nicolas Pitre [this message]
2016-07-24 15:30 ` [PATCH v5 01/15] binfmt_flat: assorted cleanups Nicolas Pitre
2016-07-24 15:30 ` [PATCH v5 02/15] binfmt_flat: convert printk invocations to their modern form Nicolas Pitre
2016-07-24 15:30 ` [PATCH v5 03/15] binfmt_flat: prevent kernel dammage from corrupted executable headers Nicolas Pitre
2016-07-24 15:30 ` [PATCH v5 04/15] elf_fdpic_transfer_args_to_stack(): make it generic Nicolas Pitre
2016-07-24 15:30 ` [PATCH v5 05/15] binfmt_flat: use generic transfer_args_to_stack() Nicolas Pitre
2016-07-24 15:30 ` [PATCH v5 06/15] binfmt_flat: clean up create_flat_tables() and stack accesses Nicolas Pitre
2016-07-24 15:30 ` [PATCH v5 07/15] binfmt_flat: use proper user space accessors with relocs processing code Nicolas Pitre
2016-07-24 15:30 ` [PATCH v5 08/15] binfmt_flat: use proper user space accessors with old relocs code Nicolas Pitre
2016-07-24 15:30 ` [PATCH v5 09/15] binfmt_flat: use clear_user() rather than memset() to clear .bss Nicolas Pitre
2016-07-24 15:30 ` [PATCH v5 10/15] binfmt_flat: update libraries' data segment pointer with userspace accessors Nicolas Pitre
2016-07-24 15:30 ` [PATCH v5 11/15] binfmt_flat: add MMU-specific support Nicolas Pitre
2016-07-24 15:30 ` [PATCH v5 12/15] binfmt_flat: allow compressed flat binary format to work on MMU systems Nicolas Pitre
2016-07-24 19:48   ` Arnd Bergmann
2016-07-24 20:25     ` Nicolas Pitre
2016-07-25  8:18       ` Arnd Bergmann
2016-07-24 15:30 ` [PATCH v5 13/15] m68k: fix bFLT executable running on MMU enabled systems Nicolas Pitre
2016-07-24 15:30 ` [PATCH v5 14/15] m68k: enable binfmt_flat on systems with an MMU Nicolas Pitre
2016-07-24 15:30 ` [PATCH v5 15/15] ARM: " Nicolas Pitre
2016-07-26  0:53 ` [PATCH v5 00/15] allow BFLT executables on systems with a MMU Greg Ungerer

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=1469374229-21585-1-git-send-email-nicolas.pitre@linaro.org \
    --to=nicolas.pitre@linaro.org \
    --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 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).