linux/arch/s390/kernel/vdso64
Sumanth Korikkar 8192a1b380 s390/vdso64: filter out munaligned-symbols flag for vdso
Gcc recently implemented an optimization [1] for loading symbols without
explicit alignment, aligning with the IBM Z ELF ABI. This ABI mandates
symbols to reside on a 2-byte boundary, enabling the use of the larl
instruction. However, kernel linker scripts may still generate unaligned
symbols. To address this, a new -munaligned-symbols option has been
introduced [2] in recent gcc versions.

[1] https://gcc.gnu.org/pipermail/gcc-patches/2023-June/622872.html
[2] https://gcc.gnu.org/pipermail/gcc-patches/2023-August/625986.html

However, when -munaligned-symbols  is used in vdso code, it leads to the
following compilation error:
`.data.rel.ro.local' referenced in section `.text' of
arch/s390/kernel/vdso64/vdso64_generic.o: defined in discarded section
`.data.rel.ro.local' of arch/s390/kernel/vdso64/vdso64_generic.o

vdso linker script discards .data section to make it lightweight.
However, -munaligned-symbols in vdso object files references literal
pool and accesses _vdso_data. Hence, compile vdso code without
-munaligned-symbols.  This means in the future, vdso code should deal
with alignment of newly introduced unaligned linker symbols.

Acked-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Sumanth Korikkar <sumanthk@linux.ibm.com>
Link: https://lore.kernel.org/r/20240219132734.22881-2-sumanthk@linux.ibm.com
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
2024-02-20 14:37:33 +01:00
..
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
gen_vdso_offsets.sh s390/vdso: add minimal compat vdso 2021-07-08 15:37:28 +02:00
getcpu.c s390/vdso: use union tod_clock 2021-02-13 17:17:54 +01:00
Makefile s390/vdso64: filter out munaligned-symbols flag for vdso 2024-02-20 14:37:33 +01:00
note.S s390: add a few more SPDX identifiers 2017-12-05 07:51:09 +01:00
vdso64_generic.c s390/vdso: add missing prototypes for vdso functions 2020-11-30 14:10:50 +01:00
vdso64_wrapper.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
vdso64.lds.S s390/vdso: remove unused ENTRY in linker scripts 2024-02-14 13:50:53 +01:00
vdso_user_wrapper.S s390/vdso: use __ALIGN instead of open coded .align 2023-03-20 11:12:47 +01:00
vdso.h s390/vdso: add missing prototypes for vdso functions 2020-11-30 14:10:50 +01:00