-
Notifications
You must be signed in to change notification settings - Fork 5.7k
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
8340075: Autoconf bundle cannot run on read-only filesystem #20978
Conversation
👋 Welcome back erikj! A progress list of the required criteria for merging this PR into |
@erikj79 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 16 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 |
/integrate |
Going to push as commit 3aa8338.
Your commit was automatically rebased without conflicts. |
The autoconf launcher script in the autoconf bundle created by
make/devkit/createAutoconf.sh
currently writes a config file into the bundle installation dir every time it runs. This prevents it from functioning when installed on a read-only filesystem. We can work around the need for writing to this config file by instead adding a parameter to the command line sent to the actual autoconf executable.This is what the script adds to the config file (with the $this_script_dir variable expanded):
begin-language: "M4sugar"
args: --prepend-include $this_script_dir/usr/share/autoconf
end-language: "M4sugar"
Looking at the original config file, it has several lines similar to this where the --prepend-include arg points to $PREFIX/usr/share/autoconf (where $PREFIX was specified at autoconf build time). Removing this addition from the config file causes autoconf to fail as it can't find m4sugar.m4 (which is located in $this_script_dir/usr/share/autoconf).
My proposed workaround, is to just add
--prepend-include $this_script_dir/usr/share/autoconf
as a command line option to the real autoconf script, which we call from the wrapper script. This would have the benefit of also fixing the other instances of this that are present in the config file, but that we aren't using in our configure script.In addition to this, I made the script conform better to the current standard for these bundle creation scripts. The output should end up in a sub directory of
build
. No temp dirs should be used instead of the build dir. I also added some automation for setting the target platform tuple based onuname
for the most common platforms, and added the ability to override for any others, without having to edit the file.Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/20978/head:pull/20978
$ git checkout pull/20978
Update a local copy of the PR:
$ git checkout pull/20978
$ git pull https://git.openjdk.org/jdk.git pull/20978/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 20978
View PR using the GUI difftool:
$ git pr show -t 20978
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/20978.diff
Webrev
Link to Webrev Comment