diff mbox series

[v3] openssh: Add a work around for ICE on mips/mips64

Message ID 20240215212856.47492-1-richard.purdie@linuxfoundation.org
State Accepted, archived
Commit 5b290566519a87c563945a033cb49863317ad63d
Headers show
Series [v3] openssh: Add a work around for ICE on mips/mips64 | expand

Commit Message

Richard Purdie Feb. 15, 2024, 9:28 p.m. UTC
Unfortunately the new openssh version has an ICE on mips. This looks similar to:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104817
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104820

Given how long these have been open, workaround the issue by disabling the compiler
hardening options on mips.

It is likely better to do this than have the open CVEs for everyone
as we can't upgrade.

An example:

| during RTL pass: zero_call_used_regs
| clientloop.c: In function 'client_loop':
| clientloop.c:1699:1: internal compiler error: in int_mode_for_mode, at stor-layout.cc:407
|  1699 | }
|       | ^
| 0x14d0acc internal_error(char const*, ...)
| 	???:0
| 0x5cf765 fancy_abort(char const*, int, char const*)
| 	???:0
| 0x826f1f emit_move_insn_1(rtx_def*, rtx_def*)
| 	???:0
| 0x8270c5 emit_move_insn(rtx_def*, rtx_def*)
| 	???:0
| 0xb7b994 default_zero_call_used_regs(HARD_REG_SET)
| 	???:0
| Please submit a full bug report, with preprocessed source (by using -freport-bug).
| Please include the complete backtrace with any bug report.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 meta/recipes-connectivity/openssh/openssh_9.6p1.bb | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Khem Raj Feb. 16, 2024, 1:11 a.m. UTC | #1
On Thu, Feb 15, 2024 at 1:29 PM Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
>
> Unfortunately the new openssh version has an ICE on mips. This looks similar to:
>
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104817
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104820
>
> Given how long these have been open, workaround the issue by disabling the compiler
> hardening options on mips.
>
> It is likely better to do this than have the open CVEs for everyone
> as we can't upgrade.
>
> An example:
>
> | during RTL pass: zero_call_used_regs
> | clientloop.c: In function 'client_loop':
> | clientloop.c:1699:1: internal compiler error: in int_mode_for_mode, at stor-layout.cc:407
> |  1699 | }
> |       | ^
> | 0x14d0acc internal_error(char const*, ...)
> |       ???:0
> | 0x5cf765 fancy_abort(char const*, int, char const*)
> |       ???:0
> | 0x826f1f emit_move_insn_1(rtx_def*, rtx_def*)
> |       ???:0
> | 0x8270c5 emit_move_insn(rtx_def*, rtx_def*)
> |       ???:0
> | 0xb7b994 default_zero_call_used_regs(HARD_REG_SET)
> |       ???:0
> | Please submit a full bug report, with preprocessed source (by using -freport-bug).
> | Please include the complete backtrace with any bug report.
>
> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> ---
>  meta/recipes-connectivity/openssh/openssh_9.6p1.bb | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/meta/recipes-connectivity/openssh/openssh_9.6p1.bb b/meta/recipes-connectivity/openssh/openssh_9.6p1.bb
> index 6366cefdf96..1fd36a266fd 100644
> --- a/meta/recipes-connectivity/openssh/openssh_9.6p1.bb
> +++ b/meta/recipes-connectivity/openssh/openssh_9.6p1.bb
> @@ -81,6 +81,10 @@ EXTRA_OECONF = "'LOGIN_PROGRAM=${base_bindir}/login' \
>  # musl doesn't implement wtmp/utmp and logwtmp
>  EXTRA_OECONF:append:libc-musl = " --disable-wtmp --disable-lastlog"
>
> +# Work around ICE on mips/mips64 starting in 9.6p1
> +EXTRA_OECONF:append:mips = " --without-hardening"
> +EXTRA_OECONF:append:mips64 = " --without-hardening"

Perhaps just use mipsarch override since I imagine it will impact all
kinds of mips.

> +
>  # Since we do not depend on libbsd, we do not want configure to use it
>  # just because it finds libutil.h.  But, specifying --disable-libutil
>  # causes compile errors, so...
> --
> 2.40.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#195704): https://lists.openembedded.org/g/openembedded-core/message/195704
> Mute This Topic: https://lists.openembedded.org/mt/104381904/1997914
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Tim Orling Feb. 16, 2024, 2:58 a.m. UTC | #2
I’m

