Re: 23.10.1 amd64 l4linux doesn't build

Adam Lackorzynski <[email protected]> Thu, 11 Apr 2024 21:55:24 +0200
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
Hi Richard,

On Thu Apr 11, 2024 at 17:51:40 +0000, Richard Clark wrote:
> Adam,
> 
> Thank you for the response!
> 
> I'm building on a fresh install of linux mint cinnamon.
> That should be irrelevant as the build should be using its own include files, not that of the host.

Ah! Building Linux requires to have libelf-dev installed nowadays, for
building the objtool tool.

> Yes, everyone and their sister has a virtual machine nowadays. These are of limited use, however.
> There are instances where the user-space runtime directly on top of the l4 kernel (native l4 app) is extremely useful.

Absolutely.

> There are also instances where it is helpful to have a full unikernel to run paravirtualized directly on top of the l4 kernel.

Yep.

> And of course, completely untrusted code which is expected to be attacked and owned gets
> sandboxed into its own virtual space. I have use for all three cases.

Sure.

All that is possible of course. I was just referring to the different
virtualization options and did not want to exclude the other options
besides virtualization.

> I'm (was?) assuming that running a multicore AMD64 linux in a vm is functional, and am exploring the
> other two options.

Good assumption :)

> I wanted to check the paravirtualzed version first since there seems to be some
> instructions for it. It comes packaged alongside the snapshots.

Yep. The snapshot also has some targets for running uvmm VMs.
Please check the screencasts at https://l4re.org/cast-multi-vm-qemu.html


Adam

> 
> Here is about where it seems to go astray:
> 
> ===============================================
>   For quick build instructions, please visit:
>     http://wiki.tudos.org/Quickstart
>     http://l4linux.org/build.shtml
> ===============================================
>   DESCEND objtool
> <stdin>:1:10: fatal error: libelf.h: No such file or directory
> compilation terminated.
>   CALL    /home/webadmin/Fiasco/l4re-snapshot-23.10.1/src/l4linux/scripts/checksyscalls.sh
>   INSTALL libsubcmd_headers
>   HOSTLD  scripts/mod/modpost
>   CC      kernel/bounds.s
>   CHKSHA1 /home/webadmin/Fiasco/l4re-snapshot-23.10.1/src/l4linux/include/linux/atomic/atomic-arch-fallback.h
>   UPD     include/generated/timeconst.h
>   CHKSHA1 /home/webadmin/Fiasco/l4re-snapshot-23.10.1/src/l4linux/include/linux/atomic/atomic-instrumented.h
>   CHKSHA1 /home/webadmin/Fiasco/l4re-snapshot-23.10.1/src/l4linux/include/linux/atomic/atomic-long.h
>   CC      /home/webadmin/Fiasco/l4re-snapshot-23.10.1/obj/l4linux/amd64/tools/objtool/arch/x86/special.o
>   MKDIR   /home/webadmin/Fiasco/l4re-snapshot-23.10.1/obj/l4linux/amd64/tools/objtool/arch/x86/lib/
>   CC      /home/webadmin/Fiasco/l4re-snapshot-23.10.1/obj/l4linux/amd64/tools/objtool/weak.o
>   GEN     /home/webadmin/Fiasco/l4re-snapshot-23.10.1/obj/l4linux/amd64/tools/objtool/arch/x86/lib/inat-tables.c
> In file included from /home/webadmin/Fiasco/l4re-snapshot-23.10.1/src/l4linux/tools/objtool/include/objtool/objtool.h:13,
>                  from /home/webadmin/Fiasco/l4re-snapshot-23.10.1/src/l4linux/tools/objtool/include/objtool/arch.h:11,
>                  from /home/webadmin/Fiasco/l4re-snapshot-23.10.1/src/l4linux/tools/objtool/include/objtool/check.h:11,
>                  from /home/webadmin/Fiasco/l4re-snapshot-23.10.1/src/l4linux/tools/objtool/include/objtool/special.h:10,
>                  from arch/x86/special.c:4:
> /home/webadmin/Fiasco/l4re-snapshot-23.10.1/src/l4linux/tools/objtool/include/objtool/elf.h:37:9: error: unknown type name ‘GElf_Shdr’
>    37 |         GElf_Shdr sh;
>       |         ^~~~~~~~~
> /home/webadmin/Fiasco/l4re-snapshot-23.10.1/src/l4linux/tools/objtool/include/objtool/elf.h:42:9: error: unknown type name ‘Elf_Data’
>    42 |         Elf_Data *data;
>       |         ^~~~~~~~
> /home/webadmin/Fiasco/l4re-snapshot-23.10.1/src/l4linux/tools/objtool/include/objtool/elf.h:54:9: error: unknown type name ‘GElf_Sym’
>    54 |         GElf_Sym sym;
>       |         ^~~~~~~~
> /home/webadmin/Fiasco/l4re-snapshot-23.10.1/src/l4linux/tools/objtool/include/objtool/elf.h:82:9: error: unknown type name ‘Elf’
>    82 |         Elf *elf;
>       |         ^~~
> 
> 
> Thanks!
> 
> Richard
> 
> 
> 
> 
> 
> ________________________________
> From: Adam Lackorzynski <[email protected]>
> Sent: Thursday, April 11, 2024 1:18 PM
> To: Richard Clark <[email protected]>; [email protected] <[email protected]>
> Subject: Re: 23.10.1 amd64 l4linux doesn't build
> 
> [EXTERNAL]
> 
> Hi Richard,
> 
> which Linux variant are you doing this on, out of curiosity? This is
> typically assembled on stable Debian, so it's good to know the
> difference.
> 
> On another note, regarding virtualization, please focus on uvmm instead
> of L4Linux. L4Linux is pure paravirtualization while on today's systems
> we obviosly want to exploit the CPUs virtualization support capabilities
> which uvmm does nicely.
> 
> 
> Best regards, Adam
> 
> On Thu Apr 11, 2024 at 14:47:55 +0000, Richard Clark wrote:
> > Hi!
> >
> > I'm doing microkernel evaluations for a US gov't contract to find a nice shiny new replacement for
> > the dismal little l4 microkernel they've been using and failing with... Fiasco/L4/L4linux seems to
> > be a wonderfully full-featured software platform that easily fits the bill. Separation/Capability
> > microkernel, fully developed user space, l4-native linux, and even a vmm that runs a sandboxed linux.
> >
> > Latest build with snapshot 23.10.1 and l4linux 23.10.1 seems the amd64 l4linux is broken with
> > issues in libelf.h, gelf.h, and elf.h.  32bit build seems to build ok.
> >
> > Still trying to get something up and running. I'll try 32-bit with qemu for now. I do need 64-bit to
> > compile and run, so I would appreciate any info on how to fix the build issues.
_______________________________________________
l4-hackers mailing list -- [email protected]
To unsubscribe send an email to [email protected]