linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 00/15] allow BFLT executables on systems with a MMU
@ 2016-07-24 15:30 Nicolas Pitre
  2016-07-24 15:30 ` [PATCH v5 01/15] binfmt_flat: assorted cleanups Nicolas Pitre
                   ` (15 more replies)
  0 siblings, 16 replies; 20+ messages in thread
From: Nicolas Pitre @ 2016-07-24 15:30 UTC (permalink / raw)
  To: linux-arm-kernel

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(-)

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

end of thread, other threads:[~2016-07-26  0:53 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-24 15:30 [PATCH v5 00/15] allow BFLT executables on systems with a MMU Nicolas Pitre
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

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).