message: support loading of more than one elf segment
diff: /*
  * 15.1.2017: extend original version (https://github.com/Solo5/solo5)
  * for HermitCore
  + * 25.2.2017: add SMP support to enable more than one core
  */
  #define _GNU_SOURCE
  @@ -290,6 +291,7 @@ static int load_kernel(uint8_t* mem, char* path)
  Elf64_Phdr *phdr = NULL;
  size_t buflen;
  int fd, ret;
  + int first_load = 1;
  fd = open(path, O_RDONLY);
  if (fd == -1)
  @@ -352,6 +354,9 @@ static int load_kernel(uint8_t* mem, char* path)
  if (!mboot)
  mboot = mem+paddr-GUEST_OFFSET;
  + if (first_load) {
  + first_load = 0;
  +
  // initialize kernel
  *((uint64_t*) (mem+paddr-GUEST_OFFSET + 0x08)) = paddr; // physical start address
  *((uint64_t*) (mem+paddr-GUEST_OFFSET + 0x10)) = guest_size; // physical limit
  @@ -362,6 +367,7 @@ static int load_kernel(uint8_t* mem, char* path)
  *((uint32_t*) (mem+paddr-GUEST_OFFSET + 0x60)) = 1; // numa nodes
  *((uint32_t*) (mem+paddr-GUEST_OFFSET + 0x94)) = 1; // announce uhyve
  }
  + }
  out:
  if (phdr)
  