GNU bug report logs - #45303
28.0.50; [feature/native-comp] comp.c compilation error on Windows 10

Previous Next

Package: emacs;

Reported by: Liāu, Kiong-Gē 廖宮毅 <gongyi.liao <at> gmail.com>

Date: Thu, 17 Dec 2020 20:22:01 UTC

Severity: normal

Found in version 28.0.50

Done: Andrea Corallo <akrl <at> sdf.org>

Bug is archived. No further changes may be made.

Full log


Message #56 received at 45303 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Andrea Corallo <akrl <at> sdf.org>
Cc: gongyi.liao <at> gmail.com, 45303 <at> debbugs.gnu.org
Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation
 error on Windows 10
Date: Fri, 18 Dec 2020 22:49:25 +0200
> From: Andrea Corallo <akrl <at> sdf.org>
> Cc: 45303 <at> debbugs.gnu.org,  gongyi.liao <at> gmail.com,
>   =?UTF-8?Q?Li=C4=81u <at> debbugs.gnu.org
> Date: Fri, 18 Dec 2020 16:37:31 +0000
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> >> Date: Fri, 18 Dec 2020 13:28:20 +0000
> >> Cc: gongyi.liao <at> gmail.com, =?UTF-8?Q?Li=C4=81u <at> debbugs.gnu.org
> >> From: Andrea Corallo via "Bug reports for GNU Emacs,
> >>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> >>
> >> >>  CCLD     temacs.exe
> >> >> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
> >> >> comp.o: in function `md5_gz_stream':
> >> >> C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/src/comp.c:713:
> >> >> undefined reference to `inflateInit2_'
> >> >> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
> >> >> C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/src/comp.c:730:
> >> >> undefined reference to `inflate'
> >> >
> >> > That's curious, looks you've not zlib but from the config.log you do...
> >>
> >> I really would like to understand what's going on here.
> >>
> >> We check in configure for zlib presence, actually this is also require
> >> by --with-nativecomp but somehow the linker fails to find it.
> >
> > Why does the native-comp branch require zlib in comp.c? what does it
> > do with zlib?
> 
> We hash the content of the lisp source files to obtain the correspondent
> eln name in the eln-cache.
> 
> This machinery has to work since early bootstrap (and has to be fast
> since is executed at each file load), so is directly done from comp.c.
> 
> When Emacs is installed the el files are compressed and so before
> hashing them we have to decompress therefore we use zlib.

Thanks for the explanations.

> > On master, zlib is an optional library, and when some Emacs command is
> > invoked that needs it, on MS-Windows we load the zlib DLL at run time
> > when requested.  See init_zlib_functions in decompress.c.  This is
> > unlike on Posix systems, where Emacs is linked with zlib at link time.
> > Does this explain what is going on?
> 
> I see, we should probably have comp.c use the necessary DEF_DLL_FN bloat
> or have these functions wrapped in decompress.c.

I think it's better to use functions in decompress.c or add whatever
you need there, and have the new functions use the same paradigm,
which on Windows loads the DLL the first time it is needed.




This bug report was last modified 4 years and 131 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.