From: Ezekiel Newren Date: Thu, 02 Oct 2025 18:50:33 GMT Subject: Re: [PATCH 2/3] make: delete XDIFF_LIB, add xdiff to LIB_OBJS Message-ID: In-Reply-To: On Thu, Oct 2, 2025 at 9:33 AM Patrick Steinhardt wrote: > On Thu, Oct 02, 2025 at 06:31:33AM -0700, Junio C Hamano wrote: > > Patrick Steinhardt writes: > > > > > On Wed, Oct 01, 2025 at 06:02:27PM +0000, Ezekiel Newren via GitGitGadget wrote: > > >> diff --git a/Makefile b/Makefile > > >> index e8fad803be..d89ba03286 100644 > > >> --- a/Makefile > > >> +++ b/Makefile > > >> @@ -1397,8 +1396,7 @@ XDIFF_OBJS += xdiff/xmerge.o > > >> XDIFF_OBJS += xdiff/xpatience.o > > >> XDIFF_OBJS += xdiff/xprepare.o > > >> XDIFF_OBJS += xdiff/xutils.o > > >> -.PHONY: xdiff-objs > > >> -xdiff-objs: $(XDIFF_OBJS) > > > > > > The removal of the `xdiff-objs` target isn't mentioned or justified in > > > the commit message. I personally don't mind that this target goes away, > > > as I don't really have a use case for it anyway. But in theory it could > > > continue to exist. So I'd either retain it, or explain why it goes away. > > > > > > In case it goes away, is there still a reason to have the separate > > > XDIFF_OBJS variable? Can't we add these objects to `LIB_OBJS` directly? > > > > Doing it this way lets us still keep the "logical" organization to > > tell which object is which, even though we may lose physical > > distinction by throwing all objects in a single library archive. > > Well, I guess the logical organization still exists due to all the files > living in "xdiff/" and "reftable/", respectively. So I'm not sure that's > a definitive win. > > But in any case, I don't have any strong feelings here. I mostly > wondered whether we can simplify the build infra even further. My preference is the same as yours Patrick. In my Introduce Rust v2 series (that I dropped) I did it the way that you described. I changed how I did things because of Junio's suggestion. I think doing it Patrick's way would be more consistent because in Meson the `libgit_sources` variable includes all C files that are part of libgit. That variable includes the sources for reftable and xdiff. snippet from meson.build: libgit_sources = [ ... 'reftable/basics.c', 'reftable/error.c', 'reftable/block.c', 'reftable/blocksource.c', 'reftable/iter.c', 'reftable/merged.c', 'reftable/pq.c', 'reftable/record.c', 'reftable/stack.c', 'reftable/system.c', 'reftable/table.c', 'reftable/tree.c', 'reftable/writer.c', ... 'xdiff/xdiffi.c', 'xdiff/xemit.c', 'xdiff/xhistogram.c', 'xdiff/xmerge.c', 'xdiff/xpatience.c', 'xdiff/xprepare.c', 'xdiff/xutils.c', ] I will go with your preference Junio. Do you prefer your way or Patrick's way?