gnu make 4.3 breaks the build

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Mon Jan 27 20:26:17 UTC 2020



On 2020-01-27 12:37, Natanael Copa wrote:
> Hi,
>
> this is a follow up on https://mail.openjdk.java.net/pipermail/build-dev/2020-January/026635.html
>
> Alpine linux has bumped into the same issue and it sort of blocking the
> security update. I would rather try fix the make issue than roll back
> to make 4.2.1.
>
> Downstream mergerequest/report:
> https://gitlab.alpinelinux.org/alpine/aports/merge_requests/3224
>
> It fails on different location even if I run it with JOBS=1, so to
> track it down I had to run make clean between each run.
>
> This is the command that fails (I have manually inserted the --debug --trace options):
Thanks for the debugging help.

I looked at the alpine bug report -- at this point I would not consider 
this a make bug, since it's more likely that we've got caught on one of 
their changes. But it might be a regression in make, too. (But even in 
that case, I'm afraid we'll have to work around it.)
>
> $ (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.
>
>
>
> If I re-run the command (without make clean) it will succeed:
My preliminary analysis indicated a problem with our MakeDir macro, 
which is basically a sophisticated way of calling mkdir -p. If a rerun 
succeeded, this definitely corroborates this story. It might be a couple 
of days before I have time to look further into this issue. If you want 
to delve deeper, have a look at make/common/MakeBase.gmk, especially 
DependOnVariable and MakeDir.

/Magnus

> 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/_the.BUILD_TOOLS_LANGTOOLS_batch' 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/_the.BUILD_TOOLS_LANGTOOLS_batch'.
> Compiling 8 files for BUILD_TOOLS_LANGTOOLS
> 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/_the.BUILD_TOOLS_LANGTOOLS_batch' due to: /home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/make/langtools/tools/compileproperties/CompileProperties.java /home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/make/langtools/tools/propertiesparser/PropertiesParser.java /home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/make/langtools/tools/propertiesparser/gen/ClassGenerator.java /home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/make/langtools/tools/propertiesparser/parser/Message.java /home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/make/langtools/tools/propertiesparser/parser/MessageFile.java /home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/make/langtools/tools/propertiesparser/parser/MessageInfo.java /home/ncopa/aports/!
>   community
>   /openjdk11/src/jdk11u-jdk-11.0.6+10/make/langtools/tools/propertiesparser/parser/MessageLine.java /home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/make/langtools/tools/propertiesparser/parser/MessageType.java /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
> ( /bin/rm -f /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.log && /usr/lib/jvm/java-10-openjdk/bin/javac -g -J-XX:+UseSerialGC -J-Xms32M -J-Xmx512M -J-XX:TieredStopAtLevel=1 -source 9 -target 9 -XDignore.symbol.file=true -g -Xlint:all,-deprecation,-options -Werror -Xprefer:source -implicit:none -d /home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/build/linux-x86_64-normal-server-release/buildtools/langtools_tools_classes @/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.tmp > >(/usr/bin/tee -a /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.log) 2> >(/usr/bin/tee -a /home/ncopa/aports/communi!
>   ty/openjd
>   k11/src/jdk11u-jdk-11.0.6+10/build/linux-x86_64-normal-server-release/buildtools/langtools_tools_classes/_the.BUILD_TOOLS_LANGTOOLS_batch.log >&2) || ( exitcode=$? && /bin/cp /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.log /home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/build/linux-x86_64-normal-server-release/make-support/failure-logs/buildtools_langtools_tools_classes__the.BUILD_TOOLS_LANGTOOLS_batch.log && /bin/cp /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.cmdline /home/ncopa/aports/community/openjdk11/src/jdk11u-jdk-11.0.6+10/build/linux-x86_64-normal-server-release/make-support/failure-logs/buildtools_langtools_tools_classes__the.BUILD_TOOLS_LANGTOOLS_batch.cmdline && exit $exitcode ) ) && /bin/mv /!
>   home/ncop
>   a/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.tmp /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
>      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/_the.BUILD_TOOLS_LANGTOOLS_batch'.
>    Must remake target 'all'.
>    Successfully remade target file 'all'.
> Must remake target 'default'.
> Successfully remade target file 'default'.
>





More information about the build-dev mailing list