mirror of
https://github.com/dart-lang/sdk
synced 2024-10-06 15:19:41 +00:00
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:
parent
15a533f0ac
commit
5548d11f4c
|
@ -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)) {
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue