[PATCH] D26395: [ELF] - Add support for locals list in version script.

George Rimar via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 8 06:16:07 PST 2016


grimar created this revision.
grimar added reviewers: ruiu, rafael.
grimar added subscribers: llvm-commits, grimar, davide, evgeny777.
Herald added a subscriber: emaste.

Found this when tried to build FreeBSD port jpeg-turbo-1.5.1 which fails to link because of next script:

  LIBJPEGTURBO_8.0 {
    
    local:
      jsimd_*;
      jconst_*;
  };
  
  LIBJPEG_8.0 {
    global:
      *;
  };

Previously we did not support anything except "local: *", patch changes that.

Actually GNU rules of proccessing wildcards are more complex than that (http://www.airs.com/blog/archives/300):
There are 2 iteration for wildcards, at first iteration "*" wildcards are ignored and handled at second iteration.

Since we previously decided not to implement such complex rules,
I suggest solution that is implemented in this patch. So for "local: *" case nothing changes, but if we have wildcarded locals,
they are processed before globals. That adds a chance for such scripts to work.


https://reviews.llvm.org/D26395

Files:
  ELF/Config.h
  ELF/LinkerScript.cpp
  ELF/SymbolTable.cpp
  test/ELF/version-script-locals.s

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D26395.77184.patch
Type: text/x-patch
Size: 7513 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161108/1124c795/attachment.bin>


More information about the llvm-commits mailing list