Hello,
I'll apply all of these patches. It may take a little time to adopt gnulib, but
I will make it happen.

Thank you for the very valuable patches!

Regards,
Shigio

On Tue, Oct 14, 2025 at 8:06 AM Andrew L. Moore <[email protected]> wrote:
>
> We already have one vote in favor of importing Gnulib using its provided
> bootstrap script. I am not opposed and merely offer the patch
> use-system-gnulib.diff as a compromise. The patch name is actually
> misleading, as I explained in reply to Colin Frank. Furthermore, I
> complicated the patching process by providing the final patch,
> ax_func_getopt_long.m4, in a different format: It fails to apply using
> `patch -p1 <patchfile' as appropriate for the other patches.  So I've
> attached a new patch file, use-system-regexp.diff, that replaces both
> use-system-gnulib.diff and ax_func_getopt_long.m4. This applies
> correctly using `patch -p1'.  Apologies for the complication.
>
> One note about Bruno Haible's hash function:  In the version that is now
> deprecated in Gnulib, hash_pjw, the final value is returned modulus the
> key length, whereas in the original version included in this patch, no
> modulus is taken (as was the case in the Compilers book).
>
> On 10/13/25 01:21, Andrew L. Moore wrote:
> > The patch use-system-gnulib.diff depends upon an m4 macro which was
> > omitted.  Please find attached a patch for it below.
> >
> > On 10/13/25 01:07, Andrew L. Moore wrote:
> >> Please find attached patches that allow building GNU Global v6.6.14 on
> >> Fedora GNU/Linux v42 and v43. The first three are straight forward:
> >>
> >> 1. When looking for Universal Ctags, use option `--extras'. The code
> >>     does this, but configure was using `--extra'.
> >>
> >> 2. When looking for libsqlite3, add /usr/lib64 to the search path.
> >>
> >> 3. Address a GNU C v15 compilation error: assignment from incompatible
> >>     pointer type 'int (*)(void)'. The fix is to conditionally add
> >>     prototypes to dberr masks.
> >>
> >> Many modern systems come with Gnulib. So either GNU Global could link
> >> against the system Gnulib, or, alternatively, the Gnulib `bootstrap'
> >> script could be added to the GNU Global distribution. Gnulib bootstrap
> >> downloads Gnulib modules as needed. See:
> >>
> >> https://cgit.git.savannah.gnu.org/cgit/gnulib.git/tree/top/bootstrap
> >>
> >> One complication is that the function hash_string is no longer
> >> included in Gnulib.
> >>
> >> 4. So the final patch is an attempt to address these issues in
> >>     minimalist (lazy) way: If the system provides regcomp and
> >>     getopt_long, then the system-provided functions are used by
> >>     default. To override this, use the configure option
> >>     `--with-included-regex'. An updated version of the hash_string
> >>     function by Bruno Haible is added directly to libutil/strhash.c.
> >>     The function is described in the article:
> >>
> >>     https://www.haible.de/bruno/hashfunc.html
> >>
> >> A more correct approach might be to leverage Gnulib's bootstrap script
> >> and update strhash.c to use current Gnulib hash functions. If I had
> >> more time, I would have liked to offer an alternative patch for this.
> >> The current Gnulib does have lots of overhead, so maybe the included
> >> patch will be acceptable compromise.



-- 
Shigio YAMAGUCHI <[email protected]>
PGP fingerprint:
26F6 31B4 3D62 4A92 7E6F  1C33 969C 3BE3 89DD A6EB

Reply via email to