Skip to content

Conversation

@mazunki
Copy link
Contributor

@mazunki mazunki commented Oct 19, 2025

In order to more easily get clangd happy, I've set up ${dependency}.include and ${dependency}.lib targets to all deps/ (except lest, which is header-only. We should consider precompiling it), instead of requiring to guess these paths every time they're used.

I've also nixified deps/libfdt. Prior to this, we were hoping it was installed on the system, and somehow that was ok. Now we're properly depending on it.

Lastly, I've patched s2n-tls so that it actually compiles. It's still not linking due to -lgcc_eh, due to static builds... but better something than nothing.

@mazunki
Copy link
Contributor Author

mazunki commented Oct 19, 2025

There is a question about include-paths of dependencies. Do we strictly want all dependencies to be placed in a subdirectory (unless, of course, this is already done upstream)? This seems to be a bit inconsistent.

Tests are good.

@mazunki
Copy link
Contributor Author

mazunki commented Oct 19, 2025

The paths for lest don't seem to be fuully working just yet despite the include path being right. Probably missing something: ./test/lest_util/*.h should probably be part of ./deps/lest/utils or something instead. They're not a test.

@mazunki
Copy link
Contributor Author

mazunki commented Oct 23, 2025

lest does work. It's just that some tests use top level declarations which confuses the LSP. Might wanna wrap them into a static specification[] array.

@mazunki
Copy link
Contributor Author

mazunki commented Oct 28, 2025

Rebased to fix merge conflicts, but there's still the question of whether we want to strictly enforce including headers coming from dependency as #include <dependency/header.hpp>. I have separated include and include_root for this purpose.

Copy link
Member

@MagnusS MagnusS left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I started reviewing this, but the changes are mixed with indentation updates (mainly due to added "let") and renamed files, making it hard to see your actual changes. Please move cleanup/formatting to a separate PR that only focusses on this

# most clangd configurations and editors will look in ./build/, but this just makes it easier to find for some niche edge cases
ln -sfn "${buildpath}/compile_commands.json" "$IOS_SRC/compile_commands.json"
# ln -sfn "${buildpath}/compile_commands.json" "$IOS_SRC/compile_commands.json"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If no longer needed, just remove the line?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are some issues caused by reusing the same build/ directory between IncludeOS, tests and the example unikernel. I left the line around until this is properly fixed so it's easy to uncomment for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants