[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [tor-browser-build/master] Bug 16472: update binutils to 2.29.1
commit 35fcafe980c7b86a15ed433fbac31bd143dfa7b3
Author: Nicolas Vigier <boklm@xxxxxxxxxxxxxx>
Date: Wed Feb 14 13:31:29 2018 +0100
Bug 16472: update binutils to 2.29.1
---
keyring/binutils.gpg | Bin 25772 -> 2242 bytes
projects/binutils/64bit-fixups.patch | 31 ++--
projects/binutils/binutils-224-gold.patch | 98 -------------
projects/binutils/build | 9 --
projects/binutils/config | 8 +-
projects/binutils/enable-reloc-section-ld.patch | 83 ++++++-----
projects/binutils/fix-warning-bfd.patch | 186 ------------------------
projects/binutils/peXXigen.patch | 14 --
projects/mingw-w64/build | 8 +-
projects/nsis/build | 31 +++-
projects/openssl/config | 2 +-
projects/selfrando/config | 2 +-
projects/zlib/build | 4 +-
rbm.conf | 2 +-
14 files changed, 100 insertions(+), 378 deletions(-)
diff --git a/keyring/binutils.gpg b/keyring/binutils.gpg
index f24bb01..eab4406 100644
Binary files a/keyring/binutils.gpg and b/keyring/binutils.gpg differ
diff --git a/projects/binutils/64bit-fixups.patch b/projects/binutils/64bit-fixups.patch
index 33c0297..7dc1294 100644
--- a/projects/binutils/64bit-fixups.patch
+++ b/projects/binutils/64bit-fixups.patch
@@ -1,14 +1,19 @@
-From f3ba95e14437f10de8b8f296930ff2a8495d18c6 Mon Sep 17 00:00:00 2001
+From 05164a1162d5f6f696d7f7c4b1bc61ef06d1c288 Mon Sep 17 00:00:00 2001
From: Georg Koppen <gk@xxxxxxxxxxxxxx>
Date: Tue, 12 Sep 2017 07:21:16 +0000
Subject: [PATCH] 64bit fixups
+---
+ ld/emultempl/pep.em | 4 ++--
+ ld/pep-dll.c | 1 +
+ ld/pep-dll.h | 1 +
+ 3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em
-index b566903b14..27006bdf79 100644
+index fccbd63..f7c0a57 100644
--- a/ld/emultempl/pep.em
+++ b/ld/emultempl/pep.em
-@@ -730,7 +730,7 @@ gld${EMULATION_NAME}_handle_option (int optc)
+@@ -742,7 +742,7 @@ gld${EMULATION_NAME}_handle_option (int optc)
pep_dll_exclude_all_symbols = 1;
break;
case OPTION_ENABLE_RELOC_SECTION:
@@ -17,17 +22,17 @@ index b566903b14..27006bdf79 100644
break;
case OPTION_EXCLUDE_LIBS:
pep_dll_add_excludes (optarg, EXCLUDELIBS);
-@@ -1623,7 +1623,7 @@ gld_${EMULATION_NAME}_finish (void)
-
+@@ -1862,7 +1862,7 @@ gld_${EMULATION_NAME}_finish (void)
#ifdef DLL_SUPPORT
- if (link_info.shared
-- || (!link_info.relocatable && pe_dll_enable_reloc_section)
-+ || (!link_info.relocatable && pep_dll_enable_reloc_section)
- || (!link_info.relocatable && pep_def_file->num_exports != 0))
+ if (bfd_link_pic (&link_info)
+ || (!bfd_link_relocatable (&link_info)
+- && pe_dll_enable_reloc_section)
++ && pep_dll_enable_reloc_section)
+ || (!bfd_link_relocatable (&link_info)
+ && pep_def_file->num_exports != 0))
{
- pep_dll_fill_sections (link_info.output_bfd, &link_info);
diff --git a/ld/pep-dll.c b/ld/pep-dll.c
-index 0e5e8b1523..b5f99b90e0 100644
+index b8c017f..5ad5733 100644
--- a/ld/pep-dll.c
+++ b/ld/pep-dll.c
@@ -31,6 +31,7 @@
@@ -39,7 +44,7 @@ index 0e5e8b1523..b5f99b90e0 100644
#define pe_dll_stdcall_aliases pep_dll_stdcall_aliases
#define pe_dll_warn_dup_exports pep_dll_warn_dup_exports
diff --git a/ld/pep-dll.h b/ld/pep-dll.h
-index 1e7e3d65d4..c31e69cc8e 100644
+index 0a27c1f..95d9c15 100644
--- a/ld/pep-dll.h
+++ b/ld/pep-dll.h
@@ -31,6 +31,7 @@ extern def_file * pep_def_file;
@@ -51,5 +56,5 @@ index 1e7e3d65d4..c31e69cc8e 100644
extern int pep_dll_stdcall_aliases;
extern int pep_dll_warn_dup_exports;
--
-2.14.1
+2.1.4
diff --git a/projects/binutils/binutils-224-gold.patch b/projects/binutils/binutils-224-gold.patch
deleted file mode 100644
index a45e49c..0000000
--- a/projects/binutils/binutils-224-gold.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From f984741df04cd68bb116073fdfa9405808810ab4 Mon Sep 17 00:00:00 2001
-From: Cary Coutant <ccoutant@xxxxxxxxxx>
-Date: Wed, 5 Feb 2014 22:59:02 -0800
-Subject: [PATCH] Fix issues with gold undefined symbol diagnostics.
-
-PR binutils/15435 complains that gold issues a visibility error for an
-weak undefined symbol with hidden visibility. The message should be
-suppressed if the symbol is a weak undef.
-
-An earlier patch to add an extra note about key functions when a class's
-vtable symbol is undefined missed a case where the reference to the
-vtable came from a shared library. This patch moves the check to a
-lower-level routine that catches both cases.
-
-gold/
-
-2014-02-05 Cary Coutant <ccoutant@xxxxxxxxxx>
-
- * errors.cc (Errors::undefined_symbol): Move undef vtable symbol
- check to here.
- * target-reloc.h (is_strong_undefined): New function.
- (relocate_section): Move undef vtable symbol check from here.
- Check for is_strong_undefined.
-
-diff --git a/gold/ChangeLog b/gold/ChangeLog
-index dcf7ed41f8..dd7ef72980 100644
---- a/gold/ChangeLog
-+++ b/gold/ChangeLog
-@@ -1,3 +1,14 @@
-+2014-02-05 Cary Coutant <ccoutant@xxxxxxxxxx>
-+
-+ Fix issues with gold undefined symbol diagnostics.
-+
-+ PR binutils/15435
-+ * errors.cc (Errors::undefined_symbol): Move undef vtable symbol
-+ check to here.
-+ * target-reloc.h (is_strong_undefined): New function.
-+ (relocate_section): Move undef vtable symbol check from here.
-+ Check for is_strong_undefined.
-+
- 2013-11-22 Cary Coutant <ccoutant@xxxxxxxxxx>
-
- * testsuite/Makefile.am (exception_x86_64_bnd_test): Use in-tree
-diff --git a/gold/errors.cc b/gold/errors.cc
-index b79764bd1d..98db0fdd86 100644
---- a/gold/errors.cc
-+++ b/gold/errors.cc
-@@ -193,6 +193,11 @@ Errors::undefined_symbol(const Symbol* sym, const std::string& location)
- fprintf(stderr,
- _("%s: %s: undefined reference to '%s', version '%s'\n"),
- location.c_str(), zmsg, sym->demangled_name().c_str(), version);
-+
-+ if (sym->is_cxx_vtable())
-+ gold_info(_("%s: the vtable symbol may be undefined because "
-+ "the class is missing its key function"),
-+ program_name);
- }
-
- // Issue a debugging message.
-diff --git a/gold/target-reloc.h b/gold/target-reloc.h
-index b544c78f37..d609bcbaa8 100644
---- a/gold/target-reloc.h
-+++ b/gold/target-reloc.h
-@@ -144,6 +144,12 @@ class Default_comdat_behavior
- }
- };
-
-+inline bool
-+is_strong_undefined(const Symbol* sym)
-+{
-+ return sym->is_undefined() && sym->binding() != elfcpp::STB_WEAK;
-+}
-+
- // Give an error for a symbol with non-default visibility which is not
- // defined locally.
-
-@@ -411,16 +417,10 @@ relocate_section(
- }
-
- if (issue_undefined_symbol_error(sym))
-- {
-- gold_undefined_symbol_at_location(sym, relinfo, i, offset);
-- if (sym->is_cxx_vtable())
-- gold_info(_("%s: the vtable symbol may be undefined because "
-- "the class is missing its key function"),
-- program_name);
-- }
-+ gold_undefined_symbol_at_location(sym, relinfo, i, offset);
- else if (sym != NULL
- && sym->visibility() != elfcpp::STV_DEFAULT
-- && (sym->is_undefined() || sym->is_from_dynobj()))
-+ && (is_strong_undefined(sym) || sym->is_from_dynobj()))
- visibility_error(sym);
-
- if (sym != NULL && sym->has_warning())
---
-2.11.0
-
diff --git a/projects/binutils/build b/projects/binutils/build
index ee6db1a..8a4ae3f 100644
--- a/projects/binutils/build
+++ b/projects/binutils/build
@@ -21,21 +21,12 @@ cd [% project %]-[% c("version") %]
[% IF c('var/windows') -%]
# XXX: This is needed due to bug 10102.
sed 's/= extern_rt_rel_d;/= extern_rt_rel_d;\n memset (extern_rt_rel_d, 0, PE_IDATA5_SIZE);/' -i ld/pe-dll.c
- # Zeroing timestamps in PE headers reliably, see bug 12753.
- patch -p1 < ../peXXigen.patch
# Needed for the hardening...
patch -p1 < ../enable-reloc-section-ld.patch
- # fix "right-hand operand of comma expression has no effect" warning
- patch -p1 < ../fix-warning-bfd.patch
[% END -%]
[% IF c('var/windows-x86_64') -%]
patch -p1 < ../64bit-fixups.patch
[% END -%]
-[% IF c("var/linux") && ! c("var/release") -%]
- # We need to work around a gold linker bug in 2.24 to get selfrando working,
- # see bug 20683.
- patch -p1 < $rootdir/binutils-224-gold.patch
-[% END -%]
./configure --prefix=$distdir [% c('var/configure_opt') %]
make -j[% c("buildconf/num_procs") %]
make install
diff --git a/projects/binutils/config b/projects/binutils/config
index 5c35588..7ac3799 100644
--- a/projects/binutils/config
+++ b/projects/binutils/config
@@ -1,5 +1,5 @@
# vim: filetype=yaml sw=2
-version: 2.24
+version: 2.29.1
filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
var:
configure_opt: '--disable-multilib --enable-gold --enable-deterministic-archives --enable-plugins'
@@ -19,11 +19,5 @@ input_files:
- project: container-image
- filename: enable-reloc-section-ld.patch
enable: '[% c("var/windows") %]'
- - filename: fix-warning-bfd.patch
- enable: '[% c("var/windows") %]'
- filename: 64bit-fixups.patch
enable: '[% c("var/windows-x86_64") %]'
- - filename: peXXigen.patch
- enable: '[% c("var/windows") %]'
- - filename: binutils-224-gold.patch
- enable: '[% c("var/linux") %]'
diff --git a/projects/binutils/enable-reloc-section-ld.patch b/projects/binutils/enable-reloc-section-ld.patch
index f393f51..a6600c3 100644
--- a/projects/binutils/enable-reloc-section-ld.patch
+++ b/projects/binutils/enable-reloc-section-ld.patch
@@ -1,30 +1,29 @@
-From 093b08a9e7af23a258306b710ebc4556d12f94f7 Mon Sep 17 00:00:00 2001
+From fba503a78c50d6134943245d55e820f53e8f19cd Mon Sep 17 00:00:00 2001
From: Erinn Clark <erinn@xxxxxxxxxxxxxx>
Date: Fri, 8 Aug 2014 14:23:44 -0400
Subject: [PATCH] add relocation section so Windows bundles can have ASLR
Patch by skruffy.
-
---
- ld/emultempl/pe.em | 6 +++++
- ld/emultempl/pep.em | 8 ++++++-
+ ld/emultempl/pe.em | 7 ++++++
+ ld/emultempl/pep.em | 11 ++++++++--
ld/pe-dll.c | 63 ++++++++++++++++++++++++++++++-----------------------
ld/pe-dll.h | 1 +
- 4 files changed, 50 insertions(+), 28 deletions(-)
+ 4 files changed, 53 insertions(+), 29 deletions(-)
diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em
-index 5d6da9e..14c07f7 100644
+index 339b7c5..3958b81 100644
--- a/ld/emultempl/pe.em
+++ b/ld/emultempl/pe.em
-@@ -268,6 +268,7 @@ fragment <<EOF
- #define OPTION_TERMINAL_SERVER_AWARE (OPTION_WDM_DRIVER + 1)
- /* Determinism. */
+@@ -272,6 +272,7 @@ fragment <<EOF
#define OPTION_INSERT_TIMESTAMP (OPTION_TERMINAL_SERVER_AWARE + 1)
-+#define OPTION_ENABLE_RELOC_SECTION (OPTION_INSERT_TIMESTAMP + 1)
+ #define OPTION_NO_INSERT_TIMESTAMP (OPTION_INSERT_TIMESTAMP + 1)
+ #define OPTION_BUILD_ID (OPTION_NO_INSERT_TIMESTAMP + 1)
++#define OPTION_ENABLE_RELOC_SECTION (OPTION_BUILD_ID + 1)
static void
gld${EMULATION_NAME}_add_options
-@@ -310,6 +311,7 @@ gld${EMULATION_NAME}_add_options
+@@ -315,6 +316,7 @@ gld${EMULATION_NAME}_add_options
{"export-all-symbols", no_argument, NULL, OPTION_EXPORT_ALL},
{"exclude-symbols", required_argument, NULL, OPTION_EXCLUDE_SYMBOLS},
{"exclude-all-symbols", no_argument, NULL, OPTION_EXCLUDE_ALL_SYMBOLS},
@@ -32,7 +31,7 @@ index 5d6da9e..14c07f7 100644
{"exclude-libs", required_argument, NULL, OPTION_EXCLUDE_LIBS},
{"exclude-modules-for-implib", required_argument, NULL, OPTION_EXCLUDE_MODULES_FOR_IMPLIB},
{"kill-at", no_argument, NULL, OPTION_KILL_ATS},
-@@ -773,6 +775,9 @@ gld${EMULATION_NAME}_handle_option (int optc)
+@@ -782,6 +784,9 @@ gld${EMULATION_NAME}_handle_option (int optc)
case OPTION_EXCLUDE_ALL_SYMBOLS:
pe_dll_exclude_all_symbols = 1;
break;
@@ -42,29 +41,30 @@ index 5d6da9e..14c07f7 100644
case OPTION_EXCLUDE_LIBS:
pe_dll_add_excludes (optarg, EXCLUDELIBS);
break;
-@@ -1839,6 +1844,7 @@ gld_${EMULATION_NAME}_finish (void)
- if (link_info.shared
+@@ -2076,6 +2081,8 @@ gld_${EMULATION_NAME}_finish (void)
#if !defined(TARGET_IS_shpe)
- || (!link_info.relocatable && pe_def_file->num_exports != 0)
-+ || (!link_info.relocatable && pe_dll_enable_reloc_section)
+ || (!bfd_link_relocatable (&link_info)
+ && pe_def_file->num_exports != 0)
++ || (!bfd_link_relocatable (&link_info)
++ && pe_dll_enable_reloc_section)
#endif
)
{
diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em
-index b738800..b566903 100644
+index c253d2f..fccbd63 100644
--- a/ld/emultempl/pep.em
+++ b/ld/emultempl/pep.em
-@@ -242,7 +242,8 @@ enum options
- OPTION_NO_BIND,
- OPTION_WDM_DRIVER,
+@@ -246,7 +246,8 @@ enum options
OPTION_INSERT_TIMESTAMP,
-- OPTION_TERMINAL_SERVER_AWARE
-+ OPTION_TERMINAL_SERVER_AWARE,
+ OPTION_NO_INSERT_TIMESTAMP,
+ OPTION_TERMINAL_SERVER_AWARE,
+- OPTION_BUILD_ID
++ OPTION_BUILD_ID,
+ OPTION_ENABLE_RELOC_SECTION
};
static void
-@@ -284,6 +285,7 @@ gld${EMULATION_NAME}_add_options
+@@ -288,6 +289,7 @@ gld${EMULATION_NAME}_add_options
{"export-all-symbols", no_argument, NULL, OPTION_EXPORT_ALL},
{"exclude-symbols", required_argument, NULL, OPTION_EXCLUDE_SYMBOLS},
{"exclude-all-symbols", no_argument, NULL, OPTION_EXCLUDE_ALL_SYMBOLS},
@@ -72,7 +72,7 @@ index b738800..b566903 100644
{"exclude-libs", required_argument, NULL, OPTION_EXCLUDE_LIBS},
{"exclude-modules-for-implib", required_argument, NULL, OPTION_EXCLUDE_MODULES_FOR_IMPLIB},
{"kill-at", no_argument, NULL, OPTION_KILL_ATS},
-@@ -727,6 +729,9 @@ gld${EMULATION_NAME}_handle_option (int optc)
+@@ -739,6 +741,9 @@ gld${EMULATION_NAME}_handle_option (int optc)
case OPTION_EXCLUDE_ALL_SYMBOLS:
pep_dll_exclude_all_symbols = 1;
break;
@@ -82,19 +82,22 @@ index b738800..b566903 100644
case OPTION_EXCLUDE_LIBS:
pep_dll_add_excludes (optarg, EXCLUDELIBS);
break;
-@@ -1618,6 +1623,7 @@ gld_${EMULATION_NAME}_finish (void)
-
+@@ -1857,7 +1862,9 @@ gld_${EMULATION_NAME}_finish (void)
#ifdef DLL_SUPPORT
- if (link_info.shared
-+ || (!link_info.relocatable && pe_dll_enable_reloc_section)
- || (!link_info.relocatable && pep_def_file->num_exports != 0))
+ if (bfd_link_pic (&link_info)
+ || (!bfd_link_relocatable (&link_info)
+- && pep_def_file->num_exports != 0))
++ && pe_dll_enable_reloc_section)
++ || (!bfd_link_relocatable (&link_info)
++ && pep_def_file->num_exports != 0))
{
pep_dll_fill_sections (link_info.output_bfd, &link_info);
+ if (command_line.out_implib_filename)
diff --git a/ld/pe-dll.c b/ld/pe-dll.c
-index e9e133b..4230dc3 100644
+index c398f23..3797f1a 100644
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
-@@ -152,6 +152,7 @@ def_file * pe_def_file = 0;
+@@ -151,6 +151,7 @@ def_file * pe_def_file = 0;
int pe_dll_export_everything = 0;
int pe_dll_exclude_all_symbols = 0;
int pe_dll_do_default_excludes = 1;
@@ -102,10 +105,10 @@ index e9e133b..4230dc3 100644
int pe_dll_kill_ats = 0;
int pe_dll_stdcall_aliases = 0;
int pe_dll_warn_dup_exports = 0;
-@@ -3370,8 +3371,15 @@ pe_dll_build_sections (bfd *abfd, struct bfd_link_info *info)
+@@ -3430,8 +3431,15 @@ pe_dll_build_sections (bfd *abfd, struct bfd_link_info *info)
process_def_file_and_drectve (abfd, info);
- if (pe_def_file->num_exports == 0 && !info->shared)
+ if (pe_def_file->num_exports == 0 && !bfd_link_pic (info))
- return;
-
+ {
@@ -120,7 +123,7 @@ index e9e133b..4230dc3 100644
generate_edata (abfd, info);
build_filler_bfd (1);
pe_output_file_set_long_section_names (filler_bfd);
-@@ -3386,13 +3394,9 @@ pe_exe_build_sections (bfd *abfd, struct bfd_link_info *info ATTRIBUTE_UNUSED)
+@@ -3446,13 +3454,9 @@ pe_exe_build_sections (bfd *abfd, struct bfd_link_info *info ATTRIBUTE_UNUSED)
pe_output_file_set_long_section_names (filler_bfd);
}
@@ -136,13 +139,13 @@ index e9e133b..4230dc3 100644
generate_reloc (abfd, info);
if (reloc_sz > 0)
{
-@@ -3409,38 +3413,43 @@ pe_dll_fill_sections (bfd *abfd, struct bfd_link_info *info)
+@@ -3469,38 +3473,43 @@ pe_dll_fill_sections (bfd *abfd, struct bfd_link_info *info)
lang_do_assignments (lang_final_phase_enum);
}
- fill_edata (abfd, info);
-
-- if (info->shared && !info->pie)
+- if (bfd_link_dll (info))
- pe_data (abfd)->dll = 1;
-
- edata_s->contents = edata_d;
@@ -174,7 +177,7 @@ index e9e133b..4230dc3 100644
- /* Resize the sections. */
- lang_reset_memory_regions ();
- lang_size_sections (NULL, TRUE);
-+ if (info->shared && !info->pie)
++ if (bfd_link_pic (info) && !bfd_link_pie (info))
+ pe_data (abfd)->dll = 1;
- /* Redo special stuff. */
@@ -200,10 +203,10 @@ index e9e133b..4230dc3 100644
bfd_boolean
diff --git a/ld/pe-dll.h b/ld/pe-dll.h
-index 4697390..2bf71d9 100644
+index 48d169b..05ff72b 100644
--- a/ld/pe-dll.h
+++ b/ld/pe-dll.h
-@@ -31,6 +31,7 @@ extern def_file *pe_def_file;
+@@ -30,6 +30,7 @@ extern def_file *pe_def_file;
extern int pe_dll_export_everything;
extern int pe_dll_exclude_all_symbols;
extern int pe_dll_do_default_excludes;
@@ -212,5 +215,5 @@ index 4697390..2bf71d9 100644
extern int pe_dll_stdcall_aliases;
extern int pe_dll_warn_dup_exports;
--
-2.0.1
+2.1.4
diff --git a/projects/binutils/fix-warning-bfd.patch b/projects/binutils/fix-warning-bfd.patch
deleted file mode 100644
index fa04405..0000000
--- a/projects/binutils/fix-warning-bfd.patch
+++ /dev/null
@@ -1,186 +0,0 @@
-From 27b829ee701e29804216b3803fbaeb629be27491 Mon Sep 17 00:00:00 2001
-From: Nick Clifton <nickc@xxxxxxxxxx>
-Date: Wed, 29 Jan 2014 13:46:39 +0000
-Subject: [PATCH] Following up on Tom's suggestion I am checking in a patch to
- replace the various bfd_xxx_set macros with static inline functions, so that
- we can avoid compile time warnings about comma expressions with unused
- values.
-
- * bfd-in.h (bfd_set_section_vma): Delete.
- (bfd_set_section_alignment): Delete.
- (bfd_set_section_userdata): Delete.
- (bfd_set_cacheable): Delete.
- * bfd.c (bfd_set_cacheable): New static inline function.
- * section.c (bfd_set_section_userdata): Likewise.
- (bfd_set_section_vma): Likewise.
- (bfd_set_section_alignment): Likewise.
- * bfd-in2.h: Regenerate.
----
- bfd/bfd-in.h | 5 -----
- bfd/bfd-in2.h | 41 +++++++++++++++++++++++++++++++++++------
- bfd/bfd.c | 8 ++++++++
- bfd/section.c | 26 ++++++++++++++++++++++++++
- 5 files changed, 81 insertions(+), 11 deletions(-)
-
-diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
-index 3afd71b..c7c5a7d 100644
---- a/bfd/bfd-in.h
-+++ b/bfd/bfd-in.h
-@@ -292,9 +292,6 @@ typedef struct bfd_section *sec_ptr;
-
- #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
-
--#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE)
--#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE)
--#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE)
- /* Find the address one past the end of SEC. */
- #define bfd_get_section_limit(bfd, sec) \
- (((bfd)->direction != write_direction && (sec)->rawsize != 0 \
-@@ -517,8 +514,6 @@ extern void warn_deprecated (const char *, const char *, int, const char *);
-
- #define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
-
--#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE)
--
- extern bfd_boolean bfd_cache_close
- (bfd *abfd);
- /* NB: This declaration should match the autogenerated one in libbfd.h. */
-diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
-index 71996db..b5aeb40 100644
---- a/bfd/bfd-in2.h
-+++ b/bfd/bfd-in2.h
-@@ -299,9 +299,6 @@ typedef struct bfd_section *sec_ptr;
-
- #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
-
--#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE)
--#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE)
--#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE)
- /* Find the address one past the end of SEC. */
- #define bfd_get_section_limit(bfd, sec) \
- (((bfd)->direction != write_direction && (sec)->rawsize != 0 \
-@@ -524,8 +521,6 @@ extern void warn_deprecated (const char *, const char *, int, const char *);
-
- #define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
-
--#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE)
--
- extern bfd_boolean bfd_cache_close
- (bfd *abfd);
- /* NB: This declaration should match the autogenerated one in libbfd.h. */
-@@ -1029,7 +1024,7 @@ bfd *bfd_openr (const char *filename, const char *target);
-
- bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
-
--bfd *bfd_openstreamr (const char *, const char *, void *);
-+bfd *bfd_openstreamr (const char * filename, const char * target, void * stream);
-
- bfd *bfd_openr_iovec (const char *filename, const char *target,
- void *(*open_func) (struct bfd *nbfd,
-@@ -1596,6 +1591,32 @@ struct relax_table {
- int size;
- };
-
-+/* Note: the following are provided as inline functions rather than macros
-+ because not all callers use the return value. A macro implementation
-+ would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
-+ compilers will complain about comma expressions that have no effect. */
-+static inline bfd_boolean
-+bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, void * val)
-+{
-+ ptr->userdata = val;
-+ return TRUE;
-+}
-+
-+static inline bfd_boolean
-+bfd_set_section_vma (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, bfd_vma val)
-+{
-+ ptr->vma = ptr->lma = val;
-+ ptr->user_set_vma = TRUE;
-+ return TRUE;
-+}
-+
-+static inline bfd_boolean
-+bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, unsigned int val)
-+{
-+ ptr->alignment_power = val;
-+ return TRUE;
-+}
-+
- /* These sections are global, and are managed by BFD. The application
- and target back end are not permitted to change the values in
- these sections. */
-@@ -6415,6 +6436,14 @@ struct bfd
- unsigned int selective_search : 1;
- };
-
-+/* See note beside bfd_set_section_userdata. */
-+static inline bfd_boolean
-+bfd_set_cacheable (bfd * abfd, bfd_boolean val)
-+{
-+ abfd->cacheable = val;
-+ return TRUE;
-+}
-+
- typedef enum bfd_error
- {
- bfd_error_no_error = 0,
-diff --git a/bfd/bfd.c b/bfd/bfd.c
-index 8d0580c..2d174f3 100644
---- a/bfd/bfd.c
-+++ b/bfd/bfd.c
-@@ -311,6 +311,14 @@ CODE_FRAGMENT
- . unsigned int selective_search : 1;
- .};
- .
-+.{* See note beside bfd_set_section_userdata. *}
-+.static inline bfd_boolean
-+.bfd_set_cacheable (bfd * abfd, bfd_boolean val)
-+.{
-+. abfd->cacheable = val;
-+. return TRUE;
-+.}
-+.
- */
-
- #include "sysdep.h"
-diff --git a/bfd/section.c b/bfd/section.c
-index fb19d8c..a661228 100644
---- a/bfd/section.c
-+++ b/bfd/section.c
-@@ -542,6 +542,32 @@ CODE_FRAGMENT
- . int size;
- .};
- .
-+.{* Note: the following are provided as inline functions rather than macros
-+. because not all callers use the return value. A macro implementation
-+. would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
-+. compilers will complain about comma expressions that have no effect. *}
-+.static inline bfd_boolean
-+.bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, void * val)
-+.{
-+. ptr->userdata = val;
-+. return TRUE;
-+.}
-+.
-+.static inline bfd_boolean
-+.bfd_set_section_vma (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, bfd_vma val)
-+.{
-+. ptr->vma = ptr->lma = val;
-+. ptr->user_set_vma = TRUE;
-+. return TRUE;
-+.}
-+.
-+.static inline bfd_boolean
-+.bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, unsigned int val)
-+.{
-+. ptr->alignment_power = val;
-+. return TRUE;
-+.}
-+.
- .{* These sections are global, and are managed by BFD. The application
- . and target back end are not permitted to change the values in
- . these sections. *}
---
-2.1.4
-
diff --git a/projects/binutils/peXXigen.patch b/projects/binutils/peXXigen.patch
deleted file mode 100644
index 785aa02..0000000
--- a/projects/binutils/peXXigen.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -crB binutils-2.24/bfd/peXXigen.c binutils-2.24/bfd/peXXigen.c
-*** binutils-2.24/bfd/peXXigen.c Tue Nov 26 11:37:33 2013
---- binutils-2.24/bfd/peXXigen.c Mon Aug 4 07:10:15 2014
-***************
-*** 795,800 ****
---- 795,802 ----
- /* Only use a real timestamp if the option was chosen. */
- if ((pe_data (abfd)->insert_timestamp))
- H_PUT_32 (abfd, time(0), filehdr_out->f_timdat);
-+ else
-+ H_PUT_32 (abfd, 0, filehdr_out->f_timdat);
-
- PUT_FILEHDR_SYMPTR (abfd, filehdr_in->f_symptr,
- filehdr_out->f_symptr);
diff --git a/projects/mingw-w64/build b/projects/mingw-w64/build
index 8d3e567..8acd41d 100644
--- a/projects/mingw-w64/build
+++ b/projects/mingw-w64/build
@@ -29,7 +29,7 @@ sed 's/msvcrt/msvcr100/' -i $distdir/msvcr100.spec
sed 's/msvcrt/msvcr100/' -i gcc-[% c("var/gcc_version") %]/gcc/config/i386/t-mingw-w32
# LDFLAGS_FOR_TARGET does not work for some reason. Thus, we take
# CFLAGS_FOR_TARGET.
-export CFLAGS_FOR_TARGET="-specs=$distdir/msvcr100.spec -Wl,--nxcompat -Wl,--dynamicbase"
+export CFLAGS_FOR_TARGET="-specs=$distdir/msvcr100.spec -Wl,--nxcompat -Wl,--dynamicbase -Wl,--no-insert-timestamp"
gcc-[% c("var/gcc_version") %]/configure --prefix=$distdir --target=[% c("arch") %]-w64-mingw32 --disable-multilib --enable-languages=c,c++
make -j[% c("buildconf/num_procs") %] all-gcc
make install-gcc
@@ -59,17 +59,17 @@ mkdir -p $distdir/helpers
cat > $distdir/helpers/[% c("arch") %]-w64-mingw32-g++ << 'EOF'
#!/bin/sh
-/var/tmp/dist/mingw-w64/bin/[% c("arch") %]-w64-mingw32-g++ -Wl,--dynamicbase -Wl,--nxcompat -Wl,--enable-reloc-section -fstack-protector --param ssp-buffer-size=4 -fno-strict-overflow "$@"
+/var/tmp/dist/mingw-w64/bin/[% c("arch") %]-w64-mingw32-g++ -Wl,--dynamicbase -Wl,--nxcompat -Wl,--enable-reloc-section -Wl,--no-insert-timestamp -fstack-protector --param ssp-buffer-size=4 -fno-strict-overflow "$@"
EOF
cat > $distdir/helpers/[% c("arch") %]-w64-mingw32-gcc << 'EOF'
#!/bin/sh
-/var/tmp/dist/mingw-w64/bin/[% c("arch") %]-w64-mingw32-gcc -Wl,--dynamicbase -Wl,--nxcompat -Wl,--enable-reloc-section -fstack-protector --param ssp-buffer-size=4 -fno-strict-overflow "$@"
+/var/tmp/dist/mingw-w64/bin/[% c("arch") %]-w64-mingw32-gcc -Wl,--dynamicbase -Wl,--nxcompat -Wl,--enable-reloc-section -Wl,--no-insert-timestamp -fstack-protector --param ssp-buffer-size=4 -fno-strict-overflow "$@"
EOF
cat > $distdir/helpers/[% c("arch") %]-w64-mingw32-ld << 'EOF'
#!/bin/sh
-/var/tmp/dist/mingw-w64/bin/[% c("arch") %]-w64-mingw32-ld --dynamicbase --nxcompat --enable-reloc-section -lssp -L$gcclibs "$@"
+/var/tmp/dist/mingw-w64/bin/[% c("arch") %]-w64-mingw32-ld --dynamicbase --nxcompat --enable-reloc-section --no-insert-timestamp -lssp -L$gcclibs "$@"
EOF
chmod +x $distdir/helpers/*
diff --git a/projects/nsis/build b/projects/nsis/build
index af19dd7..7a66884 100755
--- a/projects/nsis/build
+++ b/projects/nsis/build
@@ -1,8 +1,35 @@
#!/bin/bash
[% c("var/set_default_env") -%]
[% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %]
-# remove hardening wrappers
-rm -Rf /var/tmp/dist/mingw-w64/helpers
+# Some of the hardening flags are causing the build to fail, so we
+# overwrite the helpers with only the flags required to make the build
+# reproducible.
+helpersdir=/var/tmp/dist/mingw-w64/helpers
+cat > $helpersdir/[% c("arch") %]-w64-mingw32-g++ << 'EOF'
+#!/bin/sh
+/var/tmp/dist/mingw-w64/bin/[% c("arch") %]-w64-mingw32-g++ -Wl,--no-insert-timestamp "$@"
+EOF
+
+cat > $helpersdir/[% c("arch") %]-w64-mingw32-gcc << 'EOF'
+#!/bin/sh
+/var/tmp/dist/mingw-w64/bin/[% c("arch") %]-w64-mingw32-gcc -Wl,--no-insert-timestamp "$@"
+EOF
+
+cat > $helpersdir/[% c("arch") %]-w64-mingw32-ld << 'EOF'
+#!/bin/sh
+/var/tmp/dist/mingw-w64/bin/[% c("arch") %]-w64-mingw32-ld --no-insert-timestamp "$@"
+EOF
+# the nsis build system expects all toolchain binaries to be in the same
+# directory, so we create wrappers for the other commands in the same
+# directory.
+for util in ar ranlib windres
+do
+ cat > $helpersdir/[% c("arch") %]-w64-mingw32-$util <<EOF
+#!/bin/sh
+/var/tmp/dist/mingw-w64/bin/[% c("arch") %]-w64-mingw32-$util "\$@"
+EOF
+ chmod +x $helpersdir/[% c("arch") %]-w64-mingw32-$util
+done
mkdir -p /var/tmp/dist
mkdir -p /var/tmp/build
tar -C /var/tmp/build -xf nsis-[% c('version') %].tar.bz2
diff --git a/projects/openssl/config b/projects/openssl/config
index 378ee53..fc8e1ff 100644
--- a/projects/openssl/config
+++ b/projects/openssl/config
@@ -15,7 +15,7 @@ targets:
configure_opts: -shared linux-generic32
windows:
var:
- configure_opts: '-shared --cross-compile-prefix=[% c("arch") %]-w64-mingw32- mingw[% IF c("var/windows-x86_64") %]64[% END %] "-fstack-protector-all -Wstack-protector --param ssp-buffer-size=4 -fno-strict-overflow -Wno-missing-field-initializers -Wformat -Wformat-security -Wl,--dynamicbase -Wl,--nxcompat -Wl,--enable-reloc-section -lssp -L$gcclibs"'
+ configure_opts: '-shared --cross-compile-prefix=[% c("arch") %]-w64-mingw32- mingw[% IF c("var/windows-x86_64") %]64[% END %] "-fstack-protector-all -Wstack-protector --param ssp-buffer-size=4 -fno-strict-overflow -Wno-missing-field-initializers -Wformat -Wformat-security -Wl,--dynamicbase -Wl,--nxcompat -Wl,--enable-reloc-section -Wl,--no-insert-timestamp -lssp -L$gcclibs"'
osx-x86_64:
var:
configure_opts: --cross-compile-prefix=x86_64-apple-darwin10- darwin64-x86_64-cc enable-ec_nistp_64_gcc_128
diff --git a/projects/selfrando/config b/projects/selfrando/config
index f8afa5d..07195f7 100644
--- a/projects/selfrando/config
+++ b/projects/selfrando/config
@@ -1,6 +1,6 @@
# vim: filetype=yaml sw=2
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
-version: 0.3.3
+version: 0.4.1
git_hash: 'tb-v[% c("version") %]'
git_url: https://github.com/immunant/selfrando.git
gpg_keyring: selfrando.gpg
diff --git a/projects/zlib/build b/projects/zlib/build
index 4cb384b..ef26882 100644
--- a/projects/zlib/build
+++ b/projects/zlib/build
@@ -7,8 +7,8 @@ tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
cd /var/tmp/build/[% project %]-[% c('version') %]
export CFLAGS="[% c("var/CFLAGS") %]"
export LDFLAGS="[% c("var/LDFLAGS") %]"
-make BINARY_PATH=$distdir/lib INCLUDE_PATH=$distdir/include LIBRARY_PATH=$distdir/lib -f win32/Makefile.gcc PREFIX=[% c("arch") %]-w64-mingw32- -j4 SHARED_MODE=1 LOC="-fstack-protector-all -Wstack-protector --param ssp-buffer-size=4 -fno-strict-overflow -Wno-missing-field-initializers -Wformat -Wformat-security -Wl,--dynamicbase -Wl,--nxcompat -Wl,--enable-reloc-section -lssp -L$gcclibs"
-make BINARY_PATH=$distdir/lib INCLUDE_PATH=$distdir/include LIBRARY_PATH=$distdir/lib -f win32/Makefile.gcc PREFIX=[% c("arch") %]-w64-mingw32- -j4 SHARED_MODE=1 LOC="-fstack-protector-all -Wstack-protector --param ssp-buffer-size=4 -fno-strict-overflow -Wno-missing-field-initializers -Wformat -Wformat-security -Wl,--dynamicbase -Wl,--nxcompat -Wl,--enable-reloc-section -lssp -L$gcclibs" install
+make BINARY_PATH=$distdir/lib INCLUDE_PATH=$distdir/include LIBRARY_PATH=$distdir/lib -f win32/Makefile.gcc PREFIX=[% c("arch") %]-w64-mingw32- -j4 SHARED_MODE=1 LOC="-fstack-protector-all -Wstack-protector --param ssp-buffer-size=4 -fno-strict-overflow -Wno-missing-field-initializers -Wformat -Wformat-security -Wl,--dynamicbase -Wl,--nxcompat -Wl,--enable-reloc-section -Wl,--no-insert-timestamp -lssp -L$gcclibs"
+make BINARY_PATH=$distdir/lib INCLUDE_PATH=$distdir/include LIBRARY_PATH=$distdir/lib -f win32/Makefile.gcc PREFIX=[% c("arch") %]-w64-mingw32- -j4 SHARED_MODE=1 LOC="-fstack-protector-all -Wstack-protector --param ssp-buffer-size=4 -fno-strict-overflow -Wno-missing-field-initializers -Wformat -Wformat-security -Wl,--dynamicbase -Wl,--nxcompat -Wl,--enable-reloc-section -Wl,--no-insert-timestamp -lssp -L$gcclibs" install
cd /var/tmp/dist
[% c('tar', {
diff --git a/rbm.conf b/rbm.conf
index f6a9212..23e4eaf 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -217,7 +217,7 @@ targets:
suite: jessie
configure_opt: '--host=[% c("arch") %]-w64-mingw32 CFLAGS="[% c("var/CFLAGS") %]" LDFLAGS="[% c("var/LDFLAGS") %]"'
CFLAGS: '[% c("var/flag_mwindows") %] -fstack-protector-all -Wstack-protector --param ssp-buffer-size=4 -fno-strict-overflow -Wno-missing-field-initializers -Wformat -Wformat-security'
- LDFLAGS: '[% c("var/flag_mwindows") %] -Wl,--dynamicbase -Wl,--nxcompat -Wl,--enable-reloc-section -lssp -L$gcclibs'
+ LDFLAGS: '[% c("var/flag_mwindows") %] -Wl,--dynamicbase -Wl,--nxcompat -Wl,--enable-reloc-section -Wl,--no-insert-timestamp -lssp -L$gcclibs'
flag_mwindows: '-mwindows'
compiler: mingw-w64
deps:
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits