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.
166 lines
5.5 KiB
166 lines
5.5 KiB
Index: bfd/elf-eh-frame.c |
|
--- bfd/elf-eh-frame.c.orig 2018-06-24 20:38:56.000000000 +0200 |
|
+++ bfd/elf-eh-frame.c 2018-08-10 20:38:12.270146000 +0200 |
|
@@ -1042,10 +1042,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 2018-07-10 12:47:35.000000000 +0200 |
|
+++ bfd/elf.c 2018-08-10 20:38:12.271312000 +0200 |
|
@@ -2462,6 +2462,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; |
|
|
|
@@ -6227,6 +6232,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 2018-06-24 20:38:57.000000000 +0200 |
|
+++ bfd/elfxx-sparc.c 2018-08-10 20:38:12.271862000 +0200 |
|
@@ -2897,12 +2897,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; |
|
@@ -3542,6 +3544,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 2018-06-24 20:38:57.000000000 +0200 |
|
+++ gas/asintl.h 2018-08-10 20:38:12.271998000 +0200 |
|
@@ -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 2018-06-24 20:38:57.000000000 +0200 |
|
+++ include/elf/common.h 2018-08-10 20:38:12.272228000 +0200 |
|
@@ -514,6 +514,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 2018-07-18 09:46:21.000000000 +0200 |
|
+++ ld/Makefile.in 2018-08-10 20:38:12.272661000 +0200 |
|
@@ -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 2018-06-24 20:38:57.000000000 +0200 |
|
+++ ld/ld.h 2018-08-10 20:38:12.272804000 +0200 |
|
@@ -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 2018-07-11 17:43:55.000000000 +0200 |
|
+++ ld/scripttempl/elf.sc 2018-08-10 20:38:12.273155000 +0200 |
|
@@ -637,9 +637,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}} |
|
@@ -672,7 +672,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: libiberty/fibheap.c |
|
--- libiberty/fibheap.c.orig 2018-06-24 20:38:58.000000000 +0200 |
|
+++ libiberty/fibheap.c 2018-08-10 20:38:12.272963000 +0200 |
|
@@ -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);
|
|
|