NetBSD Problem Report #59989

From www@netbsd.org  Mon Feb  9 10:28:03 2026
Return-Path: <www@netbsd.org>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits)
	 client-signature RSA-PSS (2048 bits))
	(Client CN "mail.netbsd.org", Issuer "R13" (verified OK))
	by mollari.NetBSD.org (Postfix) with ESMTPS id 80F121A923D
	for <gnats-bugs@gnats.NetBSD.org>; Mon,  9 Feb 2026 10:28:03 +0000 (UTC)
Message-Id: <20260209102802.7D4351A923E@mollari.NetBSD.org>
Date: Mon,  9 Feb 2026 10:28:02 +0000 (UTC)
From: georg.kuehberger@bosch.com
Reply-To: georg.kuehberger@bosch.com
To: gnats-bugs@NetBSD.org
Subject: Compiler abort when using -O0 optimization on building
X-Send-Pr-Version: www-1.0
X-From4GNATS: "georg.kuehberger@bosch.com via gnats" <gnats-admin@NetBSD.org>

>Number:         59989
>Category:       bin
>Synopsis:       Compiler abort when using -O0 optimization on building
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    bin-bug-people
>State:          needs-pullups
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Feb 09 10:30:00 +0000 2026
>Closed-Date:    
>Last-Modified:  Thu Feb 12 07:20:01 +0000 2026
>Originator:     Georg Kühberger
>Release:        10.1
>Organization:
Robert Bosch 
>Environment:
Linux 6.14.0-37-generic #37~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Nov 20 10:25:38 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
>Description:
When trying to build NetBSD 10.1 without optimization -O0 (for debugging purpose). An abort is happening in intel_dp.c.
In file included from /home/scripts/netbsd/usr/src/sys/external/bsd/drm2/dist/drm/i915/display/intel_dp.c:30:
/home/scripts/netbsd/usr/src/sys/external/bsd/drm2/dist/drm/i915/display/intel_dp.c: In function 'intel_dp_aux_wait_done':
/home/scripts/netbsd/usr/src/sys/external/bsd/common/include/linux/build_bug.h:36:2: error: negative width in bit-field '__ctassert62'
   36 |  CTASSERT(__builtin_choose_expr(__builtin_constant_p(EXPR), !(EXPR), 1))
      |  ^~~~~~~~
/home/scripts/netbsd/usr/src/sys/external/bsd/drm2/dist/drm/i915/i915_utils.h:435:2: note: in expansion of macro 'BUILD_BUG_ON'
  435 |  BUILD_BUG_ON(!__builtin_constant_p(US)); \
      |  ^~~~~~~~~~~~
/home/scripts/netbsd/usr/src/sys/external/bsd/drm2/dist/drm/i915/i915_utils.h:440:35: note: in expansion of macro 'wait_for_atomic_us'
  440 | #define wait_for_atomic(COND, MS) wait_for_atomic_us((COND), (MS) * 1000)
      |                                   ^~~~~~~~~~~~~~~~~~
/home/scripts/netbsd/usr/src/sys/external/bsd/drm2/dist/drm/i915/display/intel_dp.c:1208:10: note: in expansion of macro 'wait_for_atomic'
 1208 |   done = wait_for_atomic(C, timeout_ms) == 0;
      |          ^~~~~~~~~~~~~~~
This is due to to the definition of timeout_ms as const unsigned int which is not optimized to a constant expression like in default build option.


>How-To-Repeat:
Build netbsd 10.1 with the following command:

 ./build.sh -m amd64 -U -r   -V "CFLAGS=-O0"  -O ../obj.chimaera7.amd64/ -T ../obj.chimaera7.amd64/tooldir -j8 distribution
>Fix:
Patch that fixes the Problem:

From: "Kuehberger Georg (XC-HWP/EEB4)" <Georg.Kuehberger@at.bosch.com>
Date: Wed, 10 Dec 2025 17:03:53 +0100
Subject:[PATCH] Add -O0  support

---
 .../bsd/drm2/dist/drm/i915/display/intel_dp.c         | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/sys/external/bsd/drm2/dist/drm/i915/display/intel_dp.c b/sys/external/bsd/drm2/dist/drm/i915/display/intel_dp.c
