mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-25 00:11:13 +00:00
139f99c058
Changes compared to GCC 7.x 001-revert_register_mode_search.patch dropped The underlying issue is described at the end of https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58139 It is fixed by the upstream commit:3fa2798aa8
020-PR-libstdc-81797-Add-.NOTPARALLEL-to-include-Makefil.patch dropped due to already upstream 100-PR-rtl-optimization-83496.patch dropped due to already upstream 910-mbsd_multi.patch modified to fix ambiguous overloaded inform() call error gcc/input.h header: define UNKNOWN_LOCATION ((source_location) 0) - inform (0, "someone does not honour COPTS correctly, passed %d times", - honour_copts); + inform (UNKNOWN_LOCATION, "someone does not honour COPTS correctly, passed %d times", + honour_copts); 940-no-clobber-stamp-bits.patch dropped due to fixed upstream by another way upstream commit:87b2d547f8
950-cpp_file_path_translation.patch dropped, Both -fmacro-prefix-map and -ffile-prefix-map are added to gcc 8.1.0, if I understand it correctly, we should use -fmacro-prefix-map usage: -fmacro-prefix-map=@var{old}=@var{new} upstream commit:859b51f836
-iremap exists as a flag for a long time, for backward compatibility, I think we should keep the variable name unchanged but change its value in rules.mk for gcc 8.x and higher. Compile and run tested on x86_64 Signed-off-by: Syrone Wong <wong.syrone@gmail.com>
68 lines
2.8 KiB
Diff
68 lines
2.8 KiB
Diff
From dda6b050cd74a352670787a294596a9c56c21327 Mon Sep 17 00:00:00 2001
|
|
From: Yousong Zhou <yszhou4tech@gmail.com>
|
|
Date: Fri, 4 May 2018 18:20:53 +0800
|
|
Subject: [PATCH] gotools: fix compilation when making cross compiler
|
|
|
|
libgo is "the runtime support library for the Go programming language.
|
|
This library is intended for use with the Go frontend."
|
|
|
|
gccgo will link target files with libgo.so which depends on libgcc_s.so.1, but
|
|
the linker will complain that it cannot find it. That's because shared libgcc
|
|
is not present in the install directory yet. libgo.so was made without problem
|
|
because gcc will emit -lgcc_s when compiled with -shared option. When gotools
|
|
were being made, it was supplied with -static-libgcc thus no link option was
|
|
provided. Check LIBGO in gcc/go/gcc-spec.c for how gccgo make a builtin spec
|
|
for linking with libgo.so
|
|
|
|
- GccgoCrossCompilation, https://github.com/golang/go/wiki/GccgoCrossCompilation
|
|
- Cross-building instructions, http://www.eglibc.org/archives/patches/msg00078.html
|
|
|
|
When 3-pass GCC compilation is used, shared libgcc runtime libraries will be
|
|
available after gcc pass2 completed and will meet the gotools link requirement
|
|
at gcc pass3
|
|
---
|
|
gotools/Makefile.am | 4 +++-
|
|
gotools/Makefile.in | 4 +++-
|
|
2 files changed, 6 insertions(+), 2 deletions(-)
|
|
|
|
--- a/gotools/Makefile.am
|
|
+++ b/gotools/Makefile.am
|
|
@@ -26,6 +26,7 @@ PWD_COMMAND = $${PWDCMD-pwd}
|
|
STAMP = echo timestamp >
|
|
|
|
libgodir = ../$(target_noncanonical)/libgo
|
|
+libgccdir = ../$(target_noncanonical)/libgcc
|
|
LIBGODEP = $(libgodir)/libgo.la
|
|
|
|
LIBGOTOOL = $(libgodir)/libgotool.a
|
|
@@ -41,7 +42,8 @@ GOCFLAGS = $(CFLAGS_FOR_TARGET)
|
|
GOCOMPILE = $(GOCOMPILER) $(GOCFLAGS)
|
|
|
|
AM_GOCFLAGS = -I $(libgodir)
|
|
-AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs
|
|
+AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs \
|
|
+ -L $(libgccdir) -L $(libgccdir)/.libs -lgcc_s
|
|
GOLINK = $(GOCOMPILER) $(GOCFLAGS) $(AM_GOCFLAGS) $(LDFLAGS) $(AM_LDFLAGS) -o $@
|
|
|
|
libgosrcdir = $(srcdir)/../libgo/go
|
|
--- a/gotools/Makefile.in
|
|
+++ b/gotools/Makefile.in
|
|
@@ -263,6 +263,7 @@ mkinstalldirs = $(SHELL) $(toplevel_srcd
|
|
PWD_COMMAND = $${PWDCMD-pwd}
|
|
STAMP = echo timestamp >
|
|
libgodir = ../$(target_noncanonical)/libgo
|
|
+libgccdir = ../$(target_noncanonical)/libgcc
|
|
LIBGODEP = $(libgodir)/libgo.la
|
|
LIBGOTOOL = $(libgodir)/libgotool.a
|
|
@NATIVE_FALSE@GOCOMPILER = $(GOC)
|
|
@@ -271,7 +272,8 @@ LIBGOTOOL = $(libgodir)/libgotool.a
|
|
@NATIVE_TRUE@GOCOMPILER = $(GOC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET)
|
|
GOCOMPILE = $(GOCOMPILER) $(GOCFLAGS)
|
|
AM_GOCFLAGS = -I $(libgodir)
|
|
-AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs
|
|
+AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs \
|
|
+ -L $(libgccdir) -L $(libgccdir)/.libs -lgcc_s
|
|
GOLINK = $(GOCOMPILER) $(GOCFLAGS) $(AM_GOCFLAGS) $(LDFLAGS) $(AM_LDFLAGS) -o $@
|
|
libgosrcdir = $(srcdir)/../libgo/go
|
|
cmdsrcdir = $(libgosrcdir)/cmd
|