mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-21 14:37:57 +00:00
d7382cc0e4
Every minor version bump of a major version will result in a huge patch diff because of the moving of all the patches from version e.g. 11.2.0 to 11.3.0. This commit only use the major version for the patch folders to differentiate between the different gcc versions. This will significantly improve the reviewing of the smaller version bump patches and help to see what really changed in a minor version bump. Signed-off-by: Nick Hainke <vincent@systemli.org>
68 lines
2.7 KiB
Diff
68 lines
2.7 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
|
|
@@ -337,6 +337,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)
|
|
@@ -346,7 +347,8 @@ LIBGOTOOL = $(libgodir)/libgotool.a
|
|
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
|
|
cmdsrcdir = $(libgosrcdir)/cmd
|