Author: tstellar Date: Wed Jun 5 19:32:26 2019 New Revision: 362669 URL: http://llvm.org/viewvc/llvm-project?rev=362669&view=rev Log: Merging r360442:
------------------------------------------------------------------------ r360442 | maskray | 2019-05-10 10:09:25 -0700 (Fri, 10 May 2019) | 12 lines [MC][ELF] Copy top 3 bits of st_other to .symver aliases On PowerPC64 ELFv2 ABI, the top 3 bits of st_other encode the local entry offset. A versioned symbol alias created by .symver should copy the bits from the source symbol. This partly fixes PR41048. A full fix needs tracking of .set assignments and updating st_other fields when finish() is called, see D56586. Patch by Alfredo Dal'Ava JĂșnior Differential Revision: https://reviews.llvm.org/D59436 ------------------------------------------------------------------------ Added: llvm/branches/release_80/test/MC/PowerPC/ppc64-localentry-symver.s Modified: llvm/branches/release_80/lib/MC/ELFObjectWriter.cpp Modified: llvm/branches/release_80/lib/MC/ELFObjectWriter.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_80/lib/MC/ELFObjectWriter.cpp?rev=362669&r1=362668&r2=362669&view=diff ============================================================================== --- llvm/branches/release_80/lib/MC/ELFObjectWriter.cpp (original) +++ llvm/branches/release_80/lib/MC/ELFObjectWriter.cpp Wed Jun 5 19:32:26 2019 @@ -1271,6 +1271,7 @@ void ELFObjectWriter::executePostLayoutB // This is the first place we are able to copy this information. Alias->setExternal(Symbol.isExternal()); Alias->setBinding(Symbol.getBinding()); + Alias->setOther(Symbol.getOther()); if (!Symbol.isUndefined() && !Rest.startswith("@@@")) continue; Added: llvm/branches/release_80/test/MC/PowerPC/ppc64-localentry-symver.s URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_80/test/MC/PowerPC/ppc64-localentry-symver.s?rev=362669&view=auto ============================================================================== --- llvm/branches/release_80/test/MC/PowerPC/ppc64-localentry-symver.s (added) +++ llvm/branches/release_80/test/MC/PowerPC/ppc64-localentry-symver.s Wed Jun 5 19:32:26 2019 @@ -0,0 +1,17 @@ +# RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-freebsd13.0 %s -o %t +# RUN: llvm-objdump -t %t | FileCheck %s + +# CHECK: 0000000000000000 gw F .text 00000000 0x60 __impl_foo +# CHECK: 0000000000000000 g F .text 00000000 0x60 foo +# CHECK: 0000000000000000 gw F .text 00000000 0x60 foo@FBSD_1.1 + +.globl foo +.type foo,@function +foo: + nop + nop + .localentry foo, 8 + +.symver __impl_foo, foo@FBSD_1.1 +.weak __impl_foo +.set __impl_foo, foo _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits