From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: "H. Dieter Wilhelm" Newsgroups: gmane.emacs.devel Subject: Re: Native compilation on Windows, was Re: Bootstrap Compilation Speed Date: Wed, 23 Feb 2022 07:44:50 +0100 Message-ID: References: <878rve85yy.fsf@russet.org.uk> <86a6fu3xb2.fsf@duenenhof-wilhelm.de> <87tue1j8x0.fsf@russet.org.uk> <86wniw3kdq.fsf@duenenhof-wilhelm.de> <83tue0u8sh.fsf@gnu.org> <86sftk3evj.fsf@duenenhof-wilhelm.de> <83o848tc92.fsf@gnu.org> <86o8473k13.fsf@duenenhof-wilhelm.de> <83ee53ssbx.fsf@gnu.org> <86sft4c3ij.fsf@gnu.org> <87czk59b7p.fsf@russet.org.uk> <83k0ec5st1.fsf@gnu.org> <83v8x7tw4a.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="31818"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (windows-nt) Cc: arash@gnu.org, corwin@bru.st, phillip.lord@russet.org.uk, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Feb 23 07:53:34 2022 Return-path: Envelope-to: ged-emacs-devel@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 1nMlWo-00085D-8W for ged-emacs-devel@m.gmane-mx.org; Wed, 23 Feb 2022 07:53:34 +0100 Original-Received: from localhost ([::1]:53174 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nMlWm-0004rY-Gq for ged-emacs-devel@m.gmane-mx.org; Wed, 23 Feb 2022 01:53:32 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:46020) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nMlOX-0000dO-NS for emacs-devel@gnu.org; Wed, 23 Feb 2022 01:45:03 -0500 Original-Received: from mout.kundenserver.de ([212.227.17.10]:40889) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nMlOV-00045S-M0; Wed, 23 Feb 2022 01:45:01 -0500 Original-Received: from VSL7V7PW ([92.116.181.81]) by mrelayeu.kundenserver.de (mreue108 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MqapC-1o0EwG0h8K-00maYo; Wed, 23 Feb 2022 07:44:52 +0100 In-Reply-To: <83v8x7tw4a.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 22 Feb 2022 05:31:49 +0200") X-Provags-ID: V03:K1:FqN3Snp7V0MhCz28EU3clqczSeHu3nOQPnmyuos7JvgBVamckeR 8FcDAMgCVaJYKMENgYpokAO6a1VKqccLp2srHKqrMFvLAYsIgY78Ki9Ypu0i4ssBRI5z4yM BDW8B4Xwh7Zx4PAcRcpKPZIj4YSTFHIyryR85eXcrdrwBBASpbBDnHbfrkJez9I+7xpS9Kq YB+XL0HxyZ2n0cwo8SUPQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:KYDQzO5hNyE=:785oWfQq+CJ0CGgKRX1wLr 0JZfAeu+9C9oJF6XwGjUk21a80zPyhMBD0xYPEEb4jC9JR/jFQ77rDY1lBbohUWA8k12JNHkB OrxraqaY0NDgS9UvxdQX/y0vfzvSQGCcIGmJKUZ4bPdGkBc5AS+6S+F1jB95NH7WOMrmqX8D+ zP994Se4R63Uw2auaxXkiZBTwMlLDMFJ/rAE/UV3faR6swK9C/CfNml+sTlD8UigQ6tlJD0QK YpJJpMs9rlQ67eUPR0wnuKCbbpAIoThhs0afHofnFBA1OYTpbeuTpWJl7gW7GqhpeEWWDRNje 9Ti0GPXvloslTd0JK3rrt4GdeLM4paifRNFLNpGUD6+XNTVf62/hbrZ5QrFmnfzSP4hLsAbqY h+1r5rPuxa+cayeIUslNvl45uZR5cKYr5c+/7GbjkEhym90MWfCoU+wQYPEwNFQP0mdYIn2pq eNeSX732CHBWXjg79t77/ZCdw0zdHMBc6c0JZRyW6/lnq/oBZOHz+5hU73QTHUuhERA6ifOpb KYhpz9BC0A4scQTmd2b/U+RNMZI0rqiHp2BOQMXFNPhu+YaeUVhmpQjwmyWfwTLj9gq1+ad6+ KpEhyZFhgY1R3+2m4jPQ65GGD58Da0Dc8/AgCZZkLXbiTPp0+N1OJLrxVjpwe2stvTSH4osyW awRXUewS45mM+gkW3RmuKvGfsOs0NY60DDfKvbsoKLUtlwar6a/J5akyKBQrHj+ZUCRYmCjGV XQl50C21CGYd83p6 Received-SPF: none client-ip=212.227.17.10; envelope-from=dieter@duenenhof-wilhelm.de; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:286613 Archived-At: Eli Zaretskii writes: >> From: "H. Dieter Wilhelm" >> Cc: Phillip Lord , arash@gnu.org, >> corwin@bru.st, emacs-devel@gnu.org >> Date: Mon, 21 Feb 2022 22:59:07 +0100 >> >> > Run this in the 'bin/' directory where you have executable programs >> > and DLLs, and it will show a sorted list of all the DLLs needed by >> > those programs and DLLs. You will need to recognize and ignore any >> > system DLLs, such as msvcrt.dll, KERNEL32.dll, USER32.dll, WS2_32.dll >> > etc. in the list; for the rest, make sure every one of them is in the >> > same 'bin/' directory. Each time you add some DLL to the 'bin/' >> > directory, re-run the above command again, because adding DLLs can >> > potentially add dependencies. Repeat this process until all the DLLs >> > shown by the command are in the same directory: then you are done. >> >> When trying above iterative approach, I just find libgmp and after >> adding libgmp-10.dll to the folder there are no further dependencies to >> see!? >> >> uidg1626@VSL7V7PW MINGW64 ~/emacs-build/build/emacs-28.0.91/bin >> $ objdump.exe -p *.exe *.dll |grep "DLL Name"|sort -u >> DLL Name: ADVAPI32.dll >> DLL Name: COMCTL32.dll >> DLL Name: GDI32.dll >> DLL Name: KERNEL32.dll >> DLL Name: MPR.dll >> DLL Name: SHELL32.dll >> DLL Name: USER32.dll >> DLL Name: USP10.dll >> DLL Name: WINMM.dll >> DLL Name: WINSPOOL.DRV >> DLL Name: WSOCK32.dll >> DLL Name: comdlg32.dll >> DLL Name: libgmp-10.dll >> DLL Name: msvcrt.dll >> DLL Name: ole32.dll > > The dependency on the optional DLLs is implicit, because Emacs loads > them dynamically at run time. You need to place the DLLs mentioned in > dynamic-library-alist defined in w32-win.el in the bin/ directory, and > _then_ repeat the process. That's because we are talking about the > dependencies of those dynamically-loaded DLLs. I see, thank you for this concrete recipe. I'm a bit baffled, why is in dynamic-library-alist no harfbuzz but gccjit, gdiplus and shlwapi are there which seem not to be included in the list of mingw packages mentioned in README.W64? Emacs-28.0.91 dynamic-library-alist nt/README.W64 ( (xpm "libxpm.dll" "xpm4.dll" "libXpm-nox4.dll") mingw-w64-x86_64-xpm-nox \ (tiff "libtiff-5.dll" "libtiff3.dll" "libtiff.dll") mingw-w64-x86_64-libtiff \ (gif "libgif-7.dll") mingw-w64-x86_64-giflib \ (png "libpng16.dll" "libpng16-16.dll") mingw-w64-x86_64-libpng \ (jpeg "libjpeg-8.dll") mingw-w64-x86_64-libjpeg-turbo \ (svg "librsvg-2-2.dll") mingw-w64-x86_64-librsvg \ (lcms2 "liblcms2-2.dll") mingw-w64-x86_64-lcms2 \ (json "libjansson-4.dll") mingw-w64-x86_64-jansson \ (libxml2 "libxml2-2.dll" "libxml2.dll") mingw-w64-x86_64-libxml2 \ (gnutls "libgnutls-30.dll") mingw-w64-x86_64-gnutls \ (zlib "zlib1.dll" "libz-1.dll") mingw-w64-x86_64-zlib \ mingw-w64-x86_64-harfbuzz (gdk-pixbuf "libgdk_pixbuf-2.0-0.dll") (glib "libglib-2.0-0.dll") (gio "libgio-2.0-0.dll") (gobject "libgobject-2.0-0.dll") ;; below DLLs are not part of Emacs-28.0.91 for Windows! (gccjit "libgccjit-0.dll") (gdiplus "gdiplus.dll") (shlwapi "shlwapi.dll") ) Are gdiplus and shlwapi somehow missing in the current Emacs Windows distribution? (Existing ert tests don't indicate that.) Dieter