Bump buidlroot version to 2018.02.6
This commit is contained in:
@@ -1,34 +0,0 @@
|
||||
From dedce8765d203c1c162a57e6259375e0b457173f Mon Sep 17 00:00:00 2001
|
||||
From: Greg Ungerer <gerg@linux-m68k.org>
|
||||
Date: Fri, 19 Aug 2016 23:49:51 +1000
|
||||
Subject: [PATCH] elf2flt: fix relocation support for R_ARM_TARGET types
|
||||
|
||||
R_ARM_TARGET1 (and I think R_ARM_TARGET2) relocation types should be
|
||||
treated in the same way as R_ARM_ABS32. Fix them to write out the addend
|
||||
to the flat binary in network byte order.
|
||||
|
||||
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
|
||||
Tested-by: Waldemar Brodkorb <wbx@openadk.org>
|
||||
|
||||
---
|
||||
elf2flt.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/elf2flt.c b/elf2flt.c
|
||||
index 5ae7dd9..3f31569 100644
|
||||
--- a/elf2flt.c
|
||||
+++ b/elf2flt.c
|
||||
@@ -1505,7 +1505,9 @@ DIS29_RELOCATION:
|
||||
(((*p)->howto->type != R_ARM_PC24) &&
|
||||
((*p)->howto->type != R_ARM_PLT32)))
|
||||
tmp.c[i3] = (hl >> 24) & 0xff;
|
||||
- if ((*p)->howto->type == R_ARM_ABS32)
|
||||
+ if (((*p)->howto->type == R_ARM_ABS32) ||
|
||||
+ ((*p)->howto->type == R_ARM_TARGET1) ||
|
||||
+ ((*p)->howto->type == R_ARM_TARGET2))
|
||||
*(uint32_t *)r_mem = htonl(hl);
|
||||
else
|
||||
*(uint32_t *)r_mem = tmp.l;
|
||||
--
|
||||
1.9.1
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
From b31e9b1bff6832063816b972395179859d1d4619 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Sun, 13 Aug 2017 16:03:20 +0200
|
||||
Subject: [PATCH] ld-elf2flt: behave properly when called with a name different
|
||||
from TARGET_ALIAS
|
||||
|
||||
ld-elf2flt currently handles two cases:
|
||||
|
||||
1 It is called as the wrapper for <TARGET_ALIAS>-ld, generally
|
||||
installed in the bin/ directory of a toolchain.
|
||||
|
||||
2 It is called as the wrapper for "ld", generally installed in the
|
||||
TARGET_ALIAS/bin/ directory of a toolchain.
|
||||
|
||||
Unfortunately, if for some reason it gets called using a FOOBAR-ld
|
||||
name that is different from <TARGET_ALIAS>-ld, it assumes it is in
|
||||
case (2), while it really is in case (1). Due to this, the path
|
||||
mangling logic doesn't work, and it doesn't find ld.real.
|
||||
|
||||
This happens for example when the binary program in bin/ is named
|
||||
arm-buildroot-uclinux-uclibcgnueabi-ld, but also has a simpler symlink
|
||||
named arm-linux-ld. In this case,
|
||||
arm-buildroot-uclinux-uclibcgnueabi-ld is recognized by ld-elf2flt as
|
||||
containing TARGET_ALIAS, and therefore the proper logic to find
|
||||
ld.real is applied. However, when arm-linux-ld is used, ld-elf2flt
|
||||
doesn't find TARGET_ALIAS, and therefore assumes we're being called as
|
||||
TARGET_ALIAS/bin/ld.. and searches for a program called ld.real in
|
||||
bin/, which doesn't exist.
|
||||
|
||||
See:
|
||||
|
||||
$ ./output/host/bin/arm-buildroot-uclinux-uclibcgnueabi-ld
|
||||
/home/thomas/buildroot/buildroot/output/host/bin/../arm-buildroot-uclinux-uclibcgnueabi/bin/ld.real: no input files
|
||||
|
||||
$ ./output/host/bin/arm-linux-ld
|
||||
arm-linux-ld (ld-elf2flt): error trying to exec '/home/thomas/buildroot/buildroot/output/host/bin/ld.real': execvp: No such file or directory
|
||||
|
||||
$ ./output/host/arm-buildroot-uclinux-uclibcgnueabi/bin/ld
|
||||
/home/thomas/buildroot/buildroot/output/host/arm-buildroot-uclinux-uclibcgnueabi/bin/ld.real: no input files
|
||||
|
||||
This commit fixes that by inverting the logic: if we're being called
|
||||
as just "ld", then we assume it's the program in
|
||||
TARGET_ALIAS/bin/. Otherwise, we're called through some variant of
|
||||
TARGET-ld.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Submitted-upstream: https://github.com/uclinux-dev/elf2flt/pull/8
|
||||
---
|
||||
ld-elf2flt.c | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/ld-elf2flt.c b/ld-elf2flt.c
|
||||
index de39fe0..c187c2e 100644
|
||||
--- a/ld-elf2flt.c
|
||||
+++ b/ld-elf2flt.c
|
||||
@@ -506,15 +506,15 @@ int main(int argc, char *argv[])
|
||||
the host while those in <TARGET_ALIAS>/lib are for the target.
|
||||
Make bindir point to the bin dir for bin/<TARGET_ALIAS>-foo.
|
||||
Make tooldir point to the bin dir for <TARGET_ALIAS>/bin/foo. */
|
||||
- if (streqn(elf2flt_progname, TARGET_ALIAS)) {
|
||||
- tmp = concat(argv0_dir, "../" TARGET_ALIAS "/bin", NULL);
|
||||
+ if (streqn(elf2flt_progname, "ld")) {
|
||||
+ tmp = concat(argv0_dir, "../../bin", NULL);
|
||||
if (stat(tmp, &buf) == 0 && S_ISDIR(buf.st_mode)) {
|
||||
- tooldir = concat(tmp, "/", NULL);
|
||||
+ bindir = concat(tmp, "/", NULL);
|
||||
}
|
||||
} else {
|
||||
- tmp = concat(argv0_dir, "../../bin", NULL);
|
||||
+ tmp = concat(argv0_dir, "../" TARGET_ALIAS "/bin", NULL);
|
||||
if (stat(tmp, &buf) == 0 && S_ISDIR(buf.st_mode)) {
|
||||
- bindir = concat(tmp, "/", NULL);
|
||||
+ tooldir = concat(tmp, "/", NULL);
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.9.4
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
# Locally calculated
|
||||
sha256 6a45a787a08da64f0f3036d3ae1865bc13f8f40d13f07511a2bf1b736acc4808 elf2flt-9dbc458c6122c495bbdec8dc975a15c9d39e5ff2.tar.gz
|
||||
sha256 7713bd1debd24a94b795b7fc698dc97e306e7cbcc1d0580856c79fe70aac9c45 elf2flt-6d80ab6c93409e796f85da404bde84b841231531.tar.gz
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
ELF2FLT_VERSION = 9dbc458c6122c495bbdec8dc975a15c9d39e5ff2
|
||||
ELF2FLT_VERSION = 6d80ab6c93409e796f85da404bde84b841231531
|
||||
ELF2FLT_SITE = $(call github,uclinux-dev,elf2flt,$(ELF2FLT_VERSION))
|
||||
ELF2FLT_LICENSE = GPLv2+
|
||||
ELF2FLT_LICENSE = GPL-2.0+
|
||||
ELF2FLT_LICENSE_FILES = LICENSE.TXT
|
||||
|
||||
HOST_ELF2FLT_DEPENDENCIES = host-binutils host-zlib
|
||||
@@ -29,4 +29,20 @@ endif
|
||||
|
||||
HOST_ELF2FLT_CONF_ENV = LIBS="$(HOST_ELF2FLT_LIBS)"
|
||||
|
||||
# Hardlinks between binaries in different directories cause a problem
|
||||
# with rpath fixup, so we de-hardlink those binaries, and replace them
|
||||
# with copies instead. Note that elf2flt will rename ld to ld.real
|
||||
# before installing its own ld, but we already took care of the
|
||||
# original ld from binutils so that it is already de-hardlinked. So
|
||||
# ld is now the one from elf2flt, and we want to de-hardlinke it.
|
||||
ELF2FLT_TOOLS = elf2flt flthdr ld
|
||||
define HOST_ELF2FLT_FIXUP_HARDLINKS
|
||||
$(foreach tool,$(ELF2FLT_TOOLS),\
|
||||
rm -f $(HOST_DIR)/$(GNU_TARGET_NAME)/bin/$(tool) && \
|
||||
cp -a $(HOST_DIR)/bin/$(GNU_TARGET_NAME)-$(tool) \
|
||||
$(HOST_DIR)/$(GNU_TARGET_NAME)/bin/$(tool)
|
||||
)
|
||||
endef
|
||||
HOST_ELF2FLT_POST_INSTALL_HOOKS += HOST_ELF2FLT_FIXUP_HARDLINKS
|
||||
|
||||
$(eval $(host-autotools-package))
|
||||
|
||||
Reference in New Issue
Block a user