mbox series

[mips-next,0/4] MIPS: vmlinux.lds.S sections fix & cleanup

Message ID 20210104121729.46981-1-alobakin@pm.me
Headers show
Series MIPS: vmlinux.lds.S sections fix & cleanup | expand

Message

Alexander Lobakin Jan. 4, 2021, 12:18 p.m. UTC
This series hunts the problems discovered after manual enabling of
ARCH_WANT_LD_ORPHAN_WARN, notably the missing PAGE_ALIGNED_DATA()
section affecting VDSO placement (marked for stable).

Compile and runtime tested on MIPS32R2 CPS board with no issues.

Alexander Lobakin (4):
  MIPS: vmlinux.lds.S: add missing PAGE_ALIGNED_DATA() section
  MIPS: vmlinux.lds.S: add ".rel.dyn" to DISCARDS
  MIPS: vmlinux.lds.S: add ".gnu.attributes" to DISCARDS
  MIPS: select ARCH_WANT_LD_ORPHAN_WARN

 arch/mips/Kconfig              | 1 +
 arch/mips/kernel/vmlinux.lds.S | 5 ++++-
 2 files changed, 5 insertions(+), 1 deletion(-)

Comments

Nathan Chancellor Jan. 5, 2021, 12:09 a.m. UTC | #1
On Mon, Jan 04, 2021 at 12:18:10PM +0000, Alexander Lobakin wrote:
> This series hunts the problems discovered after manual enabling of
> ARCH_WANT_LD_ORPHAN_WARN, notably the missing PAGE_ALIGNED_DATA()
> section affecting VDSO placement (marked for stable).
> 
> Compile and runtime tested on MIPS32R2 CPS board with no issues.
> 
> Alexander Lobakin (4):
>   MIPS: vmlinux.lds.S: add missing PAGE_ALIGNED_DATA() section
>   MIPS: vmlinux.lds.S: add ".rel.dyn" to DISCARDS
>   MIPS: vmlinux.lds.S: add ".gnu.attributes" to DISCARDS
>   MIPS: select ARCH_WANT_LD_ORPHAN_WARN
> 
>  arch/mips/Kconfig              | 1 +
>  arch/mips/kernel/vmlinux.lds.S | 5 ++++-
>  2 files changed, 5 insertions(+), 1 deletion(-)
> 
> -- 
> 2.30.0
> 

Glad to see ARCH_WANT_LD_ORPHAN_WARN catching on :)

I took this for a spin with clang with malta_kvm_guest_defconfig and I
only see one section unaccounted for:

$ make -skj"$(nproc)" ARCH=mips CROSS_COMPILE=mipsel-linux-gnu- LLVM=1 O=out/mips distclean malta_kvm_guest_defconfig all
...
ld.lld: warning: <internal>:(.got) is being placed in '.got'
ld.lld: warning: <internal>:(.got) is being placed in '.got'
ld.lld: warning: <internal>:(.got) is being placed in '.got'

Looks like most architectures place it in .got (ia64, nios2, powerpc)
or .text (arm64).

Cheers,
Nathan
Alexander Lobakin Jan. 6, 2021, 8:14 p.m. UTC | #2
From: Nathan Chancellor <natechancellor@gmail.com>

Date: Mon, 4 Jan 2021 17:09:36 -0700

> On Mon, Jan 04, 2021 at 12:18:10PM +0000, Alexander Lobakin wrote:

>> This series hunts the problems discovered after manual enabling of

>> ARCH_WANT_LD_ORPHAN_WARN, notably the missing PAGE_ALIGNED_DATA()

>> section affecting VDSO placement (marked for stable).

>>

>> Compile and runtime tested on MIPS32R2 CPS board with no issues.

>>

>> Alexander Lobakin (4):

>>   MIPS: vmlinux.lds.S: add missing PAGE_ALIGNED_DATA() section

>>   MIPS: vmlinux.lds.S: add ".rel.dyn" to DISCARDS

>>   MIPS: vmlinux.lds.S: add ".gnu.attributes" to DISCARDS

>>   MIPS: select ARCH_WANT_LD_ORPHAN_WARN

>>

>>  arch/mips/Kconfig              | 1 +

>>  arch/mips/kernel/vmlinux.lds.S | 5 ++++-

>>  2 files changed, 5 insertions(+), 1 deletion(-)

>>

>> --

>> 2.30.0

>>

>

> Glad to see ARCH_WANT_LD_ORPHAN_WARN catching on :)

>

> I took this for a spin with clang with malta_kvm_guest_defconfig and I

> only see one section unaccounted for:

>

> $ make -skj"$(nproc)" ARCH=mips CROSS_COMPILE=mipsel-linux-gnu- LLVM=1 O=out/mips distclean malta_kvm_guest_defconfig all

> ...

> ld.lld: warning: <internal>:(.got) is being placed in '.got'

> ld.lld: warning: <internal>:(.got) is being placed in '.got'

> ld.lld: warning: <internal>:(.got) is being placed in '.got'

>

> Looks like most architectures place it in .got (ia64, nios2, powerpc)

> or .text (arm64).


Addressed in v2, thanks!

> Cheers,

> Nathan


Al