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
make in /docs fails sometimes for 8.6.0 #12829
Comments
That makefile logic was introduced in 17153e1, almost a year ago. It is odd that it causes problems now! If you run |
Thanks for the suggestion - with make V=1 I get the following;
I build both 32 and 64-bit versions of curl in parallel from a single source tree - so I think that my issue is that this common source tree I will change my build process so that the two parallel builds have their own modifiable source trees to confirm that resolves the issue. |
We could make it use a unique temp file to reduce this risk? diff --git a/docs/cmdline-opts/Makefile.am b/docs/cmdline-opts/Makefile.am
index e9b35ac05..08d19a015 100644
--- a/docs/cmdline-opts/Makefile.am
+++ b/docs/cmdline-opts/Makefile.am
@@ -36,9 +36,9 @@ GN_1 =
GN_ = $(GN_0)
all: $(MANPAGE)
$(MANPAGE): $(DPAGES) $(SUPPORT) mainpage.idx Makefile.inc gen.pl
- $(GEN)(rm -f $(MANPAGE) && cd $(srcdir) && @PERL@ ./gen.pl mainpage $(DPAGES) > $(builddir)/manpage.tmp && mv $(builddir)/manpage.tmp $(MANPAGE))
+ $(GEN)(rm -f $(MANPAGE) && cd $(srcdir) && @PERL@ ./gen.pl mainpage $(DPAGES) > $(builddir)/manpage.tmp.$$$$ && mv $(builddir)/manpage.tmp.$$$$ $(MANPAGE))
listhelp:
./gen.pl listhelp $(DPAGES) > $(top_builddir)/src/tool_listhelp.c |
By appending the pid number two different runs at the same time will not trample over the same file. Reported-by: Jon Rumsey Fixes #12829
Thanks - I've confirmed that giving each of the builds their own source tree also resolves the issue and yes appending a pid to the filename for this make rule would also prevent any interactions on this temp file. I'm note sure how $(builddir) got expanded to '.' but because the current directory is in the source tree that means the build will be writing (albeit temporarily) to the source tree rather than under the --prefix provided on the configure. |
That variable will expand to a separate directory if you build outside of the source tree. Like this:
|
Thanks |
I did this
Builds sometimes failing on Linux x/p/z and AIX where it was always clean on 8.5.0
As this is intermittent, is there a problem with the makefile dependencies for this rule being incomplete?
I expected the following
Clean build
curl/libcurl version
curl 8.6.0
operating system
Ubuntu 22.04.3 LTS & Others
The text was updated successfully, but these errors were encountered: