update buildroot to 2017.02.11
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
From 580f46a7bc6e9fea3a2227b5268cc3aed1d60e3b Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Thu, 7 Feb 2013 22:26:56 +0100
|
||||
Subject: [PATCH] Fix installation location of libffi
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The libffi is currently declared as toolexeclib_LTLIBRARIES. In many
|
||||
cases, toolexeclib libraries will be installed in /usr/lib, so it
|
||||
doesn't make any difference.
|
||||
|
||||
However, with multilib toolchains, they get installed in a
|
||||
subdirectory of /usr/lib/. For example, with a Sourcery CodeBench
|
||||
PowerPC toolchain, if the e500mc multilib variant is used, the libffi
|
||||
library gets installed in /usr/lib/te500mc/. This is due to the
|
||||
following code in the configure script:
|
||||
|
||||
multi_os_directory=`$CC -print-multi-os-directory`
|
||||
case $multi_os_directory in
|
||||
.) ;; # Avoid trailing /.
|
||||
*) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;;
|
||||
esac
|
||||
|
||||
Once the library is installed in /usr/lib/te500mc/, nothing works
|
||||
because this installation location is inconsistent with the
|
||||
installation location declared in libffi.pc.
|
||||
|
||||
So, instead of using this bizarre toolexeclib_LTLIBRARIES, simply use
|
||||
the more standard lib_LTLIBRARIES, which ensures that the libffi
|
||||
library is always installed in /usr/lib.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
[unfuzz for 3.2.1]
|
||||
Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
|
||||
---
|
||||
Makefile.am | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 0e40451..309474c 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -104,7 +104,7 @@ FLAGS_TO_PASS = $(AM_MAKEFLAGS)
|
||||
|
||||
MAKEOVERRIDES=
|
||||
|
||||
-toolexeclib_LTLIBRARIES = libffi.la
|
||||
+lib_LTLIBRARIES = libffi.la
|
||||
noinst_LTLIBRARIES = libffi_convenience.la
|
||||
|
||||
libffi_la_SOURCES = src/prep_cif.c src/types.c \
|
||||
--
|
||||
2.5.3
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
From 31b6b6bc14197cd4183bdbd311fddeb36b5ae100 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?J=C3=B6rg=20Krause?= <joerg.krause@embedded.rocks>
|
||||
Date: Sat, 19 Sep 2015 22:53:29 +0200
|
||||
Subject: [PATCH] Fix use of compact eh frames on MIPS
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Newer MIPS toolchains use a different (compact) eh_frame format.
|
||||
libffi don't like them, so we have to switch to the older format.
|
||||
|
||||
This patch add -mno-compact-eh to CFLAGS when compiling for
|
||||
Mips and compiler support it.
|
||||
|
||||
Signed-off-by: Jérôme Pouiller <jezz@sysmic.org>
|
||||
[unfuzz for 3.2.1]
|
||||
Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
|
||||
---
|
||||
configure.ac | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index a7bf5ee..36cd0d4 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -469,6 +469,16 @@ esac
|
||||
AM_CONDITIONAL(FFI_EXEC_TRAMPOLINE_TABLE, test x$FFI_EXEC_TRAMPOLINE_TABLE = x1)
|
||||
AC_SUBST(FFI_EXEC_TRAMPOLINE_TABLE)
|
||||
|
||||
+if test x$TARGET = xMIPS; then
|
||||
+ save_CFLAGS="$CFLAGS"
|
||||
+ CFLAGS=-mno-compact-eh
|
||||
+ AC_MSG_CHECKING([whether the C compiler needs -mno-compact-eh])
|
||||
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
|
||||
+ [AC_MSG_RESULT([yes])]; [save_CFLAGS="$save_CFLAGS -mno-compact-eh"],
|
||||
+ [AC_MSG_RESULT([no])])
|
||||
+ CFLAGS="$save_CFLAGS"
|
||||
+fi
|
||||
+
|
||||
if test x$TARGET = xX86_64; then
|
||||
AC_CACHE_CHECK([toolchain supports unwind section type],
|
||||
libffi_cv_as_x86_64_unwind_section_type, [
|
||||
--
|
||||
2.5.3
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
From 48bc37fabbc685b1e3293055bd33ca66c619305e Mon Sep 17 00:00:00 2001
|
||||
From: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
|
||||
Date: Wed, 13 Jan 2016 14:49:59 +0000
|
||||
Subject: [PATCH] libffi: enable hardfloat in the MIPS assembly code
|
||||
|
||||
This way it will be possible to build it for soft-float. This is only a
|
||||
temporary fix. The package needs to be fixed properly.
|
||||
|
||||
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
|
||||
---
|
||||
src/mips/n32.S | 1 +
|
||||
src/mips/o32.S | 1 +
|
||||
2 files changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/mips/n32.S b/src/mips/n32.S
|
||||
index c6985d3..dc842d5 100644
|
||||
--- a/src/mips/n32.S
|
||||
+++ b/src/mips/n32.S
|
||||
@@ -44,6 +44,7 @@
|
||||
.abicalls
|
||||
#endif
|
||||
.set mips4
|
||||
+ .set hardfloat
|
||||
.text
|
||||
.align 2
|
||||
.globl ffi_call_N32
|
||||
diff --git a/src/mips/o32.S b/src/mips/o32.S
|
||||
index eb27981..b653daf 100644
|
||||
--- a/src/mips/o32.S
|
||||
+++ b/src/mips/o32.S
|
||||
@@ -42,6 +42,7 @@
|
||||
#define RA_OFF (SIZEOF_FRAME - 1 * FFI_SIZEOF_ARG)
|
||||
|
||||
.abicalls
|
||||
+ .set hardfloat
|
||||
.text
|
||||
.align 2
|
||||
.globl ffi_call_O32
|
||||
--
|
||||
2.4.10
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
From 733bb188b898385cfb5ad28cc0e3ecaf38237350 Mon Sep 17 00:00:00 2001
|
||||
From: Waldemar Brodkorb <wbx@openadk.org>
|
||||
Date: Sat, 20 Aug 2016 00:52:19 +0200
|
||||
Subject: [PATCH] m68k: support ISA-A Coldfire CPUs
|
||||
|
||||
Fix compilation for m68k/coldfire CPUs like mcf5208.
|
||||
|
||||
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
|
||||
Signed-off-by: Thorsten Glaser <tg@mirbsd.de>
|
||||
---
|
||||
src/m68k/sysv.S | 29 ++++++++++++++++++++++++++++-
|
||||
1 file changed, 28 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/m68k/sysv.S b/src/m68k/sysv.S
|
||||
index ec2b14f..ea40f11 100644
|
||||
--- a/src/m68k/sysv.S
|
||||
+++ b/src/m68k/sysv.S
|
||||
@@ -3,7 +3,7 @@
|
||||
sysv.S - Copyright (c) 2012 Alan Hourihane
|
||||
Copyright (c) 1998, 2012 Andreas Schwab
|
||||
Copyright (c) 2008 Red Hat, Inc.
|
||||
- Copyright (c) 2012 Thorsten Glaser
|
||||
+ Copyright (c) 2012, 2016 Thorsten Glaser
|
||||
|
||||
m68k Foreign Function Interface
|
||||
|
||||
@@ -72,6 +72,15 @@ CALLFUNC(ffi_call_SYSV):
|
||||
pea 4(%sp)
|
||||
#if !defined __PIC__
|
||||
jsr CALLFUNC(ffi_prep_args)
|
||||
+#elif defined(__uClinux__) && defined(__ID_SHARED_LIBRARY__)
|
||||
+ move.l _current_shared_library_a5_offset_(%a5),%a0
|
||||
+ move.l CALLFUNC(ffi_prep_args@GOT)(%a0),%a0
|
||||
+ jsr (%a0)
|
||||
+#elif defined(__mcoldfire__) && !defined(__mcfisab__) && !defined(__mcfisac__)
|
||||
+ move.l #_GLOBAL_OFFSET_TABLE_@GOTPC,%a0
|
||||
+ lea (-6,%pc,%a0),%a0
|
||||
+ move.l CALLFUNC(ffi_prep_args@GOT)(%a0),%a0
|
||||
+ jsr (%a0)
|
||||
#else
|
||||
bsr.l CALLFUNC(ffi_prep_args@PLTPC)
|
||||
#endif
|
||||
@@ -215,6 +224,15 @@ CALLFUNC(ffi_closure_SYSV):
|
||||
move.l %a0,-(%sp)
|
||||
#if !defined __PIC__
|
||||
jsr CALLFUNC(ffi_closure_SYSV_inner)
|
||||
+#elif defined(__uClinux__) && defined(__ID_SHARED_LIBRARY__)
|
||||
+ move.l _current_shared_library_a5_offset_(%a5),%a0
|
||||
+ move.l CALLFUNC(ffi_closure_SYSV_inner@GOT)(%a0),%a0
|
||||
+ jsr (%a0)
|
||||
+#elif defined(__mcoldfire__) && !defined(__mcfisab__) && !defined(__mcfisac__)
|
||||
+ move.l #_GLOBAL_OFFSET_TABLE_@GOTPC,%a0
|
||||
+ lea (-6,%pc,%a0),%a0
|
||||
+ move.l CALLFUNC(ffi_closure_SYSV_inner@GOT)(%a0),%a0
|
||||
+ jsr (%a0)
|
||||
#else
|
||||
bsr.l CALLFUNC(ffi_closure_SYSV_inner@PLTPC)
|
||||
#endif
|
||||
@@ -317,6 +335,15 @@ CALLFUNC(ffi_closure_struct_SYSV):
|
||||
move.l %a0,-(%sp)
|
||||
#if !defined __PIC__
|
||||
jsr CALLFUNC(ffi_closure_SYSV_inner)
|
||||
+#elif defined(__uClinux__) && defined(__ID_SHARED_LIBRARY__)
|
||||
+ move.l _current_shared_library_a5_offset_(%a5),%a0
|
||||
+ move.l CALLFUNC(ffi_closure_SYSV_inner@GOT)(%a0),%a0
|
||||
+ jsr (%a0)
|
||||
+#elif defined(__mcoldfire__) && !defined(__mcfisab__) && !defined(__mcfisac__)
|
||||
+ move.l #_GLOBAL_OFFSET_TABLE_@GOTPC,%a0
|
||||
+ lea (-6,%pc,%a0),%a0
|
||||
+ move.l CALLFUNC(ffi_closure_SYSV_inner@GOT)(%a0),%a0
|
||||
+ jsr (%a0)
|
||||
#else
|
||||
bsr.l CALLFUNC(ffi_closure_SYSV_inner@PLTPC)
|
||||
#endif
|
||||
--
|
||||
1.7.10.4
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
From 1f43e5edfd91bee80e518432b80db01f1bf226e3 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Sun, 22 Oct 2017 15:02:11 +0200
|
||||
Subject: [PATCH] mips: use __linux__ and not linux
|
||||
|
||||
The "linux" symbol is not POSIX compliant [1], and therefore not
|
||||
defined when building with -std=c99. Due to this, the linux
|
||||
conditional block doesn't get used on Linux when building Python 3.x
|
||||
(which is built with -std=c99). To fix this, we use the POSIX
|
||||
compliant __linux__ symbol, which is defined when -std=c99 is used.
|
||||
|
||||
This fixes the build of Python 3.x on MIPS/musl configuration, as it
|
||||
makes sures that <asm/sgidefs.h> gets included and not <sgidefs.h>.
|
||||
|
||||
[1] https://sourceforge.net/p/predef/wiki/OperatingSystems/
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
src/mips/ffitarget.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/mips/ffitarget.h b/src/mips/ffitarget.h
|
||||
index 717d659..6faa358 100644
|
||||
--- a/src/mips/ffitarget.h
|
||||
+++ b/src/mips/ffitarget.h
|
||||
@@ -32,7 +32,7 @@
|
||||
#error "Please do not include ffitarget.h directly into your source. Use ffi.h instead."
|
||||
#endif
|
||||
|
||||
-#ifdef linux
|
||||
+#ifdef __linux__
|
||||
# include <asm/sgidefs.h>
|
||||
#elif defined(__rtems__)
|
||||
/*
|
||||
--
|
||||
2.13.6
|
||||
|
||||
13
bsp/buildroot-2017.02.11/package/libffi/Config.in
Normal file
13
bsp/buildroot-2017.02.11/package/libffi/Config.in
Normal file
@@ -0,0 +1,13 @@
|
||||
config BR2_PACKAGE_LIBFFI
|
||||
bool "libffi"
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
help
|
||||
The libffi library provides a portable, high level
|
||||
programming interface to various calling conventions. This
|
||||
allows a programmer to call any function specified by a call
|
||||
interface description at run-time.
|
||||
|
||||
http://sourceware.org/libffi/
|
||||
|
||||
comment "libffi needs a toolchain w/ threads"
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS
|
||||
2
bsp/buildroot-2017.02.11/package/libffi/libffi.hash
Normal file
2
bsp/buildroot-2017.02.11/package/libffi/libffi.hash
Normal file
@@ -0,0 +1,2 @@
|
||||
# From ftp://sourceware.org/pub/libffi/sha512.sum
|
||||
sha512 980ca30a8d76f963fca722432b1fe5af77d7a4e4d2eac5144fbc5374d4c596609a293440573f4294207e1bdd9fda80ad1e1cafb2ffb543df5a275bc3bd546483 libffi-3.2.1.tar.gz
|
||||
37
bsp/buildroot-2017.02.11/package/libffi/libffi.mk
Normal file
37
bsp/buildroot-2017.02.11/package/libffi/libffi.mk
Normal file
@@ -0,0 +1,37 @@
|
||||
################################################################################
|
||||
#
|
||||
# libffi
|
||||
#
|
||||
################################################################################
|
||||
|
||||
LIBFFI_VERSION = 3.2.1
|
||||
LIBFFI_SITE = ftp://sourceware.org/pub/libffi
|
||||
LIBFFI_LICENSE = MIT
|
||||
LIBFFI_LICENSE_FILES = LICENSE
|
||||
LIBFFI_INSTALL_STAGING = YES
|
||||
LIBFFI_AUTORECONF = YES
|
||||
|
||||
# Move the headers to the usual location, and adjust the .pc file
|
||||
# accordingly.
|
||||
define LIBFFI_MOVE_HEADERS
|
||||
mv $(1)/usr/lib/libffi-$(LIBFFI_VERSION)/include/*.h $(1)/usr/include/
|
||||
$(SED) '/^includedir.*/d' -e '/^Cflags:.*/d' \
|
||||
$(1)/usr/lib/pkgconfig/libffi.pc
|
||||
rm -rf $(1)/usr/lib/libffi-*
|
||||
endef
|
||||
|
||||
LIBFFI_MOVE_STAGING_HEADERS = $(call LIBFFI_MOVE_HEADERS,$(STAGING_DIR))
|
||||
LIBFFI_POST_INSTALL_STAGING_HOOKS += LIBFFI_MOVE_STAGING_HEADERS
|
||||
|
||||
HOST_LIBFFI_MOVE_HOST_HEADERS = $(call LIBFFI_MOVE_HEADERS,$(HOST_DIR))
|
||||
HOST_LIBFFI_POST_INSTALL_HOOKS += HOST_LIBFFI_MOVE_HOST_HEADERS
|
||||
|
||||
# Remove headers that are not at the usual location from the target
|
||||
define LIBFFI_REMOVE_TARGET_HEADERS
|
||||
$(RM) -rf $(TARGET_DIR)/usr/lib/libffi-$(LIBFFI_VERSION)
|
||||
endef
|
||||
|
||||
LIBFFI_POST_INSTALL_TARGET_HOOKS += LIBFFI_REMOVE_TARGET_HEADERS
|
||||
|
||||
$(eval $(autotools-package))
|
||||
$(eval $(host-autotools-package))
|
||||
Reference in New Issue
Block a user