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
Subject: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10
Date: Mon, 21 Dec 2020 09:48:01 +0000
Eli Zaretskii <eliz <at> gnu.org> writes:

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

Hi Eli,

so I did, with 5b10a0324d I moved 'md5_gz_stream' to decompress.c,
before running it we load zlib if necessary.

Hopefully this solves this part of the issue.

Thanks

  Andrea




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.