From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: MinGW cross-compilation support Date: Wed, 07 Dec 2016 22:39:31 +0100 Message-ID: <87shpz771o.fsf@gnu.org> References: <20160818060851.2853-1-janneke@gnu.org> <20160818060851.2853-11-janneke@gnu.org> <87wpfc9j3d.fsf_-_@gnu.org> <87y3zrde6b.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:56910) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cEjwN-0003zF-5X for guix-devel@gnu.org; Wed, 07 Dec 2016 16:39:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cEjwM-0005Kv-9s for guix-devel@gnu.org; Wed, 07 Dec 2016 16:39:51 -0500 In-Reply-To: <87y3zrde6b.fsf@gnu.org> (Jan Nieuwenhuizen's message of "Wed, 07 Dec 2016 15:09:00 +0100") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Jan Nieuwenhuizen Cc: guix-devel@gnu.org Jan Nieuwenhuizen skribis: > Ludovic Court=C3=A8s writes: > >> After all this time I=E2=80=99m happy to report that I=E2=80=99ve finall= y merged MinGW >> cross-compilation support, woohoo! > > Yay, thanks Ludovic, Manolis and Mark!!! Well, thank *you*! There were a lot of iterations on this patch series, a lot of work, probably a lot of time waiting for compilations to finish ;-), and then a lot of time waiting for the thing to be finally merged. >> I didn=E2=80=99t merge the cross-libtool patch and this one: >> >> Jan Nieuwenhuizen skribis: >> >>> * gnu/packages/ncurses.scm (ncurses)[MINGW]: Build with libtool, as >>> recommended; enables dlopen'ing. >> >> I=E2=80=99m not sure what this means (and the explanation should be as a= comment >> in the code). Could you explain a bit more? > > The ncurses README.MinGW says > > I recommend using libtool to build ncurses on MinGW, because libtool > knows exactly how to build dll's on Windows for use with MinGW. > > and if you use libtool, it will generate .la files that are necessary > to dlopen the DLLs. > >> The idea of Libtool is normally to bundle it in the package tarball. >> That ncurses can optionally take an externally-provided Libtool is weird >> and I=E2=80=99d rather avoid relying on that if possible. > > I agree; this is quite a trick silly setup, esp. using cross builds. > I thought there was a better reason for doing this; that it was needed > to build readline or use readline from guile.exe...I can't remember; > we'll find out. OK! >> Adding a new cross-compilation target is a commitment. So I hope you >> and others will make sure it remains functional and useful! > > Yes. There are two things I want to do next. I have another 10 patches > bitrotting around that enable cross building LilyPond. I want to clean > them up and merge them one by one. Also I'd like to look into deploying > guile.exe on Wine/Windows; maybe this should be a first. I could do > with some ideas here. Create packages that can be installed/unpacked, > or port some minimal part of guix so that it can fetch and install > binaries from the store? When we have =E2=80=98guix pack=E2=80=99 (a generalization of =E2=80=9Cmake guix-binary.x86_64-linux.tar.xz=E2=80=9D), that will be a simple way to tra= nsfer a bunch of store items to a Windows box. Besides, having a test that runs guile.exe in Wine could be useful. (Though now that Windows implements the Linux syscalls we should make sure the investment is worth it!) Ludo=E2=80=99.