NetBSD Problem Report #55265
From tsutsui@ceres.dti.ne.jp Thu May 14 22:05:44 2020
Return-Path: <tsutsui@ceres.dti.ne.jp>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
by mollari.NetBSD.org (Postfix) with ESMTPS id E282A1A9213
for <gnats-bugs@gnats.NetBSD.org>; Thu, 14 May 2020 22:05:44 +0000 (UTC)
Message-Id: <202005142205.04EM5ZlW002639@ceres.dti.ne.jp>
Date: Fri, 15 May 2020 07:05:35 +0900 (JST)
From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
Reply-To: tsutsui@ceres.dti.ne.jp
To: gnats-bugs@NetBSD.org
Cc: tsutsui@ceres.dti.ne.jp
Subject: NetBSD/sh3el 9.0 gcc 7.4.0 ICE by -fdce
X-Send-Pr-Version: 3.95
>Number: 55265
>Category: toolchain
>Synopsis: NetBSD/sh3el 9.0 gcc 7.4.0 ICE by -fdce
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: toolchain-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu May 14 22:10:00 +0000 2020
>Last-Modified: Sun Jun 21 17:55:00 +0000 2020
>Originator: Izumi Tsutsui
>Release: NetBSD 9.0
>Organization:
>Environment:
System: NetBSD lantank 9.0 NetBSD 9.0 (LANTANK) #1: Sun May 3 17:58:04 JST 2020 tsutsui@mirage:/s/netbsd-9/src/sys/arch/landisk/compile/LANTANK landisk
Architecture: sh3el
Machine: landisk
>Description:
During pkgsrc/x11/mlterm build on NetBSD/landisk 9.0, gcc 7.4.0 gets ICE:
---
../../libtool --mode=compile gcc -I../../baselib/include -I../../encodefilter/include -I/usr/pkg/include/fribidi -Os -freorder-blocks -D_FORTIFY_SOURCE=2 -I/usr/pkg/include -I/usr/X11R7/include -I/usr/include -I/usr/X11R7/include/freetype2 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -DPNG_NO_ASSEMBLER_CODE -I/usr/pkg/include -I/usr/X11R7/include -I/usr/include -I/usr/X11R7/include/freetype2 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include -DLIBDIR=\"/usr/pkg/lib\" -c -I../../baselib/include -I../../encodefilter/include -I/usr/pkg/include/fribidi -Os -freorder-blocks -D_FORTIFY_SOURCE=2 -I/usr/pkg/include -I/usr/X11R7/include -I/usr/include -I/usr/X11R7/include/freetype2 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -DPNG_NO_ASSEMBLER_CODE -I/usr/pkg/include -I/usr/X11R7/include -I/usr/include -I/usr/X11R7/inc!
lude/freetype2 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include -DLIBDIR=\"/usr/pkg/lib\" vt_line_bidi.c
libtool: compile: gcc -I../../baselib/include -I../../encodefilter/include -I/usr/obj.sh3el/pkgsrc/x11/mlterm/work.sh3el/.buildlink/include/fribidi -Os -freorder-blocks -D_FORTIFY_SOURCE=2 -I/usr/obj.sh3el/pkgsrc/x11/mlterm/work.sh3el/.buildlink/include -I/usr/obj.sh3el/pkgsrc/x11/mlterm/work.sh3el/.x11-buildlink/include -I/usr/obj.sh3el/pkgsrc/x11/mlterm/work.sh3el/.x11-buildlink/include/freetype2 -I/usr/obj.sh3el/pkgsrc/x11/mlterm/work.sh3el/.buildlink/include/glib-2.0 -I/usr/obj.sh3el/pkgsrc/x11/mlterm/work.sh3el/.buildlink/include/gio-unix-2.0 -I/usr/obj.sh3el/pkgsrc/x11/mlterm/work.sh3el/.buildlink/lib/glib-2.0/include -DPNG_NO_ASSEMBLER_CODE -DLIBDIR=\"/usr/pkg/lib\" -c -Os -freorder-blocks -D_FORTIFY_SOURCE=2 -DPNG_NO_ASSEMBLER_CODE -DLIBDIR=\"/usr/pkg/lib\" vt_line_bidi.c -fPIC -DPIC -o .libs/vt_line_bidi.o
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
vt_line_bidi.c: In function 'vt_line_bidi_render':
vt_line_bidi.c:144:1: internal compiler error: Abort trap
}
^
no stack trace because unwind library not available
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://www.NetBSD.org/support/send-pr.html> for instructions.
*** Error code 1
Stop.
---
>How-To-Repeat:
This ICE also happens on cross compiler on NetBSD/i386 9.0.
A sample code to reproduce is as the following:
---
struct vt_bidi_state {
char rtl_state;
};
typedef struct vt_bidi_state *vt_bidi_state_t;
typedef struct ctl_info {
vt_bidi_state_t bidi;
} ctl_info_t;
typedef struct vt_line {
ctl_info_t ctl_info;
} vt_line_t;
#define BASE_IS_RTL(state) ((((state)->rtl_state) >> 1) & 0x1)
extern int f1(void), f2(void), f3(void), f4(void);
int vt_line_bidi_render(vt_line_t *line)
{
int ret;
if (f1()) {
int base_was_rtl;
base_was_rtl = BASE_IS_RTL(line->ctl_info.bidi);
if ((ret = f2()) <= 0) {
if (base_was_rtl) {
f3();
}
return ret;
}
if (base_was_rtl != BASE_IS_RTL(line->ctl_info.bidi)) {
return 1;
}
}
if (ret == 2) {
f4();
}
return 1;
}
---
On NetBSD/i386 9.0 with 9.0 toolchain:
---
% /s/netbsd-9/src/obj.landisk/tooldir.NetBSD-9.0-i386/bin/shle--netbsdelf-gcc -O -c ~/vt_line_bidi.c
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
/home/tsutsui/vt_line_bidi.c: In function 'vt_line_bidi_render':
/home/tsutsui/vt_line_bidi.c:40:1: internal compiler error: Abort trap
}
^
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://www.NetBSD.org/Misc/send-pr.html> for instructions.
% /s/netbsd-9/src/obj.landisk/tooldir.NetBSD-9.0-i386/bin/shle--netbsdelf-gcc -O -fno-dce -c ~/vt_line_bidi.c
%
---
Also available on github gist:
https://gist.github.com/tsutsui/914960ca1739f2d696445024c13c9543
>Fix:
No idea.
"-fno-dce" works around on pkgsrc mlterm build as above.
---
Izumi Tsutsui
>Audit-Trail:
From: "Izumi Tsutsui" <tsutsui@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/55265 CVS commit: pkgsrc/x11/mlterm
Date: Sun, 21 Jun 2020 17:53:01 +0000
Module Name: pkgsrc
Committed By: tsutsui
Date: Sun Jun 21 17:53:01 UTC 2020
Modified Files:
pkgsrc/x11/mlterm: Makefile distinfo options.mk
pkgsrc/x11/mlterm/patches: patch-etc_font-fb
Added Files:
pkgsrc/x11/mlterm: hacks.mk
pkgsrc/x11/mlterm/patches: patch-uitoolkit_xlib_ui__imagelib.c
Log Message:
mlterm: pull an upstream patch for 3.9.0.
Also put misc pkgsrc tweaks:
- Disable SPECIAL_PERMS for mlterm. It was required for utmp support
only on ancient systems that have none of pututxline(3), setutent(3),
or addToUtmp(3) but have to use logwtmp(3) or open system's _PATH_UTMP
or _PATH_WTMP file directly to update utmp entries, but no easy way
to statically identify them per OS and version basis.
- Add hacks.mk to avoid gcc SIGSEGV on NetBSD/sh3 9.0 (PR/55265)
- Appease several pkglint warnings/errors.
Bump PKGREVISION.
To generate a diff of this commit:
cvs rdiff -u -r1.160 -r1.161 pkgsrc/x11/mlterm/Makefile
cvs rdiff -u -r1.84 -r1.85 pkgsrc/x11/mlterm/distinfo
cvs rdiff -u -r0 -r1.1 pkgsrc/x11/mlterm/hacks.mk
cvs rdiff -u -r1.19 -r1.20 pkgsrc/x11/mlterm/options.mk
cvs rdiff -u -r1.9 -r1.10 pkgsrc/x11/mlterm/patches/patch-etc_font-fb
cvs rdiff -u -r0 -r1.1 \
pkgsrc/x11/mlterm/patches/patch-uitoolkit_xlib_ui__imagelib.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
(Contact us)
$NetBSD: query-full-pr,v 1.46 2020/01/03 16:35:01 leot Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2020
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.