-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
8320931: [REDO] dsymutil command leaves around temporary directories #16876
Conversation
👋 Welcome back jpai! A progress list of the required criteria for merging this PR into |
Webrevs
|
Hm, I'm not entirely sure about this. It looks quite ugly, and we'll be stuck with it like forever. :-( First of all, I think you should add the env var prefix to the DSYMUTIL variable itself, in configure. This is not only to make the makefile less ugly, but since you'd want the same workaround if we were to execute dsymutil elsewhere. (I actually missed this in the previous version of the fix.) Then, I think it might be worth adding a version check of dsymutil, before prepending this variable, so that we can eventually get rid of this. |
Hello Magnus, thank you for those inputs. Based on that I've now modified this PR to check if the I started off with using the Apple LLVM version 15.0.0
Optimized build.
Default target: arm64-apple-darwin23.1.0
Host CPU: apple-m1 I think we can't rely on the version numbers of dsymutil alone to decide whether or not to set the So I decided to add a check in the build configuration to see if I have tested this change locally with:
which doesn't support this option and with:
which supports this option. I've verified that the build change correctly sets the tier1, tier2 and tier3 testing with this change is currently in progress. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it looks good. It would be great if we could have this tested by the people who ran into issues with the original implementation. I don't know who they were, though. I'll see if I can dig through the archives and find some to ping.
@jaikiran This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 32 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details. ➡️ To integrate this PR with the above commit message to the |
@RealCLanger Hello Christoph, in https://bugs.openjdk.org/browse/JDK-8320863 you noted that you ran into a build issue with Xcode version 13.1. Would you be able to test this current proposed patch in this PR against that setup (and any other setups you might have access to) and see if it builds fine? |
I have verified that configuring with an older devkit works as intended, i.e. the |
I'm testing this currently. Will let you know the result tomorrow. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, passes SAP's build setup.
Thank you Christoph for running the tests. |
I have now tested this with Xcode 15.0 as well and confirm that it works. I think this means that you can safely integrate now. |
Thank you Magnus and others for helping review and test this change. |
/integrate |
Going to push as commit 6f7bb79.
Your commit was automatically rebased without conflicts. |
Can I please get a review of this change will attempts to workaround an issue in dsymutil?
The previous attempt to use
--reproducer Off
has shown that it fails to build on some other Xcode versions other than 14.3.1. Users have reported it to fail on Xcode 15.0.1 and Xcode from a 12.4 devkit. The--reproducer
option isn't being recognized on those versions.This current PR proposes to use an alternate workaround, one which just sets an environment variable that Xcode 14.3.1 recognizes and prevents the creation of the leftover
dsymutil-*
temporary directories. Since this new approach uses an environment variable to workaround the issue, the command itself shouldn't ideally run into any usage issues. Once we agree upon this change, before integrating, I'll ask for inputs from those who had run into build issues to verify this alternate approach doesn't cause problems.I have locally verified that this new approach continues to work and doesn't create those temporary directories. Additionally tier1, tier2, tier3 has completed successfully in our CI environment with this change.
Magnus, Erik, I looked around to see if there's any convention in setting such environment variables that will be used when invoking external tools during the build. I didn't find any similar usage. Although the current change in this PR is working, if there's a different and better way to do this, please do let me know.
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/16876/head:pull/16876
$ git checkout pull/16876
Update a local copy of the PR:
$ git checkout pull/16876
$ git pull https://git.openjdk.org/jdk.git pull/16876/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 16876
View PR using the GUI difftool:
$ git pr show -t 16876
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/16876.diff
Webrev
Link to Webrev Comment