Skip to content

Commit

Permalink
Don't touch libuv's configure in it's build rule
Browse files Browse the repository at this point in the history
It's the prerequisite for this rule, so touching it will invalidate the libuv for all other trees.
  • Loading branch information
Keno committed Nov 23, 2015
1 parent 26f0a31 commit 40386c9
Showing 1 changed file with 0 additions and 1 deletion.
1 change: 0 additions & 1 deletion deps/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -790,7 +790,6 @@ endif
$(BUILDDIR)/$(LIBUV_SRC_DIR)/config.status: $(SRCDIR)/srccache/$(LIBUV_SRC_DIR)/configure
touch -c $(SRCDIR)/srccache/$(LIBUV_SRC_DIR)/aclocal.m4 # touch a few files to prevent autogen from getting called
touch -c $(SRCDIR)/srccache/$(LIBUV_SRC_DIR)/Makefile.in
touch -c $(SRCDIR)/srccache/$(LIBUV_SRC_DIR)/configure
mkdir -p $(dir $@)
cd $(dir $@) && \
$< --with-pic $(CONFIGURE_COMMON) $(UV_FLAGS)
Expand Down

12 comments on commit 40386c9

@Keno
Copy link
Member Author

@Keno Keno commented on 40386c9 Nov 23, 2015

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vtjnash I think you added this. I haven't seen any problems after removing this. What was the problem you were trying to avoid?

@vtjnash
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, per the comment in the file, it was added to help prevent autoconf from getting called.

@Keno
Copy link
Member Author

@Keno Keno commented on 40386c9 Nov 23, 2015

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, but under what circumstances was autoconf being called. I haven't seen it get called yet, ever. Do we need to change the prerequisites for this target to avoid the invalidation cycle?

@vtjnash
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

touch -c $(SRCDIR)/srccache/$(LIBUV_SRC_DIR)/aclocal.m4
is expected to cause it

@nalimilan
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed, this broke the Fedora nightlies, since autoconf isn't installed on the build VMs:
https://copr-be.cloud.fedoraproject.org/results/nalimilan/julia-nightlies/fedora-23-x86_64/00142033-julia/build.log.gz

It would be cool not to require it, since involving autotools and m4 macros in the build is yet another potential source of failures.

@Keno
Copy link
Member Author

@Keno Keno commented on 40386c9 Nov 24, 2015

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we make the prerequisite for this build rule something other than configure?

@nalimilan
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not Makefile.in?

@Keno
Copy link
Member Author

@Keno Keno commented on 40386c9 Nov 24, 2015

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, for example. Just wanted to confirm with @vtjnash who has looked into this before.

@tkelman
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

straight revert, or which file should this touch?

@vtjnash
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

revert

@tkelman
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Worst case, a configure invalidation of touching too many times just means other trees sharing the same source checkout re-run configure which doesn't take that long for libuv. We could potentially move all 3 of these touches to immediately after the checkout/untarring of the source, though that's maybe a little messy to put in to the git-externals define.

@Keno
Copy link
Member Author

@Keno Keno commented on 40386c9 Nov 25, 2015

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It doesn't take that long a time, but it's still very annoying. If you're switching back and forth between two tree, it can easily become the dominating factor.

Please sign in to comment.