Re: CBL issue #431: lld: x86_64: sysfs: cannot create duplicate filename $module/.rodata.cst{16,32}

From: Sedat Dilek
Date: Mon Apr 08 2019 - 11:17:02 EST


On Mon, Apr 8, 2019 at 5:04 PM Denys Vlasenko <dvlasenk@xxxxxxxxxx> wrote:
>
> On 4/8/19 4:57 PM, Sedat Dilek wrote:
> > We have arch/x86/crypto/chacha-avx2-x86_64.S and
> > arch/x86/crypto/chacha-avx512vl-x86_64.S:
> >
> > .rodata.cst32.CTR2BL
> > .rodata.cst32.CTR4BL
> > .rodata.cst32.CTR2BL
> > .rodata.cst32.CTR4BL
> >
> > ...and in arch/x86/crypto/sha256-avx2-asm.S and
> > arch/x86/crypto/sha512-avx2-asm.S:
> >
> > .rodata.cst32.PSHUFFLE_BYTE_FLIP_MASK
> >
> > Correct?
>
> You mean, we have duplicate section names.
>
> Well, this brings me to my initial response -
> "Not sure how exactly this causes the error".
>
> Duplicate section names are allowed by the linker.
> There is nothing wrong with that.
>
> The warnings you see come from some other tooling,
> which does not handle correctly object files with more
> than one section with the same name.
>
> (Having unique names is still preferable,
> it helps humans to more easily find where sections come from,
> and for potential future --gc-sections optimization).

LLD offers these options:

--check-sections Check section addresses for overlaps (default)

--ignore-data-address-equality
lld can break the address equality of data

--ignore-function-address-equality
lld can break the address equality of functions

- Sedat -