Revert "[vm/build] Workaround for ld 2.19 crash on ARM"

This reverts commit e961aa565e.

Reason for revert: does not actually work

Original change's description:
> [vm/build] Workaround for ld 2.19 crash on ARM
>
> When producing ARM builds instruct llvm-objcopy to drop .ARM.exidx/extab
> sections. These sections don't contain any useful information (we don't use
> exceptions or unwind C++ frames and most of the dart binary is in fact not
> covered by them), however they have been seen to break dynamic linker in older
> glibc versions (pre 2.23) because .ARM.exidx ends up being positioned between
> .rel.dyn and .rel.plt sections while older versions of dynamic linker
> expect these two sections to appear one after another in the ELF file.
>
> Closes https://github.com/dart-lang/sdk/issues/41644.
>
> Change-Id: I0ceebb63105591f132f3764180ae041366cbcade
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175723
> Reviewed-by: Alexander Markov <alexmarkov@google.com>
> Commit-Queue: Vyacheslav Egorov <vegorov@google.com>

TBR=vegorov@google.com,kustermann@google.com,rmacnak@google.com,alexmarkov@google.com

Change-Id: Ia797d8bb6e5dbc44bf68965320da1e03ece17052
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175727
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
This commit is contained in:
Vyacheslav Egorov 2020-12-11 21:49:11 +00:00 committed by commit-bot@chromium.org
parent 15a533f0ac
commit 5548d11f4c
2 changed files with 1 additions and 18 deletions

View file

@ -204,13 +204,7 @@ template("gcc_toolchain") {
command += " && " + strip_command
} else if (defined(invoker.llvm_objcopy)) {
strip = invoker.llvm_objcopy
if (defined(invoker.llvm_objcopy_extra_args)) {
extra_args = invoker.llvm_objcopy_extra_args
} else {
extra_args = ""
}
strip_command =
"${strip} --strip-all ${extra_args} $outfile $stripped_outfile"
strip_command = "${strip} --strip-all $outfile $stripped_outfile"
command += " && " + strip_command
}
if (defined(invoker.postlink)) {

View file

@ -52,17 +52,6 @@ gcc_toolchain("clang_arm") {
ld = cxx
llvm_objcopy = "${prefix}/llvm-objcopy"
# When producing ARM builds we drop .ARM.exidx/extab sections. These sections
# don't contain any useful information (we don't use exceptions or
# unwind C++ frames and most of the dart binary is in fact not covered by
# them), however they have been seen to break dynamic linker in older glibc
# versions (pre 2.23) because .ARM.exidx ends up being positioned between
# .rel.dyn and .rel.plt sections while older versions of dynamic linker
# expect these two sections to appear one after another in the ELF file.
# See https://github.com/dart-lang/sdk/issues/41644.
llvm_objcopy_extra_args =
"--remove-section .ARM.exidx --remove-section .ARM.extab"
toolchain_cpu = "arm"
toolchain_os = "linux"
is_clang = true