[PATCH] D24650: [ELF] - Linkerscript: PR30387 - cannot handle EXCLUDE_FILE in the middle of a input section description.
George Rimar via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 16 13:03:35 PDT 2016
grimar added inline comments.
================
Comment at: lld/trunk/ELF/LinkerScript.cpp:992
@@ +991,3 @@
+// Example: *(.foo.1 EXCLUDE_FILE (*a.o) .foo.2 EXCLUDE_FILE (*b.o) .foo.3)
+void ScriptParser::readSectionExcludes(InputSectionDescription *Cmd) {
+ llvm::Regex ExcludeFileRe;
----------------
ruiu wrote:
> It's not clear to me what the grammar of this thing is.
>
> A B EXCLUDE_FILE(C) D E
>
> Does the above pattern mean A, B, D except those matching C, and E? Or A, B, D except those matching C, E except those matching C?
>
> What if the pattern is this?
>
> A B EXCLUDE_FILE(C) EXCLUDE_FILE(D) E
>
Example from PR30387:
sec0 EXCLUDE_FILE (zed1.o) sec1 EXCLUDE_FILE (zed2.o) sec2 )
The semantics according to bfd are:
Include sec1 from every file but zed1.o
Include sec2 from every file but zed2.o
Include sec0 from every file
So
```
A B EXCLUDE_FILE(C) D E
```
Should be all A, B sections + all D, E excluding those in file C.
Pattern of
```
A B EXCLUDE_FILE(C) EXCLUDE_FILE(D) E
```
then should be all A, B + all E except those in file E.
Repository:
rL LLVM
https://reviews.llvm.org/D24650
More information about the llvm-commits
mailing list