building fiasco on alpine linux

Michael Schnupp Michael_Schnupp at genua.de
Sat Jun 25 15:35:56 CEST 2016


On Fri, Jun 24, 2016 at 12:05:43AM +0200, Adam Lackorzynski wrote:
> 
> I gave this a try with Alpine 3.4 and just the -fno-pic addition made it
> compile for me. However, the error message while compiling was
> different. Thus: Which version do you use?

I'm currently using a fresh install of the current Alpine 3.4. Everything is amd64.

  $ uname -a
  Linux alpine 4.4.11-0-grsec #1-Alpine SMP Fri May 20 08:35:18 GMT 2016 x86_64 Linux
  $ gcc --version
  gcc (Alpine 5.3.0) 5.3.0

I use am minimally configured fiasco from the current public snapshot.

  tar xf l4re-snapshot-2016060908.tar.bz2
  make -C l4re-snapshot-2016060908/src/kernel/fiasco/ B=$PWD/fiasco
  echo "CONFIG_AMD64=y" >fiasco/globalconfig.out
  make -C fiasco olddefconfig
  make -C fiasco V=0 SHARED_FLAGS=-fno-pic

This results in:

  ==> Linking fiasco.image
  boot_img.o: In function `bootstrap_bootstrap':
  (.bootstrap.text+0x98): relocation truncated to fit: R_X86_64_32 against symbol `_start' defined in .text section in crt0.o
  boot_img.o: In function `bootstrap_bootstrap':
  (.bootstrap.text+0x39b): undefined reference to `__stack_chk_fail'
  boot_img.o: In function `bootstrap__Z14base_cpu_setupv':
  (.bootstrap.text+0x5b0): undefined reference to `__stack_chk_fail'
  boot_img.o: In function `bootstrap_printf':
  (.bootstrap.text+0xb09): undefined reference to `__stack_chk_fail'
  boot_img.o: In function `bootstrap_vprintf':
  (.bootstrap.text+0xb7e): undefined reference to `__stack_chk_fail'
  boot_img.o: In function `bootstrap___v_printf':
  (.bootstrap.text+0x141a): undefined reference to `__stack_chk_fail'
  kip_init-ia32.o: In function `Kip_init::init()':
  kip_init-ia32.cc:(.initcall.text+0x25): relocation truncated to fit: R_X86_64_32 against symbol `my_kernel_info_page' defined in .kernel_info_page section in kip_init-ia32.o
  kip_init-ia32.cc:(.initcall.text+0xe8): relocation truncated to fit: R_X86_64_32 against symbol `_kernel_image_start' defined in .kip section in fiasco.image
  kip_init-ia32.cc:(.initcall.text+0xf8): relocation truncated to fit: R_X86_64_32 against symbol `_end' defined in .bss section in fiasco.image
  kip_init-ia32.cc:(.initcall.text+0x2a5): relocation truncated to fit: R_X86_64_32 against symbol `_kernel_image_start' defined in .kip section in fiasco.image
  kip_init-ia32.cc:(.initcall.text+0x32b): relocation truncated to fit: R_X86_64_32 against symbol `_end' defined in .bss section in fiasco.image
  kip_init-ia32.cc:(.initcall.text+0x36c): relocation truncated to fit: R_X86_64_32 against symbol `_kernel_image_start' defined in .kip section in fiasco.image
  kip_init-ia32.cc:(.initcall.text+0x3a3): relocation truncated to fit: R_X86_64_32 against symbol `_end' defined in .bss section in fiasco.image
  kip_init-ia32.o:kip_init-ia32.cc:(.initcall.text+0x3ce): more undefined references to `__stack_chk_fail' follow
  libabi.a(kip.o): In function `Kip::add_mem_region(Mem_desc const&)':
  kip.cc:(.text+0x61): relocation truncated to fit: R_X86_64_32 against `.rodata.str1.8'
  thread-ia32.o: In function `Thread::handle_int3(Trap_state*)':
  thread-ia32.cc:(.text+0x55): relocation truncated to fit: R_X86_64_32 against `.rodata.str1.1'
  thread-ia32.cc:(.text+0x14e): additional relocation overflows omitted from the output
  .../l4re-snapshot-2016060908/src/kernel/fiasco/src/boot/amd64/Makerules.BOOT.amd64:29: recipe for target 'fiasco.image' failed

If I replace '-fno-pic' with '-D__KERNEL__' it will no longer complain about the undefiend reference, but still complain about the trucated relocation.

It is no big problem if it does not compile on this kind of system.
It only felt like there might be an easy fix.



More information about the l4-hackers mailing list