>> I tried the latest from gnulib via coreutils, >> ... >> In file included from test-string-c++.cc:23: >> ../lib/string.h:301: error: type of 'memchr' is unknown > > Can you please tell me how to reproduce? > > I checked out coreutils from git, saw that its "bootstrap --help" script says > --gnulib-srcdir=DIRNAME Specify the local directory where gnulib > sources reside. Use this if you already > have gnulib sources on your machine, and > do not want to waste your bandwidth downloading > them again. Defaults to $GNULIB_SRCDIR.
Hi Bruno, That is an optimization for the bootstrap-after-initial-clone to avoid downloading the ~30MB gnulib repository. It has no influence on which gnulib SHA1 coreutils uses. > So I ran > $ ./bootstrap --gnulib-srcdir=$HOME/data/develop/GNULIB/gnulib-git --copy > I expected that it uses the checked out gnulib sources. But no, it uses commit > number 80cd995cdcbf4b9ded895a43621a11f11806ad8d and checks that out in a > subdirectory 'gnulib/'. > > So I went into that subdirectory and did "git checkout master". Then back in > the parent directory, did > $ ./bootstrap --gnulib-srcdir=$HOME/data/develop/GNULIB/gnulib-git --copy > again. Again it tells me: > ./bootstrap: Bootstrapping from checked-out coreutils sources... > ./bootstrap: getting gnulib files... > Submodule path 'gnulib': checked out > '80cd995cdcbf4b9ded895a43621a11f11806ad8d' > > I did a grep of '80cd995cdcbf4b9ded895a43621a11f11806ad8d' over the source > tree > and did not find it. > > How do I configure 'bootstrap' to use my (possibly modified) gnulib sources > instead of a particular commit? I'm not a "git submodule" wizard and expect > this do be doable through a command line option of the 'bootstrap' script. bootstrap uses the gnulib commit recorded via coreutils' gnulib submodule, so I usually just sync-to-latest, commit that gnulib-update change, and then test. I did this on coreutils' master: cd coreutils git syncsub git commit -m 'build: update gnulib submodule to latest' gnulib ./bootstrap && ./configure && make && make check Where "syncsub" is defined in my ~/.gitconfig like this: [alias] syncsub = submodule foreach git pull origin master So if your changed gnulib files are committed locally, and the submodule points to your locally-modified repository, once you've committed the "sync-from-gnulib" change as above, bootstrap should do what you expect.