mirror of
https://git.yoctoproject.org/poky
synced 2026-05-08 05:09:24 +00:00
gcc-target 5.1: fix for libcc1
Fixed:
* gcc 5 introduces a plugin libcc1.so, which is used by gdb, the target
gcc didn't build it in the past because gcc_cv_objdump is null, and
the error was:
gcc-5.2.0/libcc1/configure: line 14531: -T: command not found
This only happens for tar gcc as the code shows:
if test x$build = x$host; then
export_sym_check="objdump${exeext} -T"
elif test x$host = x$target; then
export_sym_check="$gcc_cv_objdump -T"
else
export_sym_check=
fi
* Install libcc1.so and libcc1plugin.so to
$(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) as lto-plugin did.
* Use sed command to fix bad RPATH iussue.
[YOCTO #7956]
(From OE-Core rev: f6e47aa9b12f9ab61530c40e0343f451699d9077)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
fd91e71077
commit
e86dc1a182
@@ -70,6 +70,7 @@ SRC_URI = "\
|
||||
file://0036-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch \
|
||||
file://0037-pr65779.patch \
|
||||
file://0038-fix-g++-sysroot.patch \
|
||||
file://0039-libcc1-fix-libcc1-s-install-path-and-rpath.patch \
|
||||
"
|
||||
|
||||
BACKPORTS = ""
|
||||
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
From acea0df9997a47f8b8224b6ca1618c8c9dfbe6d5 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Yang <liezhi.yang@windriver.com>
|
||||
Date: Sun, 5 Jul 2015 20:25:18 -0700
|
||||
Subject: [PATCH] libcc1: fix libcc1's install path and rpath
|
||||
|
||||
* Install libcc1.so and libcc1plugin.so into
|
||||
$(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version), as what we
|
||||
had done to lto-plugin.
|
||||
* Fix bad RPATH iussue:
|
||||
gcc-5.2.0: package gcc-plugins contains bad RPATH /patht/to/tmp/sysroots/qemux86-64/usr/lib64/../lib64 in file
|
||||
/path/to/gcc/5.2.0-r0/packages-split/gcc-plugins/usr/lib64/gcc/x86_64-poky-linux/5.2.0/plugin/libcc1plugin.so.0.0.0
|
||||
[rpaths]
|
||||
|
||||
Upstream-Status: Inappropriate [OE configuration]
|
||||
|
||||
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
|
||||
---
|
||||
libcc1/Makefile.am | 4 ++--
|
||||
libcc1/Makefile.in | 4 ++--
|
||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/libcc1/Makefile.am b/libcc1/Makefile.am
|
||||
index 7a274b3..db69bea 100644
|
||||
--- a/libcc1/Makefile.am
|
||||
+++ b/libcc1/Makefile.am
|
||||
@@ -35,8 +35,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \
|
||||
$(Wc)$(libiberty_normal)))
|
||||
libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty))
|
||||
|
||||
-plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin
|
||||
-cc1libdir = $(libdir)/$(libsuffix)
|
||||
+cc1libdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version)
|
||||
+plugindir = $(cc1libdir)
|
||||
|
||||
if ENABLE_PLUGIN
|
||||
plugin_LTLIBRARIES = libcc1plugin.la
|
||||
diff --git a/libcc1/Makefile.in b/libcc1/Makefile.in
|
||||
index 1916134..c8995d2 100644
|
||||
--- a/libcc1/Makefile.in
|
||||
+++ b/libcc1/Makefile.in
|
||||
@@ -262,8 +262,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \
|
||||
$(Wc)$(libiberty_normal)))
|
||||
|
||||
libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty))
|
||||
-plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin
|
||||
-cc1libdir = $(libdir)/$(libsuffix)
|
||||
+cc1libdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version)
|
||||
+plugindir = $(cc1libdir)
|
||||
@ENABLE_PLUGIN_TRUE@plugin_LTLIBRARIES = libcc1plugin.la
|
||||
@ENABLE_PLUGIN_TRUE@cc1lib_LTLIBRARIES = libcc1.la
|
||||
BUILT_SOURCES = compiler-name.h
|
||||
@@ -10,6 +10,11 @@ EXTRA_OECONF_PATHS = "\
|
||||
|
||||
EXTRA_OECONF_append_linuxstdbase = " --enable-clocale=gnu"
|
||||
|
||||
# libcc1 requres gcc_cv_objdump when cross build, but gcc_cv_objdump is
|
||||
# set in subdir gcc, so subdir libcc1 can't use it, export it here to
|
||||
# fix the problem.
|
||||
export gcc_cv_objdump = "${TARGET_PREFIX}objdump"
|
||||
|
||||
EXTRA_OECONF_GCC_FLOAT = "${@get_gcc_float_setting(bb, d)}"
|
||||
|
||||
PACKAGES = "\
|
||||
|
||||
@@ -5,3 +5,9 @@ require gcc-target.inc
|
||||
# | gcc-4.8.1-r0/gcc-4.8.1/gcc/cp/decl.c:7438:(.text.unlikely+0x2fa): relocation truncated to fit: R_ARM_THM_CALL against symbol `fancy_abort(char const*, int, char const*)' defined in .glue_7 section in linker stubs
|
||||
# | gcc-4.8.1-r0/gcc-4.8.1/gcc/cp/decl.c:7442:(.text.unlikely+0x318): additional relocation overflows omitted from the output
|
||||
ARM_INSTRUCTION_SET_armv4 = "arm"
|
||||
|
||||
do_configure_prepend() {
|
||||
# Easiest way to stop bad RPATHs getting into the library since we have a
|
||||
# broken libtool here
|
||||
sed -i -e 's/hardcode_into_libs=yes/hardcode_into_libs=no/' ${S}/libcc1/configure
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user