From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Optional libraries Date: Mon, 19 Sep 2016 19:37:58 +0300 Message-ID: <83wpi7hml5.fsf@gnu.org> References: <95a38ffc-8958-8afa-4ccc-e34616bf83e2@gmail.com> Reply-To: Eli Zaretskii NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1474303255 13821 195.159.176.226 (19 Sep 2016 16:40:55 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 19 Sep 2016 16:40:55 +0000 (UTC) Cc: emacs-devel@gnu.org To: Nikolay Kudryavtsev Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Sep 19 18:40:51 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bm1cd-0002di-I5 for ged-emacs-devel@m.gmane.org; Mon, 19 Sep 2016 18:40:47 +0200 Original-Received: from localhost ([::1]:56781 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bm1cb-0005PZ-SC for ged-emacs-devel@m.gmane.org; Mon, 19 Sep 2016 12:40:45 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37972) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bm1a1-00043I-Aw for emacs-devel@gnu.org; Mon, 19 Sep 2016 12:38:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bm1Zy-0005wj-Q2 for emacs-devel@gnu.org; Mon, 19 Sep 2016 12:38:04 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:48261) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bm1Zy-0005wM-Mk; Mon, 19 Sep 2016 12:38:02 -0400 Original-Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1321 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bm1Zu-00058U-K9; Mon, 19 Sep 2016 12:38:02 -0400 In-reply-to: <95a38ffc-8958-8afa-4ccc-e34616bf83e2@gmail.com> (message from Nikolay Kudryavtsev on Mon, 19 Sep 2016 02:05:20 +0300) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:207616 Archived-At: > From: Nikolay Kudryavtsev > Date: Mon, 19 Sep 2016 02:05:20 +0300 > > I'm currently trying to make sense of the possible optional libraries that are used on Windows. Dependency Walker (http://www.dependencywalker.com/) is your friend. You can run it for each DLL and see its dependency DLLs. > Can someone help me document them? > > Here's a list I lifted from emacs-w64 project, with some commentaries added. I try adding some info below, but I don't have MinGW64 and cannot check things myself. (I also find many MSYS2 packages bloated with unneeded stuff, which then requires users to have many redundant DLLs around.) > libbwinpthread-*.dll ; msys2 built emacs does not work without it? Does not exist in official builds... I believe the MinGW64 GCC produces DLLs that depend on this and on libgcc_s_seh-*.dll. The package builders should be told to avoid that, since these 2 dependencies require the corresponding sources be available (and the sources for libgcc_s_seh-*.dll is the entire 80MB GCC distribution). > libdbus-*.dll ; is there a single legitimate usecase for dbus on windows? There could be, but Emacs built for Windows doesn't support D-Bus, so until that support is added, linking with this DLL is futile. > ;; Image support > libpng*.dll ; png images > libtiff-*.dll > libtiffxx-*.dll ; tiff images The last one is for C++ programs, so not needed for Emacs. > libjpeg-*.dll ; jpeg images > libgif-*.dll ; gif images > libXpm-noX*.dll ; xpm images > ;; rsvg dependencies > libglib-*.dll > libcairo-*.dll > libcroco-*.dll > libpango-*.dll > libpangocairo-*.dll > libpangoft*.dll > libpangowin32-*.dll > librsvg-*.dll ; svg images You've missed some rsvg dependencies, which appear under "unknown": > libgobject-*.dll > libgdk_pixbuf-*.dll > libgio-*.dll > libgmodule-*.dll > libfontconfig-*.dll > libfreetype-*.dll > libpixman-*.dll > libharfbuzz-*.dll > ;; Gnutls dependencies > libffi-*.dll ; only needed for msys2-based builds > libgmp-*.dll > libgnutls-*.dll > libgnutls-openssl-*.dll ; only in Eli's gnutls build It's in the GnuTLS binary distro, but is not needed for Emacs. > libgnutlsxx-*.dll ; only in msys2, same library as the previous one, with a different name? No, it's C++ APIs for GnuTLS; again, not needed for Emacs. > libhogweed-*.dll > libiconv-*.dll > libidn-*.dll ; only needed for msys2-based builds > libintl-*.dll > libnettle-*.dll > libp11-kit-*.dll > libtasn1-*.dll > zlib*.dll zlib is also used by Emacs directly. > ;; Unknown > libgomp-*.dll This one is part of GCC, use the Dependency Walker to see who needs it, if at all. > libxml2-*.dll This is the XML support library, required for HTML and XML support in Emacs. > libexpat-*.dll Not sure which DLL needs it, perhaps libxml2? > liblzma-*.dll > libbz2-*.dll > libjbig-*.dll Perhaps rsvg dependencies? HTH