Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix glibc conflicts in containers #1194

Merged
merged 3 commits into from
Mar 6, 2023
Merged

Fix glibc conflicts in containers #1194

merged 3 commits into from
Mar 6, 2023

Conversation

madisongh
Copy link
Member

This patch series fixes issues with userland libraries that we normally build from sources, against a newer version of glibc, being exported into containers through the Jetson-specific passthrough mechanism. Such exports would result in mismatches with the glibc residing in the container, causing problems like gstreamer plugins failing to load.

The fix is to extend the container runtime's passthrough mechanism to look for exports in a separate subtree first, preferring exports from that tree over files that would normally be found in the normal place in the rootfs. The tegra-container-passthrough recipe is added to populate this tree with NVIDIA's prebuilt copies of libraries and plugins.

The l4t.csv file is updated to refer to the files from their locations in the separate subtree (which uses the same Debian multiarch-style directory naming), and also has some missing entries restored. There are also some changes there to more accurately label symlinks vs. actual files, so the correct passthrough-mount method in the container runtime gets used.

Fixes #857

For constructing a tree of libraries/files from NVIDIA's
prebuilt binary packages, for direct export to containers.

This avoids the problem we have with userland binaries built
from sources being incompatible with older libraries that
reside in the container (primarily glibc).

Signed-off-by: Matt Madison <matt@madison.systems>
to add a patch that supports the use of tree of files to be directly
exported to containers, overriding any files that reside in the normal
host rootfs.  This allows us to export NVIDIA's prebuilt binary userland
libraries to NVIDIA's containers, to ensure compatibility with the library
versions (notably glibc's) that are inside the container.

Signed-off-by: Matt Madison <matt@madison.systems>
* Use the pass-through tree for libraries that need to
  be provided from the NVIDIA prebuilt packages
* Clean up sym vs. lib discrepancies - 'lib' entries must
  be for actual files, 'sym' entries must be actual symlinks
* Fill in missing entries

Signed-off-by: Matt Madison <matt@madison.systems>
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.

Container issues with honister and later branches
1 participant