From owner-freebsd-toolchain@freebsd.org Tue Feb 14 15:57:14 2017 Return-Path: Delivered-To: freebsd-toolchain@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 789A0CDF67E; Tue, 14 Feb 2017 15:57:14 +0000 (UTC) (envelope-from wolfgang.meyer@hob.de) Received: from hobex29.hob.de (hobex19.hob.de [212.185.199.31]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D5B0916D1; Tue, 14 Feb 2017 15:57:13 +0000 (UTC) (envelope-from wolfgang.meyer@hob.de) Received: from HOBEX12.hob.de (172.22.1.12) by hobex19.hob.de (172.25.1.31) with Microsoft SMTP Server (TLS) id 14.2.347.0; Tue, 14 Feb 2017 16:56:54 +0100 Received: from HOBEX11.hob.de ([fe80::b99f:1c54:7122:49b4]) by HOBEX12.hob.de ([::1]) with mapi id 14.02.0387.000; Tue, 14 Feb 2017 16:57:01 +0100 From: "Meyer, Wolfgang" To: "'freebsd-arm@FreeBSD.org'" , "'freebsd-toolchain@FreeBSD.org'" Subject: RE: How to get a crosscompile toolchain for aarch64 for use in poudriere[?] Thread-Topic: How to get a crosscompile toolchain for aarch64 for use in poudriere[?] Thread-Index: AdKDrhWkwDVgm5wmQJOmHv89OT16WQACrmdQAMgAHTA= Date: Tue, 14 Feb 2017 15:57:01 +0000 Message-ID: References: In-Reply-To: Accept-Language: de-DE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.24.71.140] old-x-esetresult: clean, is OK old-x-esetid: 4EB48F3AB80C295018F1D5 x-esetresult: clean, is OK x-esetid: 4EB48F3AB80C295018F1D5 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-BeenThere: freebsd-toolchain@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Maintenance of FreeBSD's integrated toolchain List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Feb 2017 15:57:14 -0000 > -----Original Message----- > From: Meyer, Wolfgang > Sent: Freitag, 10. Februar 2017 17:19 > To: Meyer, Wolfgang; 'freebsd-arm@FreeBSD.org'; 'freebsd- > toolchain@FreeBSD.org' > Subject: RE: How to get a crosscompile toolchain for aarch64 for use in > poudriere[?] > > > Hello, > > > > > > To make the long story short, after comparing the verbose output of my > > compiling in the jails with that of a direct crosscompile I found out > > that it was able to correctly link some object files when providing > > absolute paths to the crt*.o files and correct library search path for = the > libgcc_something libraries. > > Which of course doesn't help when the linker is implicitly called by > > the compiler. Further research showed that I could crosscompile/link > > when providing the --sysroot=3D/ flag to overwrite the sysroot > > configuration from the build of the crosscompiler. Amending the lines > > > > CFLAGS+=3D--sysroot=3D/ > > CPPFLAGS+=3D--sysroot=3D/ (Don't know if needed) > > CXXFLAGS+=3D--sysroot=3D/ > > LDFLAGS+=3D--sysroot=3D/ > > > > to my poudriere make.conf file I finally was able to produce a working > > cross- compiled package for aarch64 in poudriere. And the gains are > > quite significant (around 21 minutes for building pkg package with > > qemu-user emulation vs 5 minutes using cross-compilation, native amd64 > > build in poudriere finishes in less than a minute). > > > > Still the creation of the cross-compiling toolchain seems to be quite > > cumbersome. Hence advice on getting such a toolchain in a cleaner way > > (ideally probably a working build for the xdev target) are greatly > appreciated. > > > > > After building some more packages besides of pkg it seems, I am still not > there yet. There is quite some fallout mainly during configure due to not > getting the right searchpath for the libraries. Maybe creating a symlink = on the > root directory at the path of the expected sysroot directory might heal t= his. In the meantime I figured out how to tweak the jail to get it to cross-buil= d the desired subset of ports without fallout. Some of the changes are mere= ly cosmetic but lead to a cleaner overall configuration in my point of view= . Changes to the previously described configuration include: - before starting the kernel-toolchain build make two nullfs-mounts: > mount -t nullfs //usr/src /usr/src > mount -t nullfs //usr/obj /usr/obj - after kernel-toolchain build and copying //usr/ob= j/usr/src/tmp/* to //usr/aarch64-freebsd delete //usr/obj/usr/src/tmp and create a symlink to / at //usr/obj/usr/src/tmp Now all tested ports cross-build fine with varying speed gains compared to = the qemu-user emulated (in the ballpark of two- to eightfold, but not analy= sed in detail). ________________________________ Follow HOB: - HOB: http://www.hob.de/redirect/hob.html - Xing: http://www.hob.de/redirect/xing.html - LinkedIn: http://www.hob.de/redirect/linkedin.html - HOBLink Mobile: http://www.hob.de/redirect/hoblinkmobile.html - Facebook: http://www.hob.de/redirect/facebook.html - Twitter: http://www.hob.de/redirect/twitter.html - YouTube: http://www.hob.de/redirect/youtube.html - E-Mail: http://www.hob.de/redirect/mail.html HOB GmbH & Co. KG Schwadermuehlstr. 3 D-90556 Cadolzburg Geschaeftsfuehrung: Klaus Brandstaetter, Zoran Adamovic AG Fuerth, HRA 5180 Steuer-Nr. 218/163/00107 USt-ID-Nr. DE 132747002 Komplementaerin HOB electronic Beteiligungs GmbH AG Fuerth, HRB 3416