[PATCH] RISC-V: Pass --no-relax to linker if -mno-relax is present.

22 views
Skip to first unread message

Kito Cheng

unread,
Apr 18, 2018, 6:10:36 AM4/18/18
to GCC Patches, pat...@groups.riscv.org, Andrew Waterman, Palmer Dabbelt, Jim Wilson
Hi all:

Palmer has been added -mno-relax option before, I propose it should
also pass to linker during link phase.

ChangeLog:
2018-04-18 Kito Cheng <kito....@gmail.com>

* config/riscv/elf.h (LINK_SPEC): Pass --no-relax if
-mno-relax is present.
* config/riscv/linux.h (LINK_SPEC): Ditto.
0001-RISC-V-Pass-no-relax-to-linker-if-mno-relax-is-prese.patch

Jim Wilson

unread,
Apr 18, 2018, 8:51:41 PM4/18/18
to Kito Cheng, GCC Patches, RISC-V Patches, Andrew Waterman, Palmer Dabbelt
On Wed, Apr 18, 2018 at 3:10 AM, Kito Cheng <kito....@gmail.com> wrote:
> * config/riscv/elf.h (LINK_SPEC): Pass --no-relax if
> -mno-relax is present.
> * config/riscv/linux.h (LINK_SPEC): Ditto.

It is easy enough to use -Wl,--no-relax and there are other linker
options that require -Wl so I don't think this is very useful.

However, I think it could be useful if it turned off relaxation in
both the assembler and the linker, since currently there is no easy
way to do that. For the assembler, there is no option, but we can
emit .option norelax at the asm file start. It needs to be a real
option in order to make this work. Also, options should have a doc
entry, which is more important when it is a real option.

Jim

Kito Cheng

unread,
Apr 18, 2018, 10:00:17 PM4/18/18
to pat...@groups.riscv.org, GCC Patches, Andrew Waterman, Palmer Dabbelt
Hi Jim:

Turned off both the assembler and the linker sounds good idea to me,
but it's not support on current assembler now, and gcc might release in
next few month, so I afraid we'll have a short time gap that is
-mno-relax is broken due to assembler not support that command
line option in the latest release yet?
> --
> You received this message because you are subscribed to the Google Groups "RISC-V Patches" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to patches+u...@groups.riscv.org.
> To post to this group, send email to pat...@groups.riscv.org.
> Visit this group at https://groups.google.com/a/groups.riscv.org/group/patches/.
> To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/patches/CAFyWVaaz7Wh3GhYEdf%2BbEMfQFb4bHpVJ3hxYM72C-ce0o4ji3w%40mail.gmail.com.
> For more options, visit https://groups.google.com/a/groups.riscv.org/d/optout.

Jim Wilson

unread,
Apr 20, 2018, 9:04:33 PM4/20/18
to Kito Cheng, pat...@groups.riscv.org, GCC Patches, Andrew Waterman, Palmer Dabbelt
On 04/18/2018 06:59 PM, Kito Cheng wrote:
> Hi Jim:
>
> Turned off both the assembler and the linker sounds good idea to me,
> but it's not support on current assembler now, and gcc might release in
> next few month, so I afraid we'll have a short time gap that is
> -mno-relax is broken due to assembler not support that command
> line option in the latest release yet?

Sorry, I didn't look at this closely enough. We already have a
-mrelax/-mno-relax added by Palmer. You even mentioned that. So all
your patch is doing is adding support to pass it to the linker, which is OK.

You are right that we can't release a compiler that uses the new
assembler option until after there is an assembler release, so we can't
modify gcc to use it until after the gcc-8 release branch is made. But
we don't need it for now, as we have Palmer's patch. I still think it
was a good idea to add the assembler option though, to make it a little
more user friendly.

Anyways, this patch is OK. I have committed it.

Jim
Reply all
Reply to author
Forward
0 new messages