Skip to content

Add support for illumos and the Sidecar platform#3

Merged
Nieuwejaar merged 2 commits into
oxidefrom
nils
Mar 20, 2025
Merged

Add support for illumos and the Sidecar platform#3
Nieuwejaar merged 2 commits into
oxidefrom
nils

Conversation

@Nieuwejaar

@Nieuwejaar Nieuwejaar commented Mar 5, 2025

Copy link
Copy Markdown
Collaborator

For the purposes of review, it would be best to focus on the files under the oxide/ directory. Most of the changes to the rest of the files are ported directly (well, as directly as possible) from changes we made to the closed source SDE, and thus have already been reviewed. I was port each prior changeset individually, but that quickly proved to be untenable.

One item in particular that may need further explanation is oxide/wrap_libport_mgr_hw. The open source SDE comes with a pre-built library that was linked against a specific version of the linux glibc. This wrapper splits that library back into its original .o files, provides a shim that implements the needed glibc functions, and relinks the library for helios.

The source for that library is available in the closed-source repo, so we are technically able to build our own helios-compatible binary block directly, but I'm not sure our license would allow us to put the resulting blob into this repo. That's worth looking into in the future and is tracked as issue #1.

@zeeshanlakhani zeeshanlakhani left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Mostly, a few super minor things here, as things look to be building appropriately.

Comment thread oxide/wrap_libport_mgr_hw/shim.c Outdated
@@ -0,0 +1,72 @@
void *stdout;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Should we have a file-header comment about this shim file and what they are shimming/attached-to?

I know you mentioned this in the PR.

One item in particular that may need further explanation is oxide/wrap_libport_mgr_hw. The open source SDE comes with a pre-built library that was linked against a specific version of the linux glibc. This wrapper splits that library back into its original .o files, provides a shim that implements the needed glibc functions, and relinks the library for helios.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Yeah, that's a good point.

I also changed how stdout is being defined. As far as I can tell from looking at the closed source code, the wrapped library would never try to use stdout from tofino2 code, so the fact that this was an uninitialized symbol shouldn't matter. Still, it seems like good hygiene to actually initialize it, even if it's a bit awkward.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Do we need this file and/or do we want changelogs for helios?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

It's only needed to keep the debian package builder happy. The builder doesn't care what, if anything, is in it - it just needs to see the file.

Comment thread README.md
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