[make] Build kernel as a PIE binary

Build the kernel as a PIE binary. This requires the following:
 * Compile the kernel with -fPIE and link with -pie
 * Link with --pack-dyn-relocs so that dynamic relocations, mainly
   R_*_RELATIVE relocations, are pre-applied and stored in a
   compact format in the binary

Bug: 80147716
Test: build.py qemu-generic-arm64-test-debug
Change-Id: I771a5af9aa2e8a9314bf1a1ac57063052911e3c4
2 files changed
tree: 857916883b8ad265cd344aaa6ec55cb8976567b6
  1. app/
  2. arch/
  3. dev/
  4. external/
  5. hosttests/
  6. include/
  7. kernel/
  8. lib/
  9. make/
  10. platform/
  11. target/
  12. tools/
  13. top/
  14. .clang-format
  15. .gitignore
  16. build-config-kerneltests
  17. engine.mk
  18. kerneltests-inc.mk
  19. LICENSE
  20. lk_inc.mk.example
  21. makefile
  22. README.md
README.md

LK

The LK embedded kernel. An SMP-aware kernel designed for small systems.

See https://github.com/littlekernel/lk for the latest version.

See https://github.com/littlekernel/lk/wiki for documentation.

Builds

Build Status

To build and test for ARM on linux

  1. install or build qemu. v2.4 and above is recommended.
  2. install gcc for embedded arm (see note 1)
  3. run scripts/do-qemuarm (from the lk directory)
  4. you should see ‘welcome to lk/MP’

This will get you a interactive prompt into LK which is running in qemu arm machine ‘virt’ emulation. type ‘help’ for commands.

note 1: for ubuntu: sudo apt-get install gcc-arm-none-eabi or fetch a prebuilt toolchain from http://newos.org/toolchains/arm-eabi-5.3.0-Linux-x86_64.tar.xz