On Fri, Jan 11, 2019 at 07:51:18PM +0100, SZEDER Gábor wrote: > On Fri, Jan 11, 2019 at 10:03:01AM -0800, Junio C Hamano wrote: > > SZEDER Gábor <szeder.dev@xxxxxxxxx> writes: > > > > > On Thu, Jan 10, 2019 at 01:22:00PM -0800, Junio C Hamano wrote: > > >> Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> writes: > > >> ... > > >> > I.e. is this another case where we're blindly fixing bugs but should > > >> > just re-import upstream's code instead? > > >> > > >> Good point. I am inclined to queue the remainder of the series > > >> without this one for now. > > > > > > Note that without this first patch the linux-gcc build job will fail > > > with the above compiler error, and that's the only build job that runs > > > the test suite with all the misc test knobs (split-index, > > > commit-graph, etc.) enabled. > > > > I know. > > > > The point is to give more incentive to try what was suggested > > earlier by Ævar (in short, "try to do the right thing, before > > hacking around locally in this project" ;-) > > Well, first I'm not sure what changes Ævar meant to be backported. > Back then I briefly glanced at glibc's gitweb [1], but didn't see > anything remotely relevant to these compiler errors. So, I looked at the gnulib repository, where glibc got it's obstack.{c,h} from, and it does have a fix for this issue in commit 127ed6a3e (obstack: avoid potentially-nonportable function casts, 2014-11-04): http://git.savannah.gnu.org/cgit/gnulib.git/commit?id=127ed6a3ea9c46452f079dee50382dc1f70ea796 It chose basically the same approach as my fix, i.e. storing pointers to functions with different signatures in an union. However,, the differences between our and their obstack.{c,h} are way too big to backport their patch. > As to re-importing obstack.{c,h} from upstream, we've made some > portability fixes to these files, and neither of the commit messages > of those fixes mention that they are backports from upstream. OTOH, > one of those commits mentions platforms like > "i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1, SunOS 5.10", which makes > me suspect that the re-import will be susceptible to those portability > issues again. Therefore, I think re-importing these files from > upstream is beyond the scope of this patch series (and might not be > the right thing at all). gnulib's obstack.{c,h} doesn't fix the issues that we've fixed in 3254310863 (obstack.c: Fix some sparse warnings, 2011-09-11) and d190a0875f (obstack: Fix portability issues, 2011-08-28). So if we were to re-import from gnulib, then these two patches would have to be applied on top yet again. > [1] https://sourceware.org/git/?p=glibc.git;a=history;f=malloc/obstack.c;h=1669641983512d64f66c1ad659562f77ef48adfd;hb=refs/heads/master >