Re: [PATCH] build: fix FreeBSD build when sysinfo compat library installed
- From
Ramsay Jones <ramsay@ramsayjones.plus.com>
- Date
- Jul 7, 2025, 16:51 UTC
- Message-ID
- <ba0a3469-3a4d-44f4-b1b8-d9c1a825cb94@ramsayjones.plus.com>
- In-Reply-To
- <xmqqzfdg3t78.fsf@gitster.g>
On 07/07/2025 16:40, Junio C Hamano wrote:
Show 24 quoted lines
> Eric Sunshine <sunshine@sunshineco.com> writes: > >>> need to link a separate library (-lsysinfo). (This would require >>> a similar change to meson.build). >>> >>> - change the order of the preprocessor conditionals in the total_ram() >>> function in 'builtin/gc.c', so that the *BSD sysctl() function >>> (in the HAVE_BSD_SYSCTL block) takes priority over the sysinfo() >>> function (in the HAVE_SYSINFO block). >>> >>> - suppress the setting of HAVE_SYSINFO when HAVE_BSD_SYSCTL has been >>> defined (in both configure.ac and meson.build). >>> ... >>> The second solution would only be required by the autoconf and meson >>> build systems, the Makefile already sets the build variables to the >>> required values (since they are not 'auto-detected'). >> ... >> The final solution is almost certainly good enough (and is definitely >> simple), although the second solution has the benefit that it "fixes" >> the problem once and for all even if someone defines both >> HAVE_BSD_SYSCTL and HAVE_SYSINFO (say, in config.mak), assuming I'm >> understanding correctly. > > Yeah, I think I agree with this assessment.
[Sorry for the late reply - real life keeps getting in the way!]
Yep, I thought about including this fix *in addition to* the solution implemented in this patch, but decided that the chances that anyone would set both in a Makefile build was practically zero. (famous last words ;) ).
Of course, practically zero is not zero, so we could do this in a follow-up patch if we wanted to take a more conservative approach. (Carlos has a series in progress which would conflict with such a patch - but the conflict resolution would be simple).
Show 10 quoted lines
>>> In order to fix the FreeBSD build, move the sysinfo() check after the >>> determination of the HAVE_BSD_SYSCTL build variable, suppressing the >>> setting of HAVE_SYSINFO if HAVE_BSD_SYSCTL is defined. Apply this logic >>> to both the configure.ac and meson.build file. >> >> Nicely described. I wasn't really following along with the discussion, >> but this commit message summarizes the situation well, so I can >> understand the reason for the change and (I hope) the implications. > > Agreed. Thanks, all.
Thanks!
Let me know if you would like that follow-up patch.
ATB, Ramsay Jones