Version 2.14.0-225.0.dev
Merge commit 'c3880f466fb89c37c1163a1f36072abf066e5e70' into 'dev'
diff --git a/runtime/vm/elf.cc b/runtime/vm/elf.cc
index 0db0a6d..55b14e8 100644
--- a/runtime/vm/elf.cc
+++ b/runtime/vm/elf.cc
@@ -1219,7 +1219,7 @@
(defined(TARGET_ARCH_ARM) || defined(TARGET_ARCH_ARM64))
// Multiplier which will be used to scale operands of DW_CFA_offset and
// DW_CFA_val_offset.
- const intptr_t kDataAlignment = kWordSize;
+ const intptr_t kDataAlignment = compiler::target::kWordSize;
const uint8_t DW_CFA_offset = 0x80;
const uint8_t DW_CFA_val_offset = 0x14;
@@ -1241,7 +1241,7 @@
const intptr_t start = stream.Position();
stream.WriteFixed<uint32_t>(0);
body();
- stream.Align(kWordSize);
+ stream.Align(compiler::target::kWordSize);
const intptr_t end = stream.Position();
stream.SetPosition(start);
// Write length not counting the length field itself.
@@ -1379,6 +1379,10 @@
auto const hash = new (zone_) SymbolHashTable(zone_, dynstrtab_, dynsym_);
AddSection(hash, ".hash");
+ // Must come before .dynamic, because .dynamic is writable and
+ // .eh_frame is not. See restriction in Elf::WriteProgramTable.
+ FinalizeEhFrame();
+
auto const dynamic =
new (zone_) DynamicTable(zone_, dynstrtab_, dynsym_, hash);
AddSection(dynamic, ".dynamic");
@@ -1403,7 +1407,6 @@
}
AddSection(shstrtab_, ".shstrtab");
FinalizeDwarfSections();
- FinalizeEhFrame();
// At this point, all non-programmatically calculated sections and segments
// have been added. Add any programatically calculated sections and segments
diff --git a/tools/VERSION b/tools/VERSION
index ba5c6a0..230a736 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 14
PATCH 0
-PRERELEASE 224
+PRERELEASE 225
PRERELEASE_PATCH 0
\ No newline at end of file