summaryrefslogtreecommitdiff
path: root/toolchain
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2014-03-25 12:05:56 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2014-03-25 12:05:56 +0100
commit46af98aa4327633d1509d728b3b85e0a4da39c9b (patch)
tree2ced01a0c1cb247f8f1193af80a9cf61d7ec762a /toolchain
parent850ed0a79fd5c91ac6d037b151cd6ce314a3871f (diff)
add support for x86_64 toolchain with 32 bit abi
Diffstat (limited to 'toolchain')
-rw-r--r--toolchain/binutils/Makefile2
-rw-r--r--toolchain/gcc/Makefile4
-rw-r--r--toolchain/gcc/patches/4.8.2/abi32.patch54
-rw-r--r--toolchain/glibc/Makefile.inc2
4 files changed, 58 insertions, 4 deletions
diff --git a/toolchain/binutils/Makefile b/toolchain/binutils/Makefile
index 6490c19aa..4d34e3566 100644
--- a/toolchain/binutils/Makefile
+++ b/toolchain/binutils/Makefile
@@ -16,7 +16,7 @@ ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI),y)
CONFOPTS+= --with-arch=armv6
endif
-ifneq ($(strip $(ADK_LINUX_64)$(ADK_TARGET_KERNEL64)),)
+ifneq ($(ADK_LINUX_64),)
CONFOPTS+= --enable-64-bit-bfd
endif
diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile
index 5595f82dd..611de97bf 100644
--- a/toolchain/gcc/Makefile
+++ b/toolchain/gcc/Makefile
@@ -45,10 +45,10 @@ endif
ifeq ($(ADK_LINUX_X86_64),y)
ifeq ($(ADK_x32),y)
-GCC_FINAL_CONFOPTS+= --enable-multilib --with-multilib-list=mx32
+GCC_FINAL_CONFOPTS+= --with-abi=x32
endif
ifeq ($(ADK_32),y)
-GCC_FINAL_CONFOPTS+= --enable-multilib --with-multilib-list=m32
+GCC_FINAL_CONFOPTS+= --with-abi=32
endif
ifeq ($(ADK_64),y)
GCC_FINAL_CONFOPTS+= --disable-biarch --disable-multilib
diff --git a/toolchain/gcc/patches/4.8.2/abi32.patch b/toolchain/gcc/patches/4.8.2/abi32.patch
new file mode 100644
index 000000000..856d608bd
--- /dev/null
+++ b/toolchain/gcc/patches/4.8.2/abi32.patch
@@ -0,0 +1,54 @@
+diff -Nur gcc-4.8.2.orig/gcc/config/i386/biarch32.h gcc-4.8.2/gcc/config/i386/biarch32.h
+--- gcc-4.8.2.orig/gcc/config/i386/biarch32.h 1970-01-01 01:00:00.000000000 +0100
++++ gcc-4.8.2/gcc/config/i386/biarch32.h 2014-03-23 20:33:52.000000000 +0100
+@@ -0,0 +1,27 @@
++/* Make configure files to produce biarch compiler defaulting to 32bit mode.
++ This file must be included very first, while the OS specific file later
++ to overwrite otherwise wrong defaults.
++ Copyright (C) 2001-2014 Free Software Foundation, Inc.
++
++This file is part of GCC.
++
++GCC is free software; you can redistribute it and/or modify
++it under the terms of the GNU General Public License as published by
++the Free Software Foundation; either version 3, or (at your option)
++any later version.
++
++GCC is distributed in the hope that it will be useful,
++but WITHOUT ANY WARRANTY; without even the implied warranty of
++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++GNU General Public License for more details.
++
++Under Section 7 of GPL version 3, you are granted additional
++permissions described in the GCC Runtime Library Exception, version
++3.1, as published by the Free Software Foundation.
++
++You should have received a copy of the GNU General Public License and
++a copy of the GCC Runtime Library Exception along with this program;
++see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++<http://www.gnu.org/licenses/>. */
++
++#define TARGET_64BIT_DEFAULT 0
+diff -Nur gcc-4.8.2.orig/gcc/config.gcc gcc-4.8.2/gcc/config.gcc
+--- gcc-4.8.2.orig/gcc/config.gcc 2013-10-03 02:47:24.000000000 +0200
++++ gcc-4.8.2/gcc/config.gcc 2014-03-22 13:15:18.000000000 +0100
+@@ -522,6 +522,9 @@
+ 64 | m64)
+ tm_file="i386/biarch64.h ${tm_file}"
+ ;;
++ 32 | m32)
++ tm_file="i386/biarch32.h ${tm_file}"
++ ;;
+ x32 | mx32)
+ tm_file="i386/biarchx32.h ${tm_file}"
+ ;;
+@@ -1343,6 +1346,9 @@
+ x32 | mx32)
+ x86_multilibs="mx32"
+ ;;
++ 32 | m32)
++ x86_multilibs="m32"
++ ;;
+ *)
+ x86_multilibs="m64,m32"
+ ;;
diff --git a/toolchain/glibc/Makefile.inc b/toolchain/glibc/Makefile.inc
index 6671f1e2d..3a9f24e33 100644
--- a/toolchain/glibc/Makefile.inc
+++ b/toolchain/glibc/Makefile.inc
@@ -6,7 +6,7 @@ PKG_VERSION:= 2.19
PKG_RELEASE:= 1
PKG_MD5SUM:= 5374d29864b583622b62bfc6b8429418
PKG_SITES:= ${MASTER_SITE_GNU:=glibc/}
-ifeq ($(ADK_TARGET_ABI_32),y)
+ifeq ($(ADK_32),y)
GLIBC_TARGET_NAME:= i686-openadk-linux-gnu
else
GLIBC_TARGET_NAME:= $(GNU_TARGET_NAME)