From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs 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 Message-ID: References: <838s9w6t8d.fsf@gnu.org> <83v9cz5c9z.fsf@gnu.org> <83r1nm6dre.fsf@gnu.org> Reply-To: Andrea Corallo Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="2920"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: gongyi.liao@gmail.com, 45303@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Dec 21 10:49:21 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1krHoe-0000dD-F4 for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 21 Dec 2020 10:49:20 +0100 Original-Received: from localhost ([::1]:58744 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1krHod-0002DK-E2 for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 21 Dec 2020 04:49:19 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:35532) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1krHoP-0002D0-QT for bug-gnu-emacs@gnu.org; Mon, 21 Dec 2020 04:49:06 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:34802) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1krHoM-0003sn-8h for bug-gnu-emacs@gnu.org; Mon, 21 Dec 2020 04:49:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1krHoM-00078E-6u for bug-gnu-emacs@gnu.org; Mon, 21 Dec 2020 04:49:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Andrea Corallo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 21 Dec 2020 09:49:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 45303 X-GNU-PR-Package: emacs Original-Received: via spool by 45303-submit@debbugs.gnu.org id=B45303.160854408527351 (code B ref 45303); Mon, 21 Dec 2020 09:49:02 +0000 Original-Received: (at 45303) by debbugs.gnu.org; 21 Dec 2020 09:48:05 +0000 Original-Received: from localhost ([127.0.0.1]:46348 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krHnQ-000775-Jv for submit@debbugs.gnu.org; Mon, 21 Dec 2020 04:48:04 -0500 Original-Received: from mab.sdf.org ([205.166.94.33]:38500 helo=ma.sdf.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krHnO-00076m-Uh for 45303@debbugs.gnu.org; Mon, 21 Dec 2020 04:48:03 -0500 Original-Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1krHnN-00052M-Ad; Mon, 21 Dec 2020 09:48:01 +0000 In-Reply-To: <83r1nm6dre.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 18 Dec 2020 22:49:25 +0200") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:196529 Archived-At: Eli Zaretskii writes: >> From: Andrea Corallo >> Cc: 45303@debbugs.gnu.org, gongyi.liao@gmail.com, >> =?UTF-8?Q?Li=C4=81u@debbugs.gnu.org >> Date: Fri, 18 Dec 2020 16:37:31 +0000 >> >> Eli Zaretskii writes: >> >> >> Date: Fri, 18 Dec 2020 13:28:20 +0000 >> >> Cc: gongyi.liao@gmail.com, =?UTF-8?Q?Li=C4=81u@debbugs.gnu.org >> >> From: Andrea Corallo via "Bug reports for GNU Emacs, >> >> the Swiss army knife of text editors" >> >> >> >> >> 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