You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

202 lines
6.2 KiB

Index: bfd/elf-eh-frame.c
--- bfd/elf-eh-frame.c.orig 2019-09-09 15:19:43.000000000 +0200
+++ bfd/elf-eh-frame.c 2019-12-27 12:28:34.308746000 +0100
@@ -1044,10 +1044,12 @@
goto success;
free_no_table:
+#if 0
_bfd_error_handler
/* xgettext:c-format */
(_("error in %pB(%pA); no .eh_frame_hdr table will be created"),
abfd, sec);
+#endif
hdr_info->u.dwarf.table = FALSE;
if (sec_info)
free (sec_info);
Index: bfd/elf.c
--- bfd/elf.c.orig 2019-09-09 15:19:43.000000000 +0200
+++ bfd/elf.c 2019-12-27 12:28:34.309773000 +0100
@@ -2521,6 +2521,11 @@
ret = _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex);
goto success;
+ case SHT_SUNW_syminfo:
+ /* case SHT_SUNW_signature: conflicts with new SHT_GNU_HASH in Binutils 2.18 */
+ case SHT_SUNW_dof:
+ goto success;
+
case SHT_SHLIB:
goto success;
@@ -6386,6 +6391,12 @@
else
i_ehdrp->e_type = ET_REL;
+ /* OpenPKG platform branding BEGIN */
+#if defined(OPENPKG_OS_FREEBSD)
+ i_ehdrp->e_ident[EI_OSABI] = ELFOSABI_FREEBSD;
+#endif
+ /* OpenPKG platform branding END */
+
switch (bfd_get_arch (abfd))
{
case bfd_arch_unknown:
Index: bfd/elfxx-sparc.c
--- bfd/elfxx-sparc.c.orig 2019-09-09 15:19:43.000000000 +0200
+++ bfd/elfxx-sparc.c 2019-12-27 12:28:34.310252000 +0100
@@ -2893,12 +2893,14 @@
Elf_Internal_Rela *relend;
int num_relocs;
bfd_boolean is_vxworks_tls;
+ const struct elf_backend_data *bed;
htab = _bfd_sparc_elf_hash_table (info);
BFD_ASSERT (htab != NULL);
symtab_hdr = &elf_symtab_hdr (input_bfd);
sym_hashes = elf_sym_hashes (input_bfd);
local_got_offsets = elf_local_got_offsets (input_bfd);
+ bed = get_elf_backend_data (output_bfd);
if (elf_hash_table (info)->hgot == NULL)
got_base = 0;
@@ -3538,6 +3540,8 @@
bfd_set_error (bfd_error_bad_value);
return FALSE;
}
+ if (bed->elf_osabi == ELFOSABI_FREEBSD)
+ outrel.r_addend -= osec->vma;
}
outrel.r_info = SPARC_ELF_R_INFO (htab, rel, indx,
Index: gas/asintl.h
--- gas/asintl.h.orig 2019-09-09 15:19:43.000000000 +0200
+++ gas/asintl.h 2019-12-27 12:28:34.310373000 +0100
@@ -20,6 +20,11 @@
Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
+#ifndef ENABLE_NLS
+# define _LIBINTL_H
+# define _LIBGETTEXT_H
+#endif
+
#ifdef HAVE_LOCALE_H
# ifndef ENABLE_NLS
/* The Solaris version of locale.h always includes libintl.h. If we have
Index: include/elf/common.h
--- include/elf/common.h.orig 2019-09-09 15:19:44.000000000 +0200
+++ include/elf/common.h 2019-12-27 12:28:34.310582000 +0100
@@ -520,6 +520,9 @@
#define SHT_SUNW_verdef 0x6ffffffd /* Versions defined by file */
#define SHT_SUNW_verneed 0x6ffffffe /* Versions needed by file */
#define SHT_SUNW_versym 0x6fffffff /* Symbol versions */
+#define SHT_SUNW_syminfo 0x6ffffffc /* Symbol information */
+#define SHT_SUNW_signature 0x6ffffff6 /* Solaris Cryptographic Framework: Digital Signature */
+#define SHT_SUNW_dof 0x6ffffff4 /* Solaris DTrace Object Format */
#define SHT_GNU_verdef SHT_SUNW_verdef
#define SHT_GNU_verneed SHT_SUNW_verneed
Index: ld/Makefile.in
--- ld/Makefile.in.orig 2019-10-12 15:59:42.000000000 +0200
+++ ld/Makefile.in 2019-12-27 12:28:34.310889000 +0100
@@ -563,7 +563,7 @@
# We put the scripts in the directory $(scriptdir)/ldscripts.
# We can't put the scripts in $(datadir) because the SEARCH_DIR
# directives need to be different for native and cross linkers.
-scriptdir = $(tooldir)/lib
+scriptdir = $(libdir)
BASEDIR = $(srcdir)/..
BFDDIR = $(BASEDIR)/bfd
INCDIR = $(BASEDIR)/include
Index: ld/ld.h
--- ld/ld.h.orig 2019-09-09 15:19:44.000000000 +0200
+++ ld/ld.h 2019-12-27 12:28:34.311017000 +0100
@@ -21,6 +21,11 @@
#ifndef LD_H
#define LD_H
+#ifndef ENABLE_NLS
+# define _LIBINTL_H
+# define _LIBGETTEXT_H
+#endif
+
#ifdef HAVE_LOCALE_H
#endif
#ifndef SEEK_CUR
Index: ld/scripttempl/elf.sc
--- ld/scripttempl/elf.sc.orig 2019-09-09 15:19:44.000000000 +0200
+++ ld/scripttempl/elf.sc 2019-12-27 12:28:34.311188000 +0100
@@ -636,9 +636,9 @@
${SDATA_GOT+${OTHER_GOT_SECTIONS}}
${DATA_SDATA-${SDATA}}
${DATA_SDATA-${OTHER_SDATA_SECTIONS}}
- ${RELOCATING+${DATA_END_SYMBOLS-${CREATE_SHLIB+PROVIDE (}${USER_LABEL_PREFIX}_edata = .${CREATE_SHLIB+)}; PROVIDE (${USER_LABEL_PREFIX}edata = .);}}
+ ${RELOCATING+${DATA_END_SYMBOLS-${USER_LABEL_PREFIX}_edata = .; PROVIDE (${USER_LABEL_PREFIX}edata = .);}}
${RELOCATING+. = .;}
- ${RELOCATING+${CREATE_SHLIB+PROVIDE (}${USER_LABEL_PREFIX}__bss_start = .${CREATE_SHLIB+)};}
+ ${RELOCATING+${USER_LABEL_PREFIX}__bss_start = .;}
${RELOCATING+${OTHER_BSS_SYMBOLS}}
${DATA_SDATA-${SBSS}}
${BSS_PLT+${PLT}}
@@ -671,7 +671,7 @@
${LARGE_BSS_AFTER_BSS-${LARGE_BSS}}
${RELOCATING+. = ALIGN(${ALIGNMENT});}
${RELOCATING+${OTHER_END_SYMBOLS}}
- ${RELOCATING+${END_SYMBOLS-${CREATE_SHLIB+PROVIDE (}${USER_LABEL_PREFIX}_end = .${CREATE_SHLIB+)}; PROVIDE (${USER_LABEL_PREFIX}end = .);}}
+ ${RELOCATING+${END_SYMBOLS-${USER_LABEL_PREFIX}_end = .; PROVIDE (${USER_LABEL_PREFIX}end = .);}}
${RELOCATING+${DATA_SEGMENT_END}}
${TINY_DATA_SECTION}
${TINY_BSS_SECTION}
Index: libctf/swap.h
--- libctf/swap.h.orig 2019-09-09 15:19:45.000000000 +0200
+++ libctf/swap.h 2019-12-27 12:28:34.311315000 +0100
@@ -28,13 +28,13 @@
#else
/* Provide our own versions of the byteswap functions. */
-inline uint16_t
+static inline uint16_t
bswap_16 (uint16_t v)
{
return ((v >> 8) & 0xff) | ((v & 0xff) << 8);
}
-inline uint32_t
+static inline uint32_t
bswap_32 (uint32_t v)
{
return ( ((v & 0xff000000) >> 24)
@@ -43,13 +43,13 @@
| ((v & 0x000000ff) << 24));
}
-inline uint64_t
+static inline uint64_t
bswap_identity_64 (uint64_t v)
{
return v;
}
-inline uint64_t
+static inline uint64_t
bswap_64 (uint64_t v)
{
return ( ((v & 0xff00000000000000ULL) >> 56)
Index: libiberty/fibheap.c
--- libiberty/fibheap.c.orig 2019-09-09 15:19:45.000000000 +0200
+++ libiberty/fibheap.c 2019-12-27 12:28:34.311462000 +0100
@@ -34,8 +34,11 @@
#include "libiberty.h"
#include "fibheap.h"
-
+#ifdef LONG_MIN
#define FIBHEAPKEY_MIN LONG_MIN
+#else
+#define FIBHEAPKEY_MIN (-0x7fffffffL - 1)
+#endif
static void fibheap_ins_root (fibheap_t, fibnode_t);
static void fibheap_rem_root (fibheap_t, fibnode_t);