-
-
Notifications
You must be signed in to change notification settings - Fork 9.9k
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
keg_relocate: Don't relocate dylib IDs containing metavariables. #2036
Conversation
I've confirmed locally that this patch fixes the problem we ran into locally, thanks for the quick fix @woodruffw! |
@UniqMartin do you mind taking a look at this? |
@tdsmith given https://github.com/Homebrew/homebrew-science/issues/5173 I wonder if we need to think twice before shipping this. |
@woodruffw says in the rust ticket:
If I understand that correctly I don't think this directly impacts netcdf, since the netcdf issue is related to using |
Yep, that's correct. This PR should only prevent the rewriting of dylib IDs, not change the current behavior w/r/t linked libraries. |
🎊 |
See Homebrew/brew#2036 See rust-lang/rust#39870 Closes #10198. Signed-off-by: ilovezfs <ilovezfs@icloud.com>
Since there's a good chance we'll be reverting this, I'm trying to get to the bottom of why we were skipping metavariables in the first place. Looks like it got introduced here, way back in 2012: bd4f69a Any recollection of the reason for that change @jacknagel? |
Mmm, not much. If I had to guess I'd say it was resulting in incorrect linkages, and leaving the Shame on me for not writing a good commit message. 😿 |
That helps a bit. I suppose the linkage could be broken pretty easily if the file specifies a different prefix under a I'll do some sleuthing in my local installation.
Don't sweat it; I dug up a 5 year old commit on the slim chance that you might remember it 😄 |
Unfortunately this change broke
|
So one option is to change the LLVM test with something like
|
Hmm. Our ultimate goal should probably be to not exclude metavariables from relocation, so I think that reverting this is the right move. I can create a PR for that in a bit if you'd like, @ilovezfs. |
Homebrew/brew#2036 no longer rewrites @rpath in dylib IDs, which changes the llvm bottle contents and requires a corresponding change in the test
Homebrew/brew#2036 no longer rewrites @rpath in dylib IDs, which changes the llvm bottle contents and requires a corresponding change in the test Closes #10808. Signed-off-by: ilovezfs <ilovezfs@icloud.com>
Same problem with lapack test: Homebrew/homebrew-core#12033 |
I don't know for sure why things regarding rewriting of library paths are (or have been) the way they are, but I have some ideas, cf. rust-lang/rust#39870 (comment). To summarize: The rewriting of dylib IDs helps to avoid problems by libraries and software not properly ported to macOS with some collateral damage (broken relocatability of software that gets everything right) that is acceptable per the goals of the Homebrew project. Also sorry for this incredibly late response. If things have developed further in this area, I'm decently out of touch with more recent developments in Homebrew land … |
brew tests
with your changes locally?This is a WIP and still being tested locally, I'll reword the commit when it's ready.
see rust-lang/rust#39870
cc @alexcrichton @ilovezfs