[all-commits] [llvm/llvm-project] 30718f: [llvm-objcopy] --weaken-symbol/--weaken: weaken ST...

Fangrui Song via All-commits all-commits at lists.llvm.org
Wed Mar 16 09:48:34 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 30718f3aa62b81c2814564d2ca08888435202655
      https://github.com/llvm/llvm-project/commit/30718f3aa62b81c2814564d2ca08888435202655
  Author: Fangrui Song <i at maskray.me>
  Date:   2022-03-16 (Wed, 16 Mar 2022)

  Changed paths:
    M llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp
    M llvm/test/tools/llvm-objcopy/ELF/weaken-all.test
    M llvm/test/tools/llvm-objcopy/ELF/weaken.test

  Log Message:
  -----------
  [llvm-objcopy] --weaken-symbol/--weaken: weaken STB_GNU_UNIQUE symbols

STB_GNU_UNIQUE is like STB_GLOBAL with extra semantics:

* gold and ld.lld: changed to STB_GLOBAL if --no-gnu-unique is specified
* glibc: unique even with dlopen `RTLD_LOCAL`, implies DF_1_NODELETE

Therefore, I think it makes sense for --weaken-symbol/--weaken-symbols/--weaken
to change STB_GNU_UNIQUE symbols.

binutils 2.39 will have the same behavior: https://sourceware.org/bugzilla/show_bug.cgi?id=28926

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D120638




More information about the All-commits mailing list