From 65013db5941bd608e109269159de8f1db09048bb Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 2 Jun 2020 20:27:52 +0200 Subject: [PATCH] Add ARM linker support files. * lib/linux/arm-mes/elf32-0exit-42.hex2, lib/linux/arm-mes/elf32-0header.hex2, lib/linux/arm-mes/elf32-0hello-mes.hex2, lib/linux/arm-mes/elf32-body-exit-42.hex2, lib/linux/arm-mes/elf32-body-hello-mes.hex2, lib/linux/arm-mes/elf32-footer-single-main.hex2, lib/linux/arm-mes/elf32-header.hex2: New files. --- lib/linux/arm-mes/elf32-0exit-42.hex2 | 34 +++ lib/linux/arm-mes/elf32-0header.hex2 | 88 +++++++ lib/linux/arm-mes/elf32-0hello-mes.hex2 | 50 ++++ lib/linux/arm-mes/elf32-body-exit-42.hex2 | 48 ++++ lib/linux/arm-mes/elf32-body-hello-mes.hex2 | 59 +++++ .../arm-mes/elf32-footer-single-main.hex2 | 65 +++++ lib/linux/arm-mes/elf32-header.hex2 | 228 ++++++++++++++++++ 7 files changed, 572 insertions(+) create mode 100644 lib/linux/arm-mes/elf32-0exit-42.hex2 create mode 100644 lib/linux/arm-mes/elf32-0header.hex2 create mode 100644 lib/linux/arm-mes/elf32-0hello-mes.hex2 create mode 100644 lib/linux/arm-mes/elf32-body-exit-42.hex2 create mode 100644 lib/linux/arm-mes/elf32-body-hello-mes.hex2 create mode 100644 lib/linux/arm-mes/elf32-footer-single-main.hex2 create mode 100644 lib/linux/arm-mes/elf32-header.hex2 diff --git a/lib/linux/arm-mes/elf32-0exit-42.hex2 b/lib/linux/arm-mes/elf32-0exit-42.hex2 new file mode 100644 index 00000000..9f078871 --- /dev/null +++ b/lib/linux/arm-mes/elf32-0exit-42.hex2 @@ -0,0 +1,34 @@ +### GNU Mes --- Maxwell Equations of Software +### Copyright (C) 2017,2019 Jan (janneke) Nieuwenhuizen +### Copyright (C) 2019 Danny Milosavljevic +### +### This file is part of GNU Mes. +### +### GNU Mes is free software; you can redistribute it and/or modify it +### under the terms of the GNU General Public License as published by +### the Free Software Foundation; either version 3 of the License, or (at +### your option) any later version. +### +### GNU Mes is distributed in the hope that it will be useful, but +### WITHOUT ANY WARRANTY; without even the implied warranty of +### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +### GNU General Public License for more details. +### +### You should have received a copy of the GNU General Public License +### along with GNU Mes. If not, see . + +### Commentary: + +# elf32-exit-42.hex2: `exit 42' for arm-linux written in hex2 assembly, +# for usage with elf32-0header.hex2. This produces a 112-byte binary +# (70 hex). Inspiration was taken from GNU Gcc output of exit-42.S. + +### Code: + +# @60 +:ELF_text +01 70 a0 e3 # mov r7,$0x1 +2a 00 a0 e3 # mov r0,$0x2a +00 00 00 ef # swi 0 +03 f0 20 e3 # wfi +:ELF_end diff --git a/lib/linux/arm-mes/elf32-0header.hex2 b/lib/linux/arm-mes/elf32-0header.hex2 new file mode 100644 index 00000000..9c60ca57 --- /dev/null +++ b/lib/linux/arm-mes/elf32-0header.hex2 @@ -0,0 +1,88 @@ +### Copyright (C) 2016 Jeremiah Orians +### Copyright (C) 2017,2019 Jan (janneke) Nieuwenhuizen +### Copyright (C) 2019 Danny Milosavljevic +### +### This file is part of GNU Mes. +### +### GNU Mes is free software; you can redistribute it and/or modify it +### under the terms of the GNU General Public License as published by +### the Free Software Foundation; either version 3 of the License, or (at +### your option) any later version. +### +### GNU Mes is distributed in the hope that it will be useful, but +### WITHOUT ANY WARRANTY; without even the implied warranty of +### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +### GNU General Public License for more details. +### +### You should have received a copy of the GNU General Public License +### along with GNU Mes. If not, see . + +### Commentary: + +# elf32-0header.hex2: Simplest 32 bit elf header in hex2. Only a text +# segment, no data segment, no symbol tables. + +# stage0's hex2 format for arm +# !