On Thu, Feb 15, 2024 at 5:12 PM Khem Raj <raj.khem@gmail.com> wrote:

> On Thu, Feb 15, 2024 at 1:29 PM Richard Purdie
> <richard.purdie@linuxfoundation.org> wrote:
> >
> > Unfortunately the new openssh version has an ICE on mips. This looks
> similar to:
> >
> > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104817
> > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104820
> >
> > Given how long these have been open, workaround the issue by disabling
> the compiler
> > hardening options on mips.
> >
> > It is likely better to do this than have the open CVEs for everyone
> > as we can't upgrade.
> >
> > An example:
> >
> > | during RTL pass: zero_call_used_regs
> > | clientloop.c: In function 'client_loop':
> > | clientloop.c:1699:1: internal compiler error: in int_mode_for_mode, at
> stor-layout.cc:407
> > |  1699 | }
> > |       | ^
> > | 0x14d0acc internal_error(char const*, ...)
> > |       ???:0
> > | 0x5cf765 fancy_abort(char const*, int, char const*)
> > |       ???:0
> > | 0x826f1f emit_move_insn_1(rtx_def*, rtx_def*)
> > |       ???:0
> > | 0x8270c5 emit_move_insn(rtx_def*, rtx_def*)
> > |       ???:0
> > | 0xb7b994 default_zero_call_used_regs(HARD_REG_SET)
> > |       ???:0
> > | Please submit a full bug report, with preprocessed source (by using
> -freport-bug).
> > | Please include the complete backtrace with any bug report.
> >
> > Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> > ---
> >  meta/recipes-connectivity/openssh/openssh_9.6p1.bb | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/meta/recipes-connectivity/openssh/openssh_9.6p1.bb
> b/meta/recipes-connectivity/openssh/openssh_9.6p1.bb
> > index 6366cefdf96..1fd36a266fd 100644
> > --- a/meta/recipes-connectivity/openssh/openssh_9.6p1.bb
> > +++ b/meta/recipes-connectivity/openssh/openssh_9.6p1.bb
> > @@ -81,6 +81,10 @@ EXTRA_OECONF = "'LOGIN_PROGRAM=${base_bindir}/login' \
> >  # musl doesn't implement wtmp/utmp and logwtmp
> >  EXTRA_OECONF:append:libc-musl = " --disable-wtmp --disable-lastlog"
> >
> > +# Work around ICE on mips/mips64 starting in 9.6p1
> > +EXTRA_OECONF:append:mips = " --without-hardening"
> > +EXTRA_OECONF:append:mips64 = " --without-hardening"
>
> Perhaps just use mipsarch override since I imagine it will impact all
> kinds of mips.
>

Just a data point, both qemumips and qemumips64 are based on the ~2006-ish
“Malta” machine. I don’t know yet if that set of tuning is a factor (vs
“Boston” which is more like 2015). I’ll still follow through with a bug
report on gcc bugzilla.


> > +
> >  # Since we do not depend on libbsd, we do not want configure to use it
> >  # just because it finds libutil.h.  But, specifying --disable-libutil
> >  # causes compile errors, so...
> > --
> > 2.40.1
> >
> >
> >
> >
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#195733):
> https://lists.openembedded.org/g/openembedded-core/message/195733
> Mute This Topic: https://lists.openembedded.org/mt/104381904/924729
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> ticotimo@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
diff mbox series

Patch

diff --git a/meta/recipes-connectivity/openssh/openssh_9.6p1.bb b/meta/recipes-connectivity/openssh/openssh_9.6p1.bb
index 6366cefdf96..1fd36a266fd 100644
--- a/meta/recipes-connectivity/openssh/openssh_9.6p1.bb
+++ b/meta/recipes-connectivity/openssh/openssh_9.6p1.bb
@@ -81,6 +81,10 @@  EXTRA_OECONF = "'LOGIN_PROGRAM=${base_bindir}/login' \
 # musl doesn't implement wtmp/utmp and logwtmp
 EXTRA_OECONF:append:libc-musl = " --disable-wtmp --disable-lastlog"
 
+# Work around ICE on mips/mips64 starting in 9.6p1
+EXTRA_OECONF:append:mips = " --without-hardening"
+EXTRA_OECONF:append:mips64 = " --without-hardening"
+
 # Since we do not depend on libbsd, we do not want configure to use it
 # just because it finds libutil.h.  But, specifying --disable-libutil
 # causes compile errors, so...