RFR: JDK-8197571 Change storage location for generated-configure.sh

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Mon Feb 12 13:53:10 UTC 2018

On 2018-02-12 14:47, Thomas Stüfe wrote:
> Hi Magnus,
> Thanks a lot for fixing this! I tried my configuration as described in 
> earlier mails, and the configure scripts gets now created in the 
> output directory as expected.
> Some notes:
> - would it be possible to write out the path name of the generated 
> configure shell script?
Sure, but why? What's the use case? Do you want it only when it is 
generated/updated, or always when running configure?

> - No concern of mine, because I never do this, but just something I 
> noted when looking at the change: it seems before the patch it was 
> possible to start the make from any subdirectory within the source 
> tree and still have the build configuration written to source tree 
> root. That would not work anymore, now builds inside the source tree 
> have to be started from the root of the source tree?

We have never supported running configure in anything but an empty 
director or the source tree root. You will end up with something like:

configure: Current directory is /localhome/hg/jdk-ALT/open/src.
configure: Since this is not the source root, configure will output the 
configuration here
configure: (as opposed to creating a configuration in 
configure: However, this directory is not empty. This is not allowed, 
since it could
configure: seriously mess up just about everything.


> Kind Regards, Thomas
> On Mon, Feb 12, 2018 at 2:09 PM, Magnus Ihse Bursie 
> <magnus.ihse.bursie at oracle.com <mailto:magnus.ihse.bursie at oracle.com>> 
> wrote:
>     In JDK-8195689, the generated-configure.sh was no longer checked
>     in, but locally generated. The selected location for generation
>     ($TOPDIR/.build) was not unproblematic for some use cases. This
>     patch attempts remedy this.
>     The new behaviour will be this:
>      * If run from $TOPDIR, the storage directory will be
>     $TOPDIR/build/.configure-support.
>      * If run from $CUSTOM_ROOT, the storage directory will be
>     $CUSTOM_ROOT/build/.configure-support.
>      * If run from any other directory (about to become the build
>     output directory for the configuration), the storage directory
>     will be $PWD/configure-support.
>     This will allow "rm -rf $TOPDIR/build" to function as before to
>     remove all build artifacts. It will allow configuration created in
>     out-of-tree directories to have the script generated locally.
>     I could not put the output file in build/$BUILD/configure-support,
>     since the $BUILD name is not yet determined. I did not want to put
>     it in build/configure-support, since that would make it look like
>     a configuration to the code that enumerates configurations in build.
>     I hope this addresses all issues that has been raised.
>     Bug: https://bugs.openjdk.java.net/browse/JDK-8197571
>     <https://bugs.openjdk.java.net/browse/JDK-8197571>
>     WebRev:
>     http://cr.openjdk.java.net/~ihse/JDK-8197571-change-storage-location-for-generated-configure/webrev.01
>     <http://cr.openjdk.java.net/%7Eihse/JDK-8197571-change-storage-location-for-generated-configure/webrev.01>
>     /Magnus

More information about the build-dev mailing list