From mboxrd@z Thu Jan 1 00:00:00 1970 From: Theodoros Foradis Subject: [PATCH v2 0/4] Add GCC cross compiler for arm-none-eabi. Date: Mon, 19 Sep 2016 23:23:36 +0300 Message-ID: <20160919202340.4122-1-theodoros.for@openmailbox.org> References: <20160918063513.11027-1-rekado@elephly.net> Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:43777) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bm57s-0000qU-IC for guix-devel@gnu.org; Mon, 19 Sep 2016 16:25:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bm57o-0003U6-Bz for guix-devel@gnu.org; Mon, 19 Sep 2016 16:25:15 -0400 Received: from smtp2.openmailbox.org ([62.4.1.36]:40532) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bm57o-0003SJ-2K for guix-devel@gnu.org; Mon, 19 Sep 2016 16:25:12 -0400 In-Reply-To: <20160918063513.11027-1-rekado@elephly.net> 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: rekado@elephly.net Cc: guix-devel@gnu.org Hello Guix and Ricardo, The original patch series was working correctly and producing working binaries. Some flags (that I had been using with 6.2.0) are missing from that version of GCC 4.9, so I added 6.2.0 as an extra option. I have tested it to produce working binaries. Here are some modifications to Ricardo's patches for the arm-none-eabi bare metal cross compiler. The following changes have been made: - I have modified xbinutils to use binutils 2.25.1 from cross-base, as it compiles correctly with it. The version from the svn commit that was used by Ricardo is compiling correct binaries as well. Thus, if it is deemed appropriate, the source for xbinutils can be swapped for the previous one, with (seemingly) no difference. - The xgcc of the original, was failing to find the headers that newlib provided. I have set the native-cross-paths as a workaround. Not sure if there is a better alternative, or if the failure was my mistake. - A package for cross GCC 6.2.0 is added, with appropriate patches for multilib support. - Newlib-arm-none-eabi and newlib-nano-arm-none-eabi have been changed to procedures, taking an xgcc as argument, so as to facilitate building with either version of gcc. - An arm-none-eabi-toolchain procedure is declared, to create toolchain packages for both gcc and newlib version. The four toolchain variables follow. Not sure if it's a mistake to include "nano" in the toolchain version. This is the first patch that I send in guix-devel, so please bear with me. Regards, Theodoros Foradis * gnu: Add arm-none-eabi-toolchain. * gnu: Add newlib-arm-none-eabi. * gnu: Add arm-none-eabi-gcc-6 and patches. * gnu: Add arm-none-eabi cross compiler. gnu/local.mk | 1 + gnu/packages/bootstrap.scm | 1 + gnu/packages/embedded.scm | 226 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ gnu/packages/patches/gcc-6-arm-none-eabi-multilib.patch | 201 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ gnu/packages/patches/gcc-6-cross-environment-variables.patch | 65 +++++++++++++++++++ 5 files changed, 494 insertions(+) create mode 100644 gnu/packages/embedded.scm create mode 100644 gnu/packages/patches/gcc-6-arm-none-eabi-multilib.patch create mode 100644 gnu/packages/patches/gcc-6-cross-environment-variables.patch