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


View this message in rfc822 format

From: Andrea Corallo <akrl <at> sdf.org>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: gongyi.liao <at> gmail.com, 45303 <at> debbugs.gnu.org, =?UTF-8?Q?Li=C4=81u <at> debbugs.gnu.org
Subject: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10
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.

> 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.




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

Previous Next


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