index f3a8b7aa1648..72698b08aaf5 100644
--- a/sys/external/bsd/drm2/dist/drm/i915/display/intel_dp.c
+++ b/sys/external/bsd/drm2/dist/drm/i915/display/intel_dp.c
@@ -1184,10 +1184,10 @@ intel_dp_aux_wait_done(struct intel_dp *intel_dp)
 {
 	struct drm_i915_private *i915 = dp_to_i915(intel_dp);
 	i915_reg_t ch_ctl = intel_dp->aux_ch_ctl_reg(intel_dp);
-	const unsigned int timeout_ms = 10;
 	u32 status;
 	bool done;

+#define TIMEOUT_MS 10
 #define C (((status = intel_uncore_read_notrace(&i915->uncore, ch_ctl)) & DP_AUX_CH_CTL_SEND_BUSY) == 0)
 #ifdef __NetBSD__
 	if (!cold) {
@@ -1195,7 +1195,7 @@ intel_dp_aux_wait_done(struct intel_dp *intel_dp)
 		spin_lock(&i915->gmbus_wait_lock);
 		DRM_SPIN_TIMED_WAIT_NOINTR_UNTIL(ret,
 		    &i915->gmbus_wait_queue, &i915->gmbus_wait_lock,
-		    msecs_to_jiffies_timeout(timeout_ms),
+		    msecs_to_jiffies_timeout(TIMEOUT_MS),
 		    C);
 		/*
 		 * ret<0 on error (-ERESTARTSYS, interrupt); ret=0 on
@@ -1205,11 +1205,11 @@ intel_dp_aux_wait_done(struct intel_dp *intel_dp)
 		done = (ret > 0);
 		spin_unlock(&i915->gmbus_wait_lock);
 	} else {
-		done = wait_for_atomic(C, timeout_ms) == 0;
+		done = wait_for_atomic(C, TIMEOUT_MS) == 0;
 	}
 #else
 	done = wait_event_timeout(i915->gmbus_wait_queue, C,
-				  msecs_to_jiffies_timeout(timeout_ms));
+				  msecs_to_jiffies_timeout(TIMEOUT_MS));

 #endif

@@ -1218,8 +1218,9 @@ intel_dp_aux_wait_done(struct intel_dp *intel_dp)

 	if (!done)
 		DRM_ERROR("%s did not complete or timeout within %ums (status 0x%08x)\n",
-			  intel_dp->aux.name, timeout_ms, status);
+			  intel_dp->aux.name, TIMEOUT_MS, status);
 #undef C
+#undef TIMEOUT_MS

 	return status;
 }
-- 
2.43.0

>Release-Note:

>Audit-Trail:

State-Changed-From-To: open->needs-pullups
State-Changed-By: riastradh@NetBSD.org
State-Changed-When: Tue, 10 Feb 2026 04:34:40 +0000
State-Changed-Why:
Thanks, I've applied a simpler change to HEAD -- we try to keep the
diffs from upstream in this code smalller if possible.

FYI, you may find -Og more useful than -O0.


From: "Kuehberger Georg (XC-HWP/EEB4)" <Georg.Kuehberger@at.bosch.com>
To: "gnats-bugs@NetBSD.org" <gnats-bugs@NetBSD.org>
Cc: 
Subject: Re: bin/59989
Date: Tue, 10 Feb 2026 08:55:52 +0000

 --_000_DU4PR10MB96682F4DEFBB4ADE9F97EA78BB62ADU4PR10MB9668EURP_
 Content-Type: text/plain; charset="iso-8859-1"
 Content-Transfer-Encoding: quoted-printable

 Thanks for the hint with -Og!
 Currently I am also working on -g3 since I need some debug info on Macro Le=
 vel.

 Mit freundlichen Gr=FC=DFen / Best regards

 Georg Kuehberger

 Engineering (XC-HWP/EEB4)
 Robert Bosch AG | G=F6llnergasse 15-17 | A-1030 Wien | AUSTRIA | www.bosch.=
 at<https://www.bosch.at>
 Tel. +43 1 79722-4204 | Mobil +43 676 5688068 | Telefax +43 1 79722-5107 | =
 Georg.Kuehberger@at.bosch.com<mailto:Georg.Kuehberger@at.bosch.com>

 Sitz: Robert Bosch Aktiengesellschaft, A-1030 Wien, G=F6llnergasse 15-17
 Registergericht: FN 55722 w HG-Wien
 Aufsichtsratsvorsitzender: Dr. Thomas Pauer; Vorstandsvorsitzender: Helmut =
 Weinwurm, Vorstandsmitglied: Wilhelm Pruckner
 ARA-Lizenz-Nr.: 1831 - UID-Nr.: ATU14719303 - Steuernummer 140/4988


 --_000_DU4PR10MB96682F4DEFBB4ADE9F97EA78BB62ADU4PR10MB9668EURP_
 Content-Type: text/html; charset="iso-8859-1"
 Content-Transfer-Encoding: quoted-printable

 <html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
 osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
 xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
 //www.w3.org/TR/REC-html40">
 <head>
 <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
 1">
 <meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
 <style><!--
 /* Font Definitions */
 @font-face
 	{font-family:"Cambria Math";
 	panose-1:2 4 5 3 5 4 6 3 2 4;}
 @font-face
 	{font-family:Aptos;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
 	{margin:0cm;
 	font-size:12.0pt;
 	font-family:"Aptos",sans-serif;
 	mso-ligatures:standardcontextual;
 	mso-fareast-language:EN-US;}
 span.E-MailFormatvorlage17
 	{mso-style-type:personal-compose;
 	font-family:"Aptos",sans-serif;
 	color:windowtext;}
 .MsoChpDefault
 	{mso-style-type:export-only;
 	mso-fareast-language:EN-US;}
 @page WordSection1
 	{size:612.0pt 792.0pt;
 	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
 div.WordSection1
 	{page:WordSection1;}
 --></style><!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
 </xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
 <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
 </head>
 <body lang=3D"DE-AT" link=3D"#467886" vlink=3D"#96607D" style=3D"word-wrap:=
 break-word">
 <div class=3D"WordSection1">
 <p class=3D"MsoNormal"><span lang=3D"EN-US">Thanks for the hint with -Og!<o=
 :p></o:p></span></p>
 <p class=3D"MsoNormal"><span lang=3D"EN-US">Currently I am also working on =
 -g3 since I need some debug info on Macro Level.<o:p></o:p></span></p>
 <p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
 <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
 ial&quot;,sans-serif;color:black;mso-ligatures:none;mso-fareast-language:DE=
 -AT">Mit freundlichen Gr=FC=DFen / Best regards<br>
 <br>
 Georg Kuehberger <br>
 <br>
 Engineering (XC-HWP/EEB4)<br>
 Robert Bosch AG | G=F6llnergasse 15-17 | A-1030 Wien | <span style=3D"text-=
 transform:uppercase">
 AUSTRIA | </span><a href=3D"https://www.bosch.at"><span style=3D"color:blue=
 ">www.bosch.at</span></a>
 <br>
 Tel. +43 1 79722-4204 | Mobil +43 676 5688068 | Telefax +43 1 79722-5107 | =
 <a href=3D"mailto:Georg.Kuehberger@at.bosch.com">
 <span style=3D"color:blue">Georg.Kuehberger@at.bosch.com</span></a> </span>=
 <span style=3D"font-size:8.0pt;font-family:&quot;Arial&quot;,sans-serif;col=
 or:black;mso-ligatures:none;mso-fareast-language:DE-AT"><br>
 <br>
 Sitz: Robert Bosch Aktiengesellschaft, A-1030 Wien, G=F6llnergasse 15-17<br=
 >
 Registergericht: FN 55722 w HG-Wien<br>
 Aufsichtsratsvorsitzender: Dr. Thomas Pauer; Vorstandsvorsitzender: Helmut =
 Weinwurm, Vorstandsmitglied: Wilhelm Pruckner
 <br>
 ARA-Lizenz-Nr.: 1831 - UID-Nr.: ATU14719303 - Steuernummer 140/4988 </span>=
 <span style=3D"mso-ligatures:none;mso-fareast-language:DE-AT"><o:p></o:p></=
 span></p>
 <p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
 </div>
 </body>
 </html>

 --_000_DU4PR10MB96682F4DEFBB4ADE9F97EA78BB62ADU4PR10MB9668EURP_--

From: "Taylor R Campbell" <riastradh@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/59989 CVS commit: src/sys/external/bsd/drm2/dist/drm/i915/display
Date: Tue, 10 Feb 2026 03:48:27 +0000

 Module Name:	src
 Committed By:	riastradh
 Date:		Tue Feb 10 03:48:27 UTC 2026

 Modified Files:
 	src/sys/external/bsd/drm2/dist/drm/i915/display: intel_dp.c

 Log Message:
 i915: Make this build with -O0.

 Based on a patch from Georg Kühberger.

 PR bin/59989: Compiler abort when using -O0 optimization on building


 To generate a diff of this commit:
 cvs rdiff -u -r1.7 -r1.8 \
     src/sys/external/bsd/drm2/dist/drm/i915/display/intel_dp.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.47 2022/09/11 19:34:41 kim Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2026 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.