Messages in this thread Patch in this message | | | From | Huacai Chen <> | Date | Thu, 28 Jul 2022 20:25:08 +0800 | Subject | Re: [PATCH v2 3/4] LoongArch: Stop using undocumented assembler options |
| |
Hi, Ruoyao,
On Thu, Jul 28, 2022 at 8:03 PM Xi Ruoyao <xry111@xry111.site> wrote: > > Now we can handle GOT and GOT-based relocations properly, remove the > undocumented `-Wa,-mla-{global,local}-with-{pcrel,abs}` assembler hacks. I think "-Wa,-mla-{global,local}-with-{pcrel,abs}" may be regular options rather than "hacks". If I'm right, the title and commit message should be updated. And we can send patches to binutils to make them "documented".
Huacai > > And, -fplt is the default of all supported compilers (GCC, and maybe > Clang in the future), so it can be removed as well. > > Adjust assembly code to explicitly use "la.pcrel" where necessary. > > Signed-off-by: Xi Ruoyao <xry111@xry111.site> > --- > arch/loongarch/Makefile | 4 ---- > arch/loongarch/kernel/head.S | 10 +++++----- > 2 files changed, 5 insertions(+), 9 deletions(-) > > diff --git a/arch/loongarch/Makefile b/arch/loongarch/Makefile > index 039dcc4fe1f3..800349ea9310 100644 > --- a/arch/loongarch/Makefile > +++ b/arch/loongarch/Makefile > @@ -40,10 +40,6 @@ endif > > cflags-y += -G0 -pipe -msoft-float > LDFLAGS_vmlinux += -G0 -static -n -nostdlib > -KBUILD_AFLAGS_KERNEL += -Wa,-mla-global-with-pcrel > -KBUILD_CFLAGS_KERNEL += -Wa,-mla-global-with-pcrel > -KBUILD_AFLAGS_MODULE += -Wa,-mla-global-with-abs > -KBUILD_CFLAGS_MODULE += -fplt -Wa,-mla-global-with-abs,-mla-local-with-abs > > cflags-y += -ffreestanding > cflags-y += $(call cc-option, -mno-check-zero-division) > diff --git a/arch/loongarch/kernel/head.S b/arch/loongarch/kernel/head.S > index 74ea7bf6c8d6..193329ed6e8c 100644 > --- a/arch/loongarch/kernel/head.S > +++ b/arch/loongarch/kernel/head.S > @@ -60,17 +60,17 @@ SYM_CODE_START(kernel_entry) # kernel entry point > la.abs t0, 0f > jirl zero, t0, 0 > 0: > - la t0, __bss_start # clear .bss > + la.pcrel t0, __bss_start # clear .bss > st.d zero, t0, 0 > - la t1, __bss_stop - LONGSIZE > + la.pcrel t1, __bss_stop - LONGSIZE > 1: > addi.d t0, t0, LONGSIZE > st.d zero, t0, 0 > bne t0, t1, 1b > > - la t0, fw_arg0 > + la.pcrel t0, fw_arg0 > st.d a0, t0, 0 # firmware arguments > - la t0, fw_arg1 > + la.pcrel t0, fw_arg1 > st.d a1, t0, 0 > > /* KSave3 used for percpu base, initialized as 0 */ > @@ -78,7 +78,7 @@ SYM_CODE_START(kernel_entry) # kernel entry point > /* GPR21 used for percpu base (runtime), initialized as 0 */ > or u0, zero, zero > > - la tp, init_thread_union > + la.pcrel tp, init_thread_union > /* Set the SP after an empty pt_regs. */ > PTR_LI sp, (_THREAD_SIZE - 32 - PT_SIZE) > PTR_ADD sp, sp, tp > -- > 2.37.0 > > >
| |