summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog21
-rw-r--r--debian/patches/dyson-biarch.patch18
-rw-r--r--debian/patches/dyson-ld_altexec.patch77
-rw-r--r--debian/patches/dyson-pr12548-anonymous-version-tag.patch19
-rw-r--r--debian/patches/dyson-pr14493-sol2.patch414
-rw-r--r--debian/patches/series6
-rwxr-xr-xdebian/rules11
7 files changed, 566 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 1b1f86b..c212ebb 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -884,6 +884,12 @@ binutils (2.28-6) unstable; urgency=medium
-- Matthias Klose <doko@debian.org> Thu, 15 Jun 2017 17:46:47 +0200
+binutils (2.28-5+dyson1) unstable; urgency=medium
+
+ * Package for Dyson
+
+ -- Igor Pashev <pashev.igor@gmail.com> Sat, 13 May 2017 13:33:58 +0300
+
binutils (2.28-5) unstable; urgency=medium
* Update, taken from the 2.28 branch 20170510.
@@ -1306,6 +1312,21 @@ binutils (2.26-9) unstable; urgency=medium
-- Matthias Klose <doko@debian.org> Thu, 12 May 2016 16:59:29 +0200
+binutils (2.26-8+dyson2) unstable; urgency=medium
+
+ * Added debian/patches/dyson-pr12548-anonymous-version-tag.patch
+
+ -- Igor Pashev <pashev.igor@gmail.com> Sun, 08 May 2016 22:12:53 +0300
+
+binutils (2.26-8+dyson1) unstable; urgency=medium
+
+ * Package for Dyson:
+ debian/patches/dyson-biarch.patch
+ debian/patches/dyson-ld_altexec.patch
+ debian/patches/dyson-pr14493-sol2.patch
+
+ -- Igor Pashev <pashev.igor@gmail.com> Wed, 30 Mar 2016 19:39:36 +0300
+
binutils (2.26-8) unstable; urgency=medium
* Update, taken from the 2.26 branch 20160321.
diff --git a/debian/patches/dyson-biarch.patch b/debian/patches/dyson-biarch.patch
new file mode 100644
index 0000000..41d55d1
--- /dev/null
+++ b/debian/patches/dyson-biarch.patch
@@ -0,0 +1,18 @@
+Index: binutils/ld/emulparams/elf_i386_sol2.sh
+===================================================================
+--- binutils.orig/ld/emulparams/elf_i386_sol2.sh 2012-10-28 21:44:11.532380262 +0400
++++ binutils/ld/emulparams/elf_i386_sol2.sh 2012-10-28 22:16:29.024955547 +0400
+@@ -2,3 +2,13 @@
+ . ${srcdir}/emulparams/solaris2.sh
+ EXTRA_EM_FILE=solaris2
+ OUTPUT_FORMAT="elf32-i386-sol2"
++
++# Dyson modify the default library search path to first include
++# a 32-bit specific directory.
++case "$target" in
++ x86_64*-solaris* | i[3-7]86*-solaris*)
++ case "$EMULATION_NAME" in
++ *i386*) LIBPATH_SUFFIX=32 ;;
++ esac
++ ;;
++esac
diff --git a/debian/patches/dyson-ld_altexec.patch b/debian/patches/dyson-ld_altexec.patch
new file mode 100644
index 0000000..d4c019a
--- /dev/null
+++ b/debian/patches/dyson-ld_altexec.patch
@@ -0,0 +1,77 @@
+Index: binutils-2.26/ld/ld.texinfo
+===================================================================
+--- binutils-2.26.orig/ld/ld.texinfo
++++ binutils-2.26/ld/ld.texinfo
+@@ -2960,7 +2960,10 @@ You can change the behaviour of @command
+ @ifclear SingleFormat
+ @code{GNUTARGET},
+ @end ifclear
+-@code{LDEMULATION} and @code{COLLECT_NO_DEMANGLE}.
++@code{LDEMULATION},
++@code{COLLECT_NO_DEMANGLE}
++and
++@code{LD_ALTEXEC}.
+
+ @ifclear SingleFormat
+ @kindex GNUTARGET
+@@ -2998,6 +3001,12 @@ a similar fashion by the @code{gcc} link
+ may be overridden by the @samp{--demangle} and @samp{--no-demangle}
+ options.
+
++@kindex LD_ALTEXEC
++@cindex alternative linker
++@code{LD_ALTEXEC} sets alternative linker. @command{ld} executes,
++and passes control to this alternative linker. For instance one
++can set @code{LD_ALTEXEC=echo} to debug linker command line.
++
+ @c man end
+ @end ifset
+
+Index: binutils-2.26/ld/ldmain.c
+===================================================================
+--- binutils-2.26.orig/ld/ldmain.c
++++ binutils-2.26/ld/ldmain.c
+@@ -49,6 +49,7 @@
+ #endif
+
+ #include <string.h>
++#include <errno.h>
+
+ #ifdef HAVE_SBRK
+ #if !HAVE_DECL_SBRK
+@@ -183,9 +184,35 @@ ld_bfd_assert_handler (const char *fmt,
+ config.make_executable = FALSE;
+ }
+
++static void
++maybe_altexec(char **argv)
++{
++ char *LD_ALTEXEC;
++
++ /* If LD_ALTEXEC is not set or is empty, just return */
++ LD_ALTEXEC = getenv("LD_ALTEXEC");
++ if (LD_ALTEXEC == NULL)
++ return;
++
++ if (*LD_ALTEXEC == '\0')
++ return;
++
++ /* Unset LD_ALTEXEC for case when it points to this program itself ;-) */
++ if (unsetenv("LD_ALTEXEC"))
++ exit(errno);
++
++ argv[0] = LD_ALTEXEC;
++ execvp(LD_ALTEXEC, argv);
++
++ /* We are here only if execvp() failed */
++ exit(errno);
++}
++
+ int
+ main (int argc, char **argv)
+ {
++ maybe_altexec(argv);
++
+ char *emulation;
+ long start_time = get_run_time ();
+ #ifdef HAVE_SBRK
diff --git a/debian/patches/dyson-pr12548-anonymous-version-tag.patch b/debian/patches/dyson-pr12548-anonymous-version-tag.patch
new file mode 100644
index 0000000..1ccbcff
--- /dev/null
+++ b/debian/patches/dyson-pr12548-anonymous-version-tag.patch
@@ -0,0 +1,19 @@
+Description: anonymous version tag mapped to base version
+Bug: http://sourceware.org/bugzilla/show_bug.cgi?id=12548
+Index: binutils-2.26/ld/ldlang.c
+===================================================================
+--- binutils-2.26.orig/ld/ldlang.c
++++ binutils-2.26/ld/ldlang.c
+@@ -7947,9 +7947,9 @@ lang_register_vers_node (const char *nam
+ if (link_info.version_info != NULL
+ && (name[0] == '\0' || link_info.version_info->name[0] == '\0'))
+ {
+- einfo (_("%X%P: anonymous version tag cannot be combined"
+- " with other version tags\n"));
+- free (version);
++ version->deps = NULL;
++ version->name = "";
++ version->vernum = 0;
+ return;
+ }
+
diff --git a/debian/patches/dyson-pr14493-sol2.patch b/debian/patches/dyson-pr14493-sol2.patch
new file mode 100644
index 0000000..cf6a47e
--- /dev/null
+++ b/debian/patches/dyson-pr14493-sol2.patch
@@ -0,0 +1,414 @@
+Description: fix .SUNW_ldynsym section processing
+Bug: http://sourceware.org/bugzilla/show_bug.cgi?id=14493
+@@ -, +, @@
+---
+ bfd/ChangeLog.pr14493 | 27 ++++++++++++++++++
+ bfd/Makefile.am | 4 +++
+ bfd/Makefile.in | 5 ++++
+ bfd/configure | 30 ++++++++++----------
+ bfd/configure.in | 30 ++++++++++----------
+ bfd/elf-sol2.c | 66 +++++++++++++++++++++++++++++++++++++++++++
+ bfd/elf-sol2.h | 31 ++++++++++++++++++++
+ bfd/elf32-i386.c | 10 +++++++
+ bfd/elf64-x86-64.c | 10 +++++++
+ include/elf/ChangeLog.pr14493 | 5 ++++
+ include/elf/common.h | 4 +++
+ 11 files changed, 192 insertions(+), 30 deletions(-)
+ create mode 100644 bfd/ChangeLog.pr14493
+ create mode 100644 bfd/elf-sol2.c
+ create mode 100644 bfd/elf-sol2.h
+ create mode 100644 include/elf/ChangeLog.pr14493
+Index: binutils-2.26/bfd/ChangeLog.pr14493
+===================================================================
+--- /dev/null
++++ binutils-2.26/bfd/ChangeLog.pr14493
+@@ -0,0 +1,27 @@
++2012-08-24 H.J. Lu <hongjiu.lu@intel.com>
++
++ PR binutils/14493
++ * Makefile.am (BFD32_BACKENDS): Add elf-sol2.lo.
++ (BFD64_BACKENDS): Likewise.
++ (BFD32_BACKENDS_CFILES): Add elf-sol2.c.
++ (BFD64_BACKENDS_CFILES): Likewise.
++
++ * configure.in: Add elf-sol2.lo to ELF x86 vectors.
++
++ * elf-sol2.c: New file.
++ * elf-sol2.h: Likewise.
++
++ * elf32-i386.c: Include "elf-sol2.h".
++ (elf_backend_section_processing): Defined to
++ _bfd_solaris_section_processing for Solaris.
++ (bfd_elf32_bfd_copy_private_section_data): Defined to
++ _bfd_solaris_copy_private_section_data for Solaris.
++
++ * elf64-x86-64.c: Include "elf-sol2.h".
++ (elf_backend_section_processing): Defined to
++ _bfd_solaris_section_processing for Solaris.
++ (bfd_elf64_bfd_copy_private_section_data): Defined to
++ _bfd_solaris_copy_private_section_data for Solaris.
++
++ * Makefile.in: Regenerated.
++ * configure: Likewise.
+Index: binutils-2.26/bfd/Makefile.am
+===================================================================
+--- binutils-2.26.orig/bfd/Makefile.am
++++ binutils-2.26/bfd/Makefile.am
+@@ -315,6 +315,7 @@ BFD32_BACKENDS = \
+ elf-m10200.lo \
+ elf-m10300.lo \
+ elf-nacl.lo \
++ elf-sol2.lo \
+ elf-strtab.lo \
+ elf-vxworks.lo \
+ elf.lo \
+@@ -506,6 +507,7 @@ BFD32_BACKENDS_CFILES = \
+ elf-m10200.c \
+ elf-m10300.c \
+ elf-nacl.c \
++ elf-sol2.c \
+ elf-strtab.c \
+ elf-vxworks.c \
+ elf.c \
+@@ -660,6 +662,7 @@ BFD64_BACKENDS = \
+ coff-x86_64.lo \
+ coff64-rs6000.lo \
+ demo64.lo \
++ elf-sol2.lo \
+ elf32-ia64.lo \
+ elf32-mips.lo \
+ elf32-score.lo \
+@@ -699,6 +702,7 @@ BFD64_BACKENDS_CFILES = \
+ coff-x86_64.c \
+ coff64-rs6000.c \
+ demo64.c \
++ elf-sol2.c \
+ elf32-mips.c \
+ elf32-score.c \
+ elf32-score7.c \
+Index: binutils-2.26/bfd/Makefile.in
+===================================================================
+--- binutils-2.26.orig/bfd/Makefile.in
++++ binutils-2.26/bfd/Makefile.in
+@@ -619,6 +619,7 @@ BFD32_BACKENDS = \
+ elf-m10200.lo \
+ elf-m10300.lo \
+ elf-nacl.lo \
++ elf-sol2.lo \
+ elf-strtab.lo \
+ elf-vxworks.lo \
+ elf.lo \
+@@ -810,6 +811,7 @@ BFD32_BACKENDS_CFILES = \
+ elf-m10200.c \
+ elf-m10300.c \
+ elf-nacl.c \
++ elf-sol2.c \
+ elf-strtab.c \
+ elf-vxworks.c \
+ elf.c \
+@@ -965,6 +967,7 @@ BFD64_BACKENDS = \
+ coff-x86_64.lo \
+ coff64-rs6000.lo \
+ demo64.lo \
++ elf-sol2.lo \
+ elf32-ia64.lo \
+ elf32-mips.lo \
+ elf32-score.lo \
+@@ -1004,6 +1007,7 @@ BFD64_BACKENDS_CFILES = \
+ coff-x86_64.c \
+ coff64-rs6000.c \
+ demo64.c \
++ elf-sol2.c \
+ elf32-mips.c \
+ elf32-score.c \
+ elf32-score7.c \
+@@ -1414,6 +1418,7 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-m10200.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-m10300.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-nacl.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-sol2.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-strtab.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-vxworks.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf.Plo@am__quote@
+Index: binutils-2.26/bfd/elf-sol2.c
+===================================================================
+--- /dev/null
++++ binutils-2.26/bfd/elf-sol2.c
+@@ -0,0 +1,66 @@
++/* Solaris support for ELF
++ Copyright 2012 Free Software Foundation, Inc.
++
++ This file is part of BFD, the Binary File Descriptor library.
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 3 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 59 Temple Place - Suite 330, Boston,
++ MA 02111-1307, USA. */
++
++#include "sysdep.h"
++#include "elf-sol2.h"
++
++bfd_boolean
++_bfd_solaris_section_processing (bfd *abfd, Elf_Internal_Shdr *hdr)
++{
++ asection *sec;
++
++ switch (hdr->sh_type)
++ {
++ case SHT_SUNW_symsort:
++ sec = bfd_get_section_by_name (abfd, ".SUNW_ldynsym");
++ if (sec != NULL)
++ hdr->sh_link = elf_section_data (sec)->this_idx;
++ break;
++
++ case SHT_SUNW_LDYNSYM:
++ sec = bfd_get_section_by_name (abfd, ".dynstr");
++ if (sec != NULL)
++ hdr->sh_link = elf_section_data (sec)->this_idx;
++ break;
++ }
++
++ return TRUE;
++}
++
++bfd_boolean
++_bfd_solaris_copy_private_section_data (bfd *ibfd,
++ asection *isec,
++ bfd *obfd,
++ asection *osec)
++{
++ Elf_Internal_Shdr *ihdr, *ohdr;
++
++ if (ibfd->xvec->flavour != bfd_target_elf_flavour
++ || obfd->xvec->flavour != bfd_target_elf_flavour)
++ return TRUE;
++
++ ihdr = &elf_section_data (isec)->this_hdr;
++ ohdr = &elf_section_data (osec)->this_hdr;
++
++ if (ihdr->sh_type == SHT_SUNW_LDYNSYM)
++ ohdr->sh_info = ihdr->sh_info;
++
++ return _bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec);
++}
+Index: binutils-2.26/bfd/elf-sol2.h
+===================================================================
+--- /dev/null
++++ binutils-2.26/bfd/elf-sol2.h
+@@ -0,0 +1,31 @@
++/* Solaris support for ELF
++ Copyright 2012 Free Software Foundation, Inc.
++
++ This file is part of BFD, the Binary File Descriptor library.
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 3 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 59 Temple Place - Suite 330, Boston,
++ MA 02111-1307, USA. */
++
++#include "bfd.h"
++#include "elf-bfd.h"
++#include "elf/common.h"
++#include "elf/internal.h"
++
++extern bfd_boolean _bfd_solaris_section_processing
++ (bfd *, Elf_Internal_Shdr *);
++extern bfd_boolean _bfd_solaris_copy_private_section_data (bfd *,
++ asection *,
++ bfd *,
++ asection *);
+Index: binutils-2.26/bfd/elf32-i386.c
+===================================================================
+--- binutils-2.26.orig/bfd/elf32-i386.c
++++ binutils-2.26/bfd/elf32-i386.c
+@@ -24,6 +24,7 @@
+ #include "libbfd.h"
+ #include "elf-bfd.h"
+ #include "elf-nacl.h"
++#include "elf-sol2.h"
+ #include "elf-vxworks.h"
+ #include "bfd_stdint.h"
+ #include "objalloc.h"
+@@ -5871,7 +5872,14 @@ elf_i386_fbsd_post_process_headers (bfd
+ #undef elf_backend_want_plt_sym
+ #define elf_backend_want_plt_sym 1
+
++#undef elf_backend_section_processing
++#define elf_backend_section_processing _bfd_solaris_section_processing
++#undef bfd_elf32_bfd_copy_private_section_data
++#define bfd_elf32_bfd_copy_private_section_data \
++ _bfd_solaris_copy_private_section_data
+ #include "elf32-target.h"
++#undef elf_backend_section_processing
++#undef bfd_elf32_bfd_copy_private_section_data
+
+ /* Intel MCU support. */
+
+Index: binutils-2.26/bfd/elf64-x86-64.c
+===================================================================
+--- binutils-2.26.orig/bfd/elf64-x86-64.c
++++ binutils-2.26/bfd/elf64-x86-64.c
+@@ -25,6 +25,7 @@
+ #include "libbfd.h"
+ #include "elf-bfd.h"
+ #include "elf-nacl.h"
++#include "elf-sol2.h"
+ #include "bfd_stdint.h"
+ #include "objalloc.h"
+ #include "hashtab.h"
+@@ -6468,8 +6469,17 @@ static const struct bfd_elf_special_sect
+ #undef elf_backend_want_plt_sym
+ #define elf_backend_want_plt_sym 1
+
++#undef elf_backend_section_processing
++#define elf_backend_section_processing _bfd_solaris_section_processing
++#undef bfd_elf64_bfd_copy_private_section_data
++#define bfd_elf64_bfd_copy_private_section_data \
++ _bfd_solaris_copy_private_section_data
++
+ #include "elf64-target.h"
+
++#undef elf_backend_section_processing
++#undef bfd_elf64_bfd_copy_private_section_data
++
+ /* Native Client support. */
+
+ static bfd_boolean
+Index: binutils-2.26/include/elf/ChangeLog.pr14493
+===================================================================
+--- /dev/null
++++ binutils-2.26/include/elf/ChangeLog.pr14493
+@@ -0,0 +1,5 @@
++2012-08-24 H.J. Lu <hongjiu.lu@intel.com>
++
++ PR binutils/14493
++ * common.h (SHT_SUNW_symsort): New.
++ (SHT_SUNW_LDYNSYM): Likewise.
+Index: binutils-2.26/include/elf/common.h
+===================================================================
+--- binutils-2.26.orig/include/elf/common.h
++++ binutils-2.26/include/elf/common.h
+@@ -496,6 +496,10 @@
+ /* #define SHT_HIUSER 0x8FFFFFFF *//* Application-specific semantics */
+ #define SHT_HIUSER 0xFFFFFFFF /* New value, defined in Oct 4, 1999 Draft */
+
++/* Solaris section types. */
++#define SHT_SUNW_symsort 0x6ffffff1
++#define SHT_SUNW_LDYNSYM 0x6ffffff3
++
+ /* Values for section header, sh_flags field. */
+
+ #define SHF_WRITE (1 << 0) /* Writable data during execution */
+Index: binutils-2.26/bfd/configure.ac
+===================================================================
+--- binutils-2.26.orig/bfd/configure.ac
++++ binutils-2.26/bfd/configure.ac
+@@ -784,11 +784,11 @@ do
+ i386_coff_go32_vec) tb="$tb coff-go32.lo $coff" ;;
+ i386_coff_go32stubbed_vec) tb="$tb coff-stgo32.lo $coff" ;;
+ i386_coff_lynx_vec) tb="$tb cf-i386lynx.lo lynx-core.lo $coff" ;;
+- i386_elf32_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+- i386_elf32_fbsd_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+- i386_elf32_nacl_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+- i386_elf32_sol2_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+- i386_elf32_vxworks_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
++ i386_elf32_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
++ i386_elf32_fbsd_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
++ i386_elf32_nacl_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
++ i386_elf32_sol2_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
++ i386_elf32_vxworks_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+ i386_mach_o_vec) tb="$tb mach-o-i386.lo" ;;
+ i386_msdos_vec) tb="$tb i386msdos.lo" ;;
+ i386_nlm32_vec) tb="$tb nlm32-i386.lo nlm32.lo nlm.lo" ;;
+@@ -811,10 +811,10 @@ do
+ ieee_vec) tb="$tb ieee.lo" ;;
+ ip2k_elf32_vec) tb="$tb elf32-ip2k.lo elf32.lo $elf" ;;
+ iq2000_elf32_vec) tb="$tb elf32-iq2000.lo elf32.lo $elf" ;;
+- k1om_elf64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+- k1om_elf64_fbsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+- l1om_elf64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+- l1om_elf64_fbsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
++ k1om_elf64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
++ k1om_elf64_fbsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
++ l1om_elf64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
++ l1om_elf64_fbsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+ lm32_elf32_vec) tb="$tb elf32-lm32.lo elf32.lo $elf" ;;
+ lm32_elf32_fdpic_vec) tb="$tb elf32-lm32.lo elf32.lo $elf" ;;
+ m32c_elf32_vec) tb="$tb elf32-m32c.lo elf32.lo $elf" ;;
+@@ -1011,13 +1011,13 @@ do
+ w65_coff_vec) tb="$tb coff-w65.lo reloc16.lo $coffgen" ;;
+ we32k_coff_vec) tb="$tb coff-we32k.lo $coffgen" ;;
+ x86_64_coff_vec) tb="$tb coff-x86_64.lo $coff"; target_size=64 ;;
+- x86_64_elf32_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
+- x86_64_elf32_nacl_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
+- x86_64_elf64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+- x86_64_elf64_cloudabi_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+- x86_64_elf64_fbsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+- x86_64_elf64_nacl_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+- x86_64_elf64_sol2_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
++ x86_64_elf32_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
++ x86_64_elf32_nacl_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
++ x86_64_elf64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
++ x86_64_elf64_cloudabi_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
++ x86_64_elf64_fbsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
++ x86_64_elf64_nacl_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
++ x86_64_elf64_sol2_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+ x86_64_mach_o_vec) tb="$tb mach-o-x86-64.lo" ;;
+ x86_64_pe_vec) tb="$tb pe-x86_64.lo pex64igen.lo $coff"; target_size=64 ;;
+ x86_64_pe_be_vec) tb="$tb pe-x86_64.lo pex64igen.lo $coff"; target_size=64 ;;
+Index: binutils-2.26/bfd/configure
+===================================================================
+--- binutils-2.26.orig/bfd/configure
++++ binutils-2.26/bfd/configure
+@@ -15338,11 +15338,11 @@ do
+ i386_coff_go32_vec) tb="$tb coff-go32.lo $coff" ;;
+ i386_coff_go32stubbed_vec) tb="$tb coff-stgo32.lo $coff" ;;
+ i386_coff_lynx_vec) tb="$tb cf-i386lynx.lo lynx-core.lo $coff" ;;
+- i386_elf32_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+- i386_elf32_fbsd_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+- i386_elf32_nacl_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+- i386_elf32_sol2_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+- i386_elf32_vxworks_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
++ i386_elf32_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
++ i386_elf32_fbsd_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
++ i386_elf32_nacl_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
++ i386_elf32_sol2_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
++ i386_elf32_vxworks_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+ i386_mach_o_vec) tb="$tb mach-o-i386.lo" ;;
+ i386_msdos_vec) tb="$tb i386msdos.lo" ;;
+ i386_nlm32_vec) tb="$tb nlm32-i386.lo nlm32.lo nlm.lo" ;;
+@@ -15365,10 +15365,10 @@ do
+ ieee_vec) tb="$tb ieee.lo" ;;
+ ip2k_elf32_vec) tb="$tb elf32-ip2k.lo elf32.lo $elf" ;;
+ iq2000_elf32_vec) tb="$tb elf32-iq2000.lo elf32.lo $elf" ;;
+- k1om_elf64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+- k1om_elf64_fbsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+- l1om_elf64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+- l1om_elf64_fbsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
++ k1om_elf64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
++ k1om_elf64_fbsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
++ l1om_elf64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
++ l1om_elf64_fbsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-sol2.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+ lm32_elf32_vec) tb="$tb elf32-lm32.lo elf32.lo $elf" ;;
+ lm32_elf32_fdpic_vec) tb="$tb elf32-lm32.lo elf32.lo $elf" ;;
+ m32c_elf32_vec) tb="$tb elf32-m32c.lo elf32.lo $elf" ;;
diff --git a/debian/patches/series b/debian/patches/series
index 21dcd95..6b85d81 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -33,3 +33,9 @@ gold-no-keep-files-mapped.diff
# experimental ...
infinity-notes.diff
#binutils-no-development.diff
+
+
+dyson-biarch.patch
+dyson-pr14493-sol2.patch
+dyson-ld_altexec.patch
+dyson-pr12548-anonymous-version-tag.patch
diff --git a/debian/rules b/debian/rules
index 2cda25e..8b47f81 100755
--- a/debian/rules
+++ b/debian/rules
@@ -461,6 +461,9 @@ DEB_TARGET_MULTIARCHN32_mips64r6el = mipsisa64r6el-linux-gnuabin32
DEB_TARGET_MULTIARCH32_arm64 = aarch64_ilp32-linux-gnu
+DEB_TARGET_MULTIARCH32_illumos-amd64 = i386-illumos
+DEB_TARGET_MULTIARCH64_illumos-i386 = x86_64-illumos
+
SET_MULTIARCH_ENV = \
DEB_TARGET_MULTIARCH=$(call _multiarch,$1) \
$(if $(DEB_TARGET_MULTIARCH32_$1) ,DEB_TARGET_MULTIARCH32=$(DEB_TARGET_MULTIARCH32_$1)) \
@@ -1037,6 +1040,14 @@ stamps/install: checkroot stamps/build $(install_stamps)
sed -i -e '/^\.TH /s/[0-9]*-[0-9]*-[0-9]*/$(BUILD_DAY)/' $$f; \
done
+ifeq (illumos,$(DEB_HOST_ARCH_OS))
+ ln -sf ld $(pwd)/$(d_bin)/$(PF)/bin/ld_sol2
+ for prog in ld as nm ; do \
+ ln -sf $$prog $(pwd)/$(d_bin)/$(PF)/bin/g$$prog ; \
+ ln -sf $$prog.1.gz $(pwd)/$(d_bin)/$(PF)/share/man/man1/g$$prog.1.gz ; \
+ done
+endif
+
ifeq ($(with_multiarch),yes)
: # now install binutils-multiarch stuff
env MAKE="$(MAKE) VERSION=$(MULTI_VERSION)" \