-
Notifications
You must be signed in to change notification settings - Fork 363
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
Enhance requires with version information from the build root. #2372
Draft
gordonmessmer
wants to merge
14
commits into
rpm-software-management:master
Choose a base branch
from
gordonmessmer:enhance-requires
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Enhance requires with version information from the build root. #2372
gordonmessmer
wants to merge
14
commits into
rpm-software-management:master
from
gordonmessmer:enhance-requires
Commits on Mar 11, 2024
-
Enhance requires with version information from the build root.
The --libtool-version-fallback option will cause elfdeps to try to use the version information in the shared object's filename for shared objects that don't provide versioned symbols. This additional information allows rpm to track minor-version dependencies. When dlmopen() loads a library, it runs functions with the __attribute__((constructor)) function attribute, and when they are closed, it runs functions with __attribute__((destructor)). This isn't always safe. Some libraries (like gobject) do not support being opened and closed, and they'll result in a SEGV if they're opened more than once. That will happen if elfdeps examines a shared object that is linked to gobject, and then later another one (or libgobject itself). However, if we fork and then open only one shared object and then exit, we don't cause that problem.
Configuration menu - View commit details
-
Copy full SHA for 9450b5f - Browse repository at this point
Copy the full SHA 9450b5fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2ee4efd - Browse repository at this point
Copy the full SHA 2ee4efdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 36c3f93 - Browse repository at this point
Copy the full SHA 36c3f93View commit details -
Configuration menu - View commit details
-
Copy full SHA for b94b314 - Browse repository at this point
Copy the full SHA b94b314View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9ad633e - Browse repository at this point
Copy the full SHA 9ad633eView commit details -
Configuration menu - View commit details
-
Copy full SHA for c7ab5b1 - Browse repository at this point
Copy the full SHA c7ab5b1View commit details -
Configuration menu - View commit details
-
Copy full SHA for dc08d7c - Browse repository at this point
Copy the full SHA dc08d7cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 302bcc0 - Browse repository at this point
Copy the full SHA 302bcc0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 09aeee2 - Browse repository at this point
Copy the full SHA 09aeee2View commit details -
Add tests for the elf dependency generator fallback version feature.
These tests are not compatible with fakechroot, for two reasons. While fakechroot supports dlmopen(), it will convert relative paths to absolute paths, which prevents library path searching. The test could be run from the data directory so that the relative path's absolute path expansion was correct, and dlmopen() will succeed. However, linkmap->l_name will have the real path, not a chrooted path, and when that is passed to readlink(), fakechroot will try to expand a path that already includes the chroot prefix. So, even when the library can be loaded with dlmopen(), the symlink can't be resolved to find the path that contains the version.
Configuration menu - View commit details
-
Copy full SHA for 207ac2e - Browse repository at this point
Copy the full SHA 207ac2eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7fd2201 - Browse repository at this point
Copy the full SHA 7fd2201View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7445008 - Browse repository at this point
Copy the full SHA 7445008View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3c412b8 - Browse repository at this point
Copy the full SHA 3c412b8View commit details
Commits on Mar 20, 2024
-
Rather than read the version for an ELF shared object directly
from the symlink target, generate ".elf-version/<so>" files containing the value of the _elf_so_version macro. These files are then used by the elfdeps tool to generate the provides and requires.
Configuration menu - View commit details
-
Copy full SHA for 9cb6fc8 - Browse repository at this point
Copy the full SHA 9cb6fc8View commit details
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.