summaryrefslogtreecommitdiff
path: root/debian/patches/illumos-spec.diff
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/illumos-spec.diff')
-rw-r--r--debian/patches/illumos-spec.diff23
1 files changed, 23 insertions, 0 deletions
diff --git a/debian/patches/illumos-spec.diff b/debian/patches/illumos-spec.diff
index 3efd50f..fea5f99 100644
--- a/debian/patches/illumos-spec.diff
+++ b/debian/patches/illumos-spec.diff
@@ -40,3 +40,26 @@ Index: gcc-9.git/src/gcc/config/sol2.h
#undef LINK_ARCH64_SPEC
#ifndef USE_GLD
+Index: gcc-9.git/src/gcc/gcc.c
+===================================================================
+--- gcc-9.git.orig/src/gcc/gcc.c
++++ gcc-9.git/src/gcc/gcc.c
+@@ -1559,7 +1559,17 @@ static const char *gcc_libexec_prefix;
+ /* Default prefixes to attach to command names. */
+
+ #ifndef STANDARD_STARTFILE_PREFIX_1
+-#define STANDARD_STARTFILE_PREFIX_1 "/lib/"
++/* This is a radical hack. In Debian (and Dyson) we should have all development libraries
++ under /usr/lib. But in Dyson there is at least libc.so under /lib. It is in there
++ specially for the sunld, which does not understand the GNU ld's linker script
++ found under disguise libc.so under /usr/lib. That linker script automatically
++ add other libraries as needed, like libsocket, libiconv, libssp, etc.
++ Unfortunately, if /lib goes first, the linker will find normal libc.so under /lib
++ and will miss the libraries we need on Dyson. This is not the case when
++ we use already built and installed gcc, but happens when buildting the gcc
++ package, namely with stage1 compiler xgcc.
++*/
++#define STANDARD_STARTFILE_PREFIX_1 ""
+ #endif
+ #ifndef STANDARD_STARTFILE_PREFIX_2
+ #define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/"