[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 0/5] loongarch: add relaxation support
From: |
Xiaotian Wu |
Subject: |
Re: [PATCH v2 0/5] loongarch: add relaxation support |
Date: |
Tue, 13 Jun 2023 15:22:35 +0800 |
User-agent: |
Evolution 3.46.4 |
Maybe you can tell me how to add compiler options, thank you.
在 2023-06-13星期二的 14:54 +0800,Xiaotian Wu写道:
> 在 2023-06-13星期二的 14:33 +0800,mengqinggang写道:
> > LDFLAGS do not affect relocations generation. If just modify
> > LDFLAGS,
> > grub still needs to process relaxation relocations.
> >
>
> According to you, the no-relax test logic of sparc64 is wrong? So we
> still need patch #5 in v2?
>
> > 在 2023/6/13 下午2:22, Xiaotian Wu 写道:
> >
> > > 在 2023-06-13星期二的 11:25 +0800,mengqinggang写道:
> > >
> > > > Is this patch used to check if ld supports --no-relax option?
> > > > It need to pass -mno-relax option to as or gcc to disable
> > > > binutils
> > > > generate relaxation relocations.
> > > >
> > > Check "-mno-relax" and "-Wl,--no-relax" in order, if "-mno-relax"
> > > is
> > > valid, then LDFLAGS="$LDFLAGS -mno-relax"; if "-Wl,--no-relax" is
> > > valid, then LDFLAGS="$LDFLAGS -Wl,--no-relax", otherwise report
> > > an
> > > error.
> > >
> > > The full code is here:
> > > https://github.com/loongarch64/grub/blob/dev-master/configure.ac#L976-L1000
> > >
> > > Using binutils 2.40, the LDFLAGS value displayed in the Makefile
> > > is
> > > as
> > > follows, without "-mno-relax" in it:
> > >
> > > TARGET_LDFLAGS = "-Wl,--no-relax -no-pie -Wl,--build-id=none"
> > >
> > >
> > > > 在 2023/6/13 上午10:37, Xiaotian Wu 写道:
> > > >
> > > >
> > > > > New patch is ready:
> > > > > https://github.com/loongarch64/grub/commits/dev-master
> > > > >
> > > > > I need your help to confirm that binutils-2.40 and binutils-
> > > > > dev
> > > > > code
> > > > > have the same behavior when using compile options, thanks.
> > > > >
> > > > > 在 2023-06-12星期一的 06:35 +0800,Xi Ruoyao via Grub-devel写道:
> > > > >
> > > > >
> > > > > > On Wed, 2023-06-07 at 15:34 +0800, Xiaotian Wu wrote:
> > > > > >
> > > > > >
> > > > > > > Because the binutils of the loongarch architecture adds
> > > > > > > relaxation
> > > > > > > support [1], the next version of binutils will not be
> > > > > > > able
> > > > > > > to
> > > > > > > build
> > > > > > > grub.
> > > > > > >
> > > > > > > So we added the R_LARCH_B16, R_LARCH_B21 and
> > > > > > > R_LARCH_RELAX
> > > > > > > relocations
> > > > > > > to enhance grub compatibility.
> > > > > > Wouldn't it be easier to just pass -mno-relax to the
> > > > > > toolchain
> > > > > > when
> > > > > > we
> > > > > > build GRUB? I don't think it makes too much sense to
> > > > > > perform
> > > > > > relaxation
> > > > > > on a boot loader. The boot loader is generally the coldest
> > > > > > code
> > > > > > paths
> > > > > > in a system, so relaxing it won't give any real benefit
> > > > > > (well, if
> > > > > > you
> > > > > > reboot a system 100 times you may finally save one second),
> > > > > > but
> > > > > > increases the maintenance burden.
> > > > > >
> > > > > > Consider a new relaxation pattern is added after we release
> > > > > > GRUB
> > > > > > 2.12.
> > > > > > Then if we simply pass -mno-relax, GRUB 2.12 will continue
> > > > > > to
> > > > > > work.
> > > > > > But
> > > > > > if we try to "support" relaxation this way, every distro
> > > > > > will
> > > > > > have to
> > > > > > patch GRUB 2.12 when the toolchain is updated.
> > > > > >
> > > > > >
> > > > > >
> > > > > > > [1]:
> > > > > > > https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=56576f4a722b7398d35802ecf7d4185c27d6d69b
> > > > > > >
> > > > > > > v1->v2:
> > > > > > > - split patch
> > > > > > > - drop cast code
> > > > > > >
> > > > > > > Xiaotian Wu (5):
> > > > > > > Use the correct format specifier for formatted output
> > > > > > > loongarch: Optimize code using pc variable
> > > > > > > loongarch: Rename function names
> > > > > > > loongarch: Add ELF relocation types documentation and
> > > > > > > comments
> > > > > > > loongarch: Add relaxation support
> > > > > > >
> > > > > > > grub-core/kern/arm64/dl_helper.c | 4 +-
> > > > > > > grub-core/kern/loongarch64/dl.c | 21 +++++++-
> > > > > > > grub-core/kern/loongarch64/dl_helper.c | 72
> > > > > > > ++++++++++++++++++++++++-
> > > > > > > -
> > > > > > > include/grub/elf.h | 3 ++
> > > > > > > include/grub/loongarch64/reloc.h | 6 ++-
> > > > > > > util/grub-mkimagexx.c | 28 ++++++++--
> > > > > > > util/grub-module-verifier.c | 3 ++
> > > > > > > 7 files changed, 124 insertions(+), 13 deletions(-)
> > > > > > >
> > > >
> >
>
--
Best Regards
Xiaotian Wu
- Re: [PATCH v2 0/5] loongarch: add relaxation support, (continued)
Re: [PATCH v2 0/5] loongarch: add relaxation support, Xiaotian Wu, 2023/06/12
- Re: [PATCH v2 0/5] loongarch: add relaxation support, mengqinggang, 2023/06/13
- Re: [PATCH v2 0/5] loongarch: add relaxation support, WANG Xuerui, 2023/06/12
- Re: [PATCH v2 0/5] loongarch: add relaxation support, Xiaotian Wu, 2023/06/13
- Re: [PATCH v2 0/5] loongarch: add relaxation support, mengqinggang, 2023/06/13
- Re: [PATCH v2 0/5] loongarch: add relaxation support, Xiaotian Wu, 2023/06/13
- Re: [PATCH v2 0/5] loongarch: add relaxation support,
Xiaotian Wu <=
- Re: [PATCH v2 0/5] loongarch: add relaxation support, mengqinggang, 2023/06/13
Re: [PATCH v2 0/5] loongarch: add relaxation support, Daniel Kiper, 2023/06/12