Re: [PATCH v5 8/8] LoongArch: Add ORC stack unwinder support

From: Tiezhu Yang
Date: Thu Dec 07 2023 - 02:43:13 EST




On 12/03/2023 09:20 PM, Xi Ruoyao wrote:
On Wed, 2023-11-29 at 21:07 +0800, Tiezhu Yang wrote:
+KBUILD_AFLAGS += $(call cc-option,-mthin-add-sub) $(call cc-option,-Wa$(comma)-mthin-add-sub)
+KBUILD_CFLAGS += $(call cc-option,-mthin-add-sub) $(call cc-option,-Wa$(comma)-mthin-add-sub)
+
+ifdef CONFIG_OBJTOOL
+KBUILD_CFLAGS += -fno-optimize-sibling-calls -fno-jump-tables -falign-functions=4 -falign-labels=4
+endif

I still hate regressing the optimization with a passion.

Yes, I agree in general.


And -falign-labels=4 implies -falign-functions=4 so at least we can
remove -falign-functions=4.

Thanks.


And in GCC >= 14 the defaults are -falign-labels=16 and -falign-
functions=32. These values are determined by benchmarking on LA464 so
I'd suggest using them (maybe unless CONFIG_CC_OPTIMIZE_FOR_SIZE).


The initial aim to add "-falign-functions=4 -falign-labels=4" is to
avoid generating nop instructions in .o file with -mrelax option
by default, otherwise the orc info can not match the symbol address
in vmlinux.

I want to add -mno-relax option and remove the extra option
"-falign-functions=4 -falign-labels=4", then the offsets in
each .o file and vmlinux are same, and it is not necessary
to do the special handling about local labels, I think
it will make life easier.

Thanks,
Tiezhu