Re: [RISCV] RISC-V GNU Toolchain Biweekly Sync-up call (Jan 27, 2022)

Matthias Klose
2022-01-28T12:31:41Z

On 1/28/22 11:06, David Abdurachmanov wrote:
> On Thu, Jan 27, 2022 at 6:21 PM Matthias Klose <doko@ubuntu.com> wrote:
>
>> On 1/26/22 14:04, jiawei@iscas.ac.cn wrote:
>>> Hi all,
>>>
>>> There is an agenda for tomorrow's meeting. If you have topics to
>>> discuss or share, please let me know and I can add them to the agenda.
>>>
>>> Agenda:
>>>
>>>
>>>
>>>
>>>
>>> - Bump GCC default ISA spec and got bug report[1] for that.
>>
>> Tried to join the meeting, but it ended early apparently.
>>
>> Using in Debian and Ubuntu binutils 2.38, I see then with GCC 11.2
>> warnings for
>> every link:
>>
>> /usr/bin/ld: warning: /usr/lib/gcc/riscv64-linux-gnu/10/crtn.o:
>> mis-matched ISA
>> version 2.0 for 'i' extension, the output version is 2.1
>> /usr/bin/ld: warning: /usr/lib/gcc/riscv64-linux-gnu/10/crtn.o:
>> mis-matched ISA
>> version 2.0 for 'a' extension, the output version is 2.1
>> /usr/bin/ld: warning: /usr/lib/gcc/riscv64-linux-gnu/10/crtn.o:
>> mis-matched ISA
>> version 2.0 for 'f' extension, the output version is 2.2
>> /usr/bin/ld: warning: /usr/lib/gcc/riscv64-linux-gnu/10/crtn.o:
>> mis-matched ISA
>> version 2.0 for 'd' extension, the output version is 2.2
>>
>> Are there any plans to backport the support for ISA 2.1/2.2 to GCC 11? Or
>> do we
>> need to configure binutils to use 2.0 until the compiler is changed to GCC
>> 12?
>>
>
> There are a few packages that will be broken (because they set -march
> assuming the old standard). Things like kernel (patch proposed), opensbi
> (patch proposed), u-boot, grub and similar. Kudos to Aurelien Jarno for
> sending these patches already.

seems to be a bit more ...
we are seeing a lot of build failures building parts of the KDE stack.
https://launchpadlibrarian.net/582482377/buildlog_ubuntu-jammy-riscv64.ktexteditor_5.90.0-0ubuntu2_BUILDING.txt.gz

while you see only warnings, the linker errors out.

Also GCC 11 fails to build with binutils 2.38:

libtool: link: `sstream-inst.lo' is not a valid libtool object
make[8]: *** [Makefile:633: libc++11convenience.la] Error 1

Is there a plan, or procedure to follow doing this ISA change for a set of
packages, e.g. building packages in a particular order?

> The warnings can be ignored here IIRC. The patch was proposed back in
> December:
> [PATCH 1/2] RISC-V: Don't report mismatch warnings when versions are larger
> than 1.0.
> https://sourceware.org/pipermail/binutils/2021-December/119060.html
>
> But it wasn't committed yet. The patch was part of the series to change
> default ISA to 20191213.
>
> IIUC all combinations:
> - GCC 12 + binutils 2.38
> - GCC 11 + binutils 2.37
> - GCC 12 + binutils 2.37
> are valid, but you might want to use --with-isa-spec=2.2 for now until some
> of the packages are patched.

so this leaves "GCC 11 + binutils 2.38" as invalid. binutils 2.38 will be
released before GCC 12, that is what people will be using. IMO the binutils 2.38
release should default to the old ISA.

Matthias