[bug #57676] openjdk11 fails to build with make 4.3

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

[bug #57676] openjdk11 fails to build with make 4.3

Bogdan Barbu
URL:
  <https://savannah.gnu.org/bugs/?57676>

                 Summary: openjdk11 fails to build with make 4.3
                 Project: make
            Submitted by: ncopa
            Submitted on: Mon 27 Jan 2020 11:46:20 AM UTC
                Severity: 3 - Normal
              Item Group: Bug
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
       Component Version: 4.3
        Operating System: POSIX-Based
           Fixed Release: None
           Triage Status: None

    _______________________________________________________

Details:

(I tried to send this to [hidden email] but it appears to have disappeared
somewhere)

openjdk11 builds fine with make 4.2.1 but with 4.3 we get following error on
Alpine linux, on all our architectures (aarch64, ppc64le, s390x, x86_64):

-------------------------------------------------------------------------------------
Build performance summary:
* Cores to use:   48
* Memory limit:   257866 MB

WARNING: Your build output directory is not on a local disk.
This will severely degrade build performance!
It is recommended that you create an output directory on a local disk,
and run the configure script again from that directory.

The following warnings were produced. Repeated here for convenience:
WARNING: using cross tools not prefixed with host triplet

Building target 'images' in configuration
'linux-x86_64-normal-server-release'
Warning: No SCM configuration present and no .src-rev
make[3]: *** No rule to make target
'/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.5+10/build/linux-x86_64-normal-server-release/make-support/vardeps/make/ReleaseFile.gmk/create-info-file.vardeps',
needed by
'/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.5+10/build/linux-x86_64-normal-server-release/jdk/release'.
 Stop.
make[3]: *** No rule to make target
'/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.5+10/build/linux-x86_64-normal-server-release/buildtools/langtools_tools_classes/_the.BUILD_TOOLS_LANGTOOLS.vardeps',
needed by
'/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.5+10/build/linux-x86_64-normal-server-release/buildtools/langtools_tools_classes/_the.BUILD_TOOLS_LANGTOOLS_batch'.
 Stop.
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [make/Main.gmk:348: release-file] Error 2
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [make/Main.gmk:73: buildtools-langtools] Error 2
make[3]: *** No rule to make target
'/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.5+10/build/linux-x86_64-normal-server-release/make-support/vardeps/make/ModuleWrapper.gmk/java.base/ORDERED_CFG_VARIANTS.vardeps',
needed by
'/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.5+10/build/linux-x86_64-normal-server-release/support/modules_libs/java.base/jvm.cfg'.
 Stop.
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [make/Main.gmk:166: java.base-copy] Error 2
make[3]: *** No rule to make target
'/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.5+10/build/linux-x86_64-normal-server-release/hotspot/variant-server/tools/adlc/objs/adlc.comp.vardeps',
needed by
'/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.5+10/build/linux-x86_64-normal-server-release/hotspot/variant-server/tools/adlc/objs/adlparse.o'.
 Stop.
make[2]: *** [make/Main.gmk:254: hotspot-server-gensrc] Error 2

ERROR: Build failed for target 'images' in configuration
'linux-x86_64-normal-server-release' (exit code 2)

No indication of failed target found.
Hint: Try searching the build log for '] Error'.
Hint: See doc/building.html#troubleshooting for assistance.

make[1]: ***
[/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.5+10/make/Init.gmk:305:
main] Error 2
make: ***
[/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.5+10/make/Init.gmk:186:
images] Error 2
-------------------------------------

It seems like it fails to construct the targets depenencies for some reason.

The complete makefiles are fairly advanced and I get the feeling that
they are tripping over a regression in some cornercase.

They are found here:
https://hg.openjdk.java.net/jdk-updates/jdk11u/file/92ad8373cf4d/make


Below is a run with "Cores to use" set to 1. (make --debug images JOBS=1):

-------------------------------------------------------------------------------
GNU Make 4.3
Built for x86_64-alpine-linux-musl
Copyright (C) 1988-2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Reading makefiles...
Updating makefiles....
GNU Make 4.3
Built for x86_64-alpine-linux-musl
Copyright (C) 1988-2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Reading makefiles...
Updating makefiles....
Updating goal targets....
 File 'create-main-targets-include' does not exist.
Must remake target 'create-main-targets-include'.
Successfully remade target file 'create-main-targets-include'.
Re-executing[1]: make --debug images JOBS=1
GNU Make 4.3
Built for x86_64-alpine-linux-musl
Copyright (C) 1988-2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Reading makefiles...
Updating makefiles....
Updating goal targets....
 File 'images' does not exist.
   File 'make-info' does not exist.
  Must remake target 'make-info'.
  Successfully remade target file 'make-info'.
Must remake target 'images'.
GNU Make 4.3
Built for x86_64-alpine-linux-musl
Copyright (C) 1988-2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Reading makefiles...
Updating makefiles....
Updating goal targets....
 File 'main' does not exist.
Must remake target 'main'.
Building target 'images' in configuration
'linux-x86_64-normal-server-release'
GNU Make 4.3
Built for x86_64-alpine-linux-musl
Copyright (C) 1988-2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Reading makefiles...
Updating makefiles....
Re-executing[1]: /usr/bin/make -s -r -R -I
/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.5+10/make/common
SPEC=/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.5+10/build/linux-x86_64-normal-server-release/spec.gmk
MAKE_LOG_FLAGS=-s LOG_LEVEL=warn LOG_NOFILE= LOG_CMDLINES= LOG_REPORT=
LOG_PROFILE_TIMES_LOG= LOG_PROFILE_TIMES_FILE= -Onone -j 1 -f make/Main.gmk
images
GNU Make 4.3
Built for x86_64-alpine-linux-musl
Copyright (C) 1988-2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Reading makefiles...
Updating makefiles....
Updating goal targets....
 File 'images' does not exist.
   File 'product-images' does not exist.
     File 'jdk-image' does not exist.
       File 'generate-link-opt-data' does not exist.
         File 'create-buildjdk' does not exist.
           File 'create-buildjdk-copy' does not exist.
             File 'jdk.jlink-java' does not exist.
               File 'interim-langtools' does not exist.
                 File 'jdk.compiler-gensrc-src' does not exist.
                   File 'buildtools-langtools' does not exist.
                  Must remake target 'buildtools-langtools'.
GNU Make 4.3
Built for x86_64-alpine-linux-musl
Copyright (C) 1988-2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Reading makefiles...
Updating makefiles....
Updating goal targets....
 File 'default' does not exist.
   File 'all' does not exist.
     File
'/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.5+10/build/linux-x86_64-normal-server-release/buildtools/langtools_tools_classes/propertiesparser/resources/templates.properties'
does not exist.
    Must remake target
'/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.5+10/build/linux-x86_64-normal-server-release/buildtools/langtools_tools_classes/propertiesparser/resources/templates.properties'.
    Successfully remade target file
'/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.5+10/build/linux-x86_64-normal-server-release/buildtools/langtools_tools_classes/propertiesparser/resources/templates.properties'.
     File
'/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.5+10/build/linux-x86_64-normal-server-release/buildtools/langtools_tools_classes/_the.BUILD_TOOLS_LANGTOOLS_batch'
does not exist.
make[3]: *** No rule to make target
'/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.5+10/build/linux-x86_64-normal-server-release/buildtools/langtools_tools_classes/_the.BUILD_TOOLS_LANGTOOLS.vardeps',
needed by
'/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.5+10/build/linux-x86_64-normal-server-release/buildtools/langtools_tools_classes/_the.BUILD_TOOLS_LANGTOOLS_batch'.
 Stop.
make[2]: *** [make/Main.gmk:73: buildtools-langtools] Error 2

ERROR: Build failed for target 'images' in configuration
'linux-x86_64-normal-server-release' (exit code 2)
GNU Make 4.3
Built for x86_64-alpine-linux-musl
Copyright (C) 1988-2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Reading makefiles...
Updating makefiles....
Updating goal targets....
 File 'on-failure' does not exist.
Must remake target 'on-failure'.

No indication of failed target found.
Hint: Try searching the build log for '] Error'.
Hint: See doc/building.html#troubleshooting for assistance.

Successfully remade target file 'on-failure'.
make[1]: ***
[/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.5+10/make/Init.gmk:305:
main] Error 2
make: ***
[/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.5+10/make/Init.gmk:186:
images] Error 2

-------------------------------------------------------------------

Note that I can manually build buildtools-langtools:

$ make JOBS=1 buildtools-langtools
Building target 'buildtools-langtools' in configuration
'linux-x86_64-normal-server-release'
Compiling 8 files for BUILD_TOOLS_LANGTOOLS
Finished building target 'buildtools-langtools' in configuration
'linux-x86_64-normal-server-release'






    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?57676>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/


Reply | Threaded
Open this post in threaded view
|

[bug #57676] openjdk11 fails to build with make 4.3

Bogdan Barbu
Follow-up Comment #1, bug #57676 (project make):

I have traced it to this command:

$ (cd /home/ncopa/aports/community/openjdk11/src/
jdk11u-jdk-11.0.6+10/make && /usr/bin/make --debug --trace -s -r -R -I
/home/ncopa/aports/community/openjdk11/src/jdk11u
-jdk-11.0.6+10/make/common
SPEC=/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/build/linux-x86_64-norma
l-server-release/spec.gmk MAKE_LOG_FLAGS="-s"  -f ToolsLangtools.gmk)
GNU Make 4.3
Built for x86_64-alpine-linux-musl
Copyright (C) 1988-2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Reading makefiles...
Updating makefiles....
Updating goal targets....
 File 'default' does not exist.
   File 'all' does not exist.
     File
'/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/build/linux-x86_64-normal-server-release/buildtools/langtools_tools_classes/propertiesparser/resources/templates.properties'
does not exist.
    Must remake target
'/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/build/linux-x86_64-normal-server-release/buildtools/langtools_tools_classes/propertiesparser/resources/templates.properties'.
ToolsLangtools.gmk:37: update target
'/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/build/linux-x86_64-normal-server-release/buildtools/langtools_tools_classes/propertiesparser/resources/templates.properties'
due to:
/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/make/langtools/tools/propertiesparser/resources/templates.properties
/bin/mkdir -p
/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/build/linux-x86_64-normal-server-release/buildtools/langtools_tools_classes/propertiesparser/resources
/bin/cp
/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/make/langtools/tools/propertiesparser/resources/templates.properties
/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/build/linux-x86_64-normal-server-release/buildtools/langtools_tools_classes/propertiesparser/resources/templates.properties
/bin/chmod -f ug+w
/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/build/linux-x86_64-normal-server-release/buildtools/langtools_tools_classes/propertiesparser/resources/templates.properties
    Successfully remade target file
'/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/build/linux-x86_64-normal-server-release/buildtools/langtools_tools_classes/propertiesparser/resources/templates.properties'.
     File
'/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/build/linux-x86_64-normal-server-release/buildtools/langtools_tools_classes/_the.BUILD_TOOLS_LANGTOOLS_batch'
does not exist.
make: *** No rule to make target
'/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/build/linux-x86_64-normal-server-release/buildtools/langtools_tools_classes/_the.BUILD_TOOLS_LANGTOOLS.vardeps',
needed by
'/home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/build/linux-x86_64-normal-server-release/buildtools/langtools_tools_classes/_the.BUILD_TOOLS_LANGTOOLS_batch'.
 Stop.


Which leads me to:
https://hg.openjdk.java.net/jdk-updates/jdk11u/file/92ad8373cf4d/make/ToolsLangtools.gmk#l35
That says:
> # Setup the compilation of the properties compilation tool. You can depend
> # upon $(BUILD_TOOLS_LANGTOOLS) to trigger a compilation of the tools.
> $(eval $(call SetupJavaCompilation,BUILD_TOOLS_LANGTOOLS, \

I believe that the depending on $(BUILD_TOOLS_LANGTOOLS) does not trigger of
the tools as expected. The eval of the call probably does not give the
intended result.


SetupJavaCompilation is defined here:
https://hg.openjdk.java.net/jdk-updates/jdk11u/file/92ad8373cf4d/make/common/JavaCompilation.gmk#l184

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?57676>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/


Reply | Threaded
Open this post in threaded view
|

[bug #57676] openjdk11 fails to build with make 4.3

Bogdan Barbu
Additional Item Attachment, bug #57676 (project make):

File name: Makefile                       Size:5 KB
    <https://savannah.gnu.org/file/Makefile?file_id=48292>



    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?57676>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/


Reply | Threaded
Open this post in threaded view
|

[bug #57676] openjdk11 fails to build with make 4.3

Bogdan Barbu
Follow-up Comment #2, bug #57676 (project make):

I think I have been able to isolate the problem and have created a testcase
that will trigger the problem. It works with make 4.2.1 but fails on first run
with make 4.3, but succeeds on second run.

Testcase has been attached.

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?57676>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/


Reply | Threaded
Open this post in threaded view
|

[bug #57676] openjdk11 fails to build with make 4.3

Bogdan Barbu
Follow-up Comment #3, bug #57676 (project make):

> (I tried to send this to -email is unavailable- but it appears to have
disappeared somewhere)
(I got it and your other one, but raising a bug was probably a better choice
anyway here.)

> fails on first run with make 4.3

martind@paris:~/tmp/make-57676$ make some-file
NewVariable SOME_VAR: >foo<
OldVariable SOME_VAR: ><
make: *** No rule to make target
'/home/martind/tmp/make-57676/vardeps/Makefile/SOME_VAR.vardeps', needed by
'some-file'.  Stop.
martind@paris:~/tmp/make-57676$ make some-file
NewVariable SOME_VAR: >foo<
OldVariable SOME_VAR: ><
touch some-file
martind@paris:~/tmp/make-57676$ make --version
GNU Make 4.2.93
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
martind@paris:~/tmp/make-57676$

I see "make clean" isn't enough to set up for a new run - you need rm -r
vardeps too.  That's nice work to get it down to something practical to attach
here.  There's still surely lots of extraneous detail.  Is this the same
problem?


martind@paris:~/tmp/make-57676$ cat Makefile
-include deps

BADGER := $(shell touch deps)

some-file: deps;
martind@paris:~/tmp/make-57676$ /usr/bin/make --version
GNU Make 4.2.1
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
martind@paris:~/tmp/make-57676$ /usr/bin/make
make: 'some-file' is up to date.
martind@paris:~/tmp/make-57676$ rm deps
martind@paris:~/tmp/make-57676$ make
make: *** No rule to make target 'deps', needed by 'some-file'.  Stop.
martind@paris:~/tmp/make-57676$ make
make: 'some-file' is up to date.
martind@paris:~/tmp/make-57676$


    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?57676>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/


Reply | Threaded
Open this post in threaded view
|

[bug #57676] openjdk11 fails to build with make 4.3

Bogdan Barbu
Follow-up Comment #4, bug #57676 (project make):

If it is that, then the behavior change was introduced by git commit
c5ccc4930c3805604813def4455bc2e90635349e:

[SV 40236] Handle included file open failures properly.


    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?57676>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/


Reply | Threaded
Open this post in threaded view
|

[bug #57676] openjdk11 fails to build with make 4.3

Bogdan Barbu
Follow-up Comment #5, bug #57676 (project make):

> I see "make clean" isn't enough to set up for a new run - you need rm -r
vardeps too.
Yeah. I messed up the Makefile. the clean target should also remove vardeps.


> If it is that, then the behavior change was introduced by git commit
c5ccc4930c3805604813def4455bc2e90635349e:
> [SV 40236] Handle included file open failures properly.
That seems to correspond with what openjdk developers concluded with. From
https://mail.openjdk.java.net/pipermail/build-dev/2020-January/026647.html:


> I've found the culprit. The "-include" statement does not work properly.
> Manually checking for the existence of the file and then using "include"
> works fine. I would consider this a bug in make. Feel free to pass this
> information along to the upstream make project.

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?57676>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/


Reply | Threaded
Open this post in threaded view
|

[bug #57676] openjdk11 fails to build with make 4.3

Bogdan Barbu
Follow-up Comment #6, bug #57676 (project make):

> I would consider this a bug in make
Well, it's not wrong that there is no rule to make the dependency file and
adding one does silence it (this is make-4.3.90):

martind@paris:~/tmp/make-57676$ cat Makefile2
-include deps

BADGER := $(shell touch deps)

some-file: deps;

deps:;
martind@paris:~/tmp/make-57676$ rm -f deps; make -f Makefile2
make: 'some-file' is up to date.
martind@paris:~/tmp/make-57676$


https://www.gnu.org/software/make/manual/html_node/Include.html doesn't just
say the leading hyphen suppresses errors when the file doesn't exist, but also
says that it suppresses errors when it cannot be remade.  Indeed, this is
silent:


martind@paris:~/tmp/make-57676$ cat Makefile3
-include deps

some-file:;
martind@paris:~/tmp/make-57676$


So the issue only arises when the -include()d file is also a dependency.  It's
not just that there's no rule to make that dependency, because Make does
notice that it's appeared in:


martind@paris:~/tmp/make-57676$ cat Makefile4
BADGER := $(shell touch deps)

some-file: deps;
martind@paris:~/tmp/make-57676$ rm -f deps; make -f Makefile4
make: 'some-file' is up to date.
martind@paris:~/tmp/make-57676$


If the side-effect happens before the -include, then all is also well:


martind@paris:~/tmp/make-57676$ cat Makefile5
BADGER := $(shell touch deps)

-include deps

some-file: deps;
martind@paris:~/tmp/make-57676$ rm -f deps; make -f Makefile5
make: 'some-file' is up to date.
martind@paris:~/tmp/make-57676$


Putting all that together, the new behavior does feel... unfortunate, at least
to me.

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?57676>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/


Reply | Threaded
Open this post in threaded view
|

[bug #57676] openjdk11 fails to build with make 4.3

Bogdan Barbu
Follow-up Comment #7, bug #57676 (project make):

We also triggered this bug in Buildroot, where our Makefile does something
that can be reduced to this simple Makefile:


-include foo
$(shell echo 'VAR?=$(VAR)' >foo)
include foo

all:
        @echo 'VAR="$(VAR)"'


which allows us to memorise variables passed by the user so they don't have to
pass them over and over again.

This has worked great since the make 3.81 era up till now, but make 4.3 broke
that.

We wrote it thusly because we wanted to avoid rescanning the Makefile to
generate the file, as the Makefile is not clean to rescan (there are side
effects, unfortunately...).

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?57676>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/