Thanks for clearing this up. I will keep it in mind.
Best, Rumen ________________________________ From: Josef Söntgen josef.soentgen@genode-labs.com Sent: Monday, August 19, 2024 8:19 AM To: Genode users mailing list users@lists.genode.org Subject: Re: ext4.h not found
Hi Rumen,
I want to test out lwext4, however when I try to compile it, I get an error that ext4.h was not found. I have attached my main.cc, target.mk and squid.run files below. The platform I am using is x86_64 linux. If anyone knows has any idea how to link the lwext4 library please let me know, as I could not find much information online. […] TARGET = squid SRC_CC = main.cc LIBS = posix vfs_lwext4
you have to use the 'lwext4' library rather than 'vfs_lwext4', which itself is a user of the library and a VFS plugin dynamically loaded at run-time. The plugin may illustrate how to interact with the library, you have to provide your own block backend though.
That being said, if you only want to access an Ext4 file-system from your component adapting the configuration to use of the existing VFS lwext4 plugin is easier. The run-script you have shown is actually configured in this way and the VFS fs plugin (instantiated via the '<fs/>' node) should already allow for accssing the file-system via the pre configured 'vfs' server utilizing the VFS lwext4 plugin.
Your squid component, one the other hand, has to be adapted. I noticed that you reference the 'posix' library in your target.mk. This, however, implies using a component making use of the 'libc' and requiring the common 'main()' function as entry-point for the component. So, depending on what you want to achieve, building a POSIX component entails solely linking against 'posix' and 'libc' and only utilize the POSIX API.
If you want to go down the road of building a native Genode component I suggest to take a look at the 'fs_tool' (repos/gems/src/app/fs_tool) component that excercises Genode's native API and also makes use of the VFS still allowing for using 'vfs_lwext4'.
Of course you are still free to use 'lwext4' directly but that is more involved and subtly advised against that.
Regards Josef
-- Josef Söntgen Genode Labs