Bug 1030253

Summary: icu fails on a test with GCC 7 on i586
Product: [openSUSE] openSUSE Tumbleweed Reporter: Martin Liška <martin.liska>
Component: BasesystemAssignee: Richard Biener <rguenther>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: dimstar, ismail, jengelh
Version: Current   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Bug Depends on:    
Bug Blocks: 1030236    

Description Martin Liška 2017-03-21 09:04:20 UTC
https://build.opensuse.org/package/live_build_log/openSUSE:Factory:Staging:Gcc7/icu/standard/i586

Can be tested in openSUSE:Factory:Staging:Gcc7 project.
Comment 1 Jan Engelhardt 2017-04-24 15:49:57 UTC
[  331s] !!    ERROR: ureldatefmt_format() for locale fr, decPlaces -1, width 0, capContext 257, offset -0.70, unit 4;
[  331s]       expected il y a 0,7 jour
[  331s]       get      il y a 0,7 jours

Ok so that looks like someone at ICU forgot to update the testcase, because the plural is indeed the right form.
Comment 2 Martin Liška 2017-04-25 07:17:24 UTC
I'm glad that it's so simply fixable.
Comment 3 Jan Engelhardt 2017-04-25 12:19:37 UTC
Then again, why would this only show up with gcc7…⸘
Comment 4 Ismail Dönmez 2017-04-25 12:22:08 UTC
(In reply to Jan Engelhardt from comment #3)
> Then again, why would this only show up with gcc7…⸘

And why i586 only?!
Comment 5 Martin Liška 2017-04-25 12:25:27 UTC
Great question, looking at the stuff which was changes in GCC 7:
https://gcc.gnu.org/gcc-7/changes.html

Maybe it can be related to -fprintf-return-value.
Comment 6 Ismail Dönmez 2017-04-25 13:36:27 UTC
(In reply to Martin Liška from comment #5)
> Great question, looking at the stuff which was changes in GCC 7:
> https://gcc.gnu.org/gcc-7/changes.html
> 
> Maybe it can be related to -fprintf-return-value.

Then, can you try rebuilding icu with -fno-printf-return-value ?
Comment 7 Martin Liška 2017-05-11 14:17:38 UTC
(In reply to Ismail Donmez from comment #6)
> (In reply to Martin Liška from comment #5)
> > Great question, looking at the stuff which was changes in GCC 7:
> > https://gcc.gnu.org/gcc-7/changes.html
> > 
> > Maybe it can be related to -fprintf-return-value.
> 
> Then, can you try rebuilding icu with -fno-printf-return-value ?

Hm, the test looks fine, because 'jours' is plural and it should not be used for values <= 1. However -fprintf-return-value is not responsible for that.

Adding -m32 to x86_64 target also triggers the issue.
If I could build the package on my host (w/o OBS), then I can bisect that.

I see:
make[1]: Entering directory '/home/marxin/Programming/osc/openSUSE:Factory:Staging:C/icu/icu/source/test'
Makefile:130: *** target pattern contains no '%'.  Stop.
make[1]: Leaving directory '/home/marxin/Programming/osc/openSUSE:Factory:Staging:C/icu/icu/source/test'
make: *** [Makefile:143: all-recursive] Error 2

Can you please help me?
Comment 8 Martin Liška 2017-05-11 14:31:29 UTC
Ok, can be reproduced on trunk. I should be able to bisect that!
Comment 9 Martin Liška 2017-05-12 09:08:24 UTC
Ok, so it can be reproduced with GCC 6.3.1 and -m32 -O2 on x86_64-linux-gnu. I guess it will need a maintainer to debug that issue.
Comment 10 Martin Liška 2017-05-12 13:46:09 UTC
(In reply to Martin Liška from comment #9)
> Ok, so it can be reproduced with GCC 6.3.1 and -m32 -O2 on x86_64-linux-gnu.
> I guess it will need a maintainer to debug that issue.

Sorry for noise, it's really in between GCC 6 and 7 the regression.
Comment 11 Dominique Leuenberger 2017-05-16 14:21:27 UTC
(In reply to Martin Liška from comment #10)
> (In reply to Martin Liška from comment #9)
> > Ok, so it can be reproduced with GCC 6.3.1 and -m32 -O2 on x86_64-linux-gnu.
> > I guess it will need a maintainer to debug that issue.
> 
> Sorry for noise, it's really in between GCC 6 and 7 the regression.

Then we should asisgn the bug to the gcc maintainer - not the icu maintainer

=> rguenther
Comment 12 Richard Biener 2017-05-17 11:32:37 UTC
Not a gcc bug but icu running into excess precision issues of x87 math.

SR#495573

please somebody accept and forward.
Comment 13 Jan Engelhardt 2017-05-17 11:42:09 UTC
Should using a cast to (double) work too? http://stackoverflow.com/a/503523
Then I'd prefer that over volatile, I think.
Comment 14 Richard Biener 2017-05-17 11:51:25 UTC
(In reply to Jan Engelhardt from comment #13)
> Should using a cast to (double) work too? http://stackoverflow.com/a/503523
> Then I'd prefer that over volatile, I think.

I don't think this will work.  The variables and values are already double,
the issue is only in the FPU keeping excess precision around.
Comment 15 Richard Biener 2017-06-07 12:53:48 UTC
Fixed.
Comment 17 Maintenance Automation 2023-09-08 16:30:02 UTC
SUSE-SU-2023:3563-1: An update that solves two vulnerabilities, contains two features and has 16 security fixes can now be installed.

Category: security (moderate)
Bug References: 1030253, 1095425, 1103893, 1112183, 1146907, 1158955, 1159131, 1161007, 1162882, 1166844, 1167603, 1182252, 1182645, 1192935, 1193951, 354372, 437293, 824262
CVE References: CVE-2020-10531, CVE-2020-21913
Jira References: PED-4917, SLE-11118
Sources used:
SUSE Manager Retail Branch Server 4.2 (src): icu73_2-73.2-150000.1.3.1
SUSE Manager Server 4.2 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise Micro 5.1 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise Micro 5.2 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise Micro for Rancher 5.2 (src): icu73_2-73.2-150000.1.3.1
openSUSE Leap 15.4 (src): icu73_2-73.2-150000.1.3.1
openSUSE Leap 15.5 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise Micro for Rancher 5.3 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise Micro 5.3 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise Micro for Rancher 5.4 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise Micro 5.4 (src): icu73_2-73.2-150000.1.3.1
Basesystem Module 15-SP4 (src): icu73_2-73.2-150000.1.3.1
Basesystem Module 15-SP5 (src): icu73_2-73.2-150000.1.3.1
SUSE Manager Proxy 4.2 (src): icu73_2-73.2-150000.1.3.1

NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
Comment 18 Maintenance Automation 2023-10-23 20:30:02 UTC
SUSE-SU-2023:3563-2: An update that solves two vulnerabilities, contains two features and has 16 security fixes can now be installed.

Category: security (moderate)
Bug References: 1030253, 1095425, 1103893, 1112183, 1146907, 1158955, 1159131, 1161007, 1162882, 1166844, 1167603, 1182252, 1182645, 1192935, 1193951, 354372, 437293, 824262
CVE References: CVE-2020-10531, CVE-2020-21913
Jira References: PED-4917, SLE-11118
Sources used:
SUSE Linux Enterprise High Performance Computing 15 SP1 LTSS 15-SP1 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise High Performance Computing 15 SP2 LTSS 15-SP2 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise High Performance Computing ESPOS 15 SP3 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise High Performance Computing LTSS 15 SP3 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise Server 15 SP1 LTSS 15-SP1 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise Server 15 SP2 LTSS 15-SP2 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise Server 15 SP3 LTSS 15-SP3 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise Server for SAP Applications 15 SP1 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise Server for SAP Applications 15 SP2 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise Server for SAP Applications 15 SP3 (src): icu73_2-73.2-150000.1.3.1
SUSE Enterprise Storage 7.1 (src): icu73_2-73.2-150000.1.3.1
SUSE Enterprise Storage 7 (src): icu73_2-73.2-150000.1.3.1
SUSE CaaS Platform 4.0 (src): icu73_2-73.2-150000.1.3.1

NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
Comment 19 Maintenance Automation 2023-10-30 20:30:03 UTC
SUSE-SU-2023:3563-3: An update that solves two vulnerabilities, contains two features and has 16 security fixes can now be installed.

Category: security (moderate)
Bug References: 1030253, 1095425, 1103893, 1112183, 1146907, 1158955, 1159131, 1161007, 1162882, 1166844, 1167603, 1182252, 1182645, 1192935, 1193951, 354372, 437293, 824262
CVE References: CVE-2020-10531, CVE-2020-21913
Jira References: PED-4917, SLE-11118
Sources used:
SUSE Manager Retail Branch Server 4.2 (src): icu73_2-73.2-150000.1.3.1
SUSE Manager Server 4.2 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise Micro 5.1 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise Micro 5.2 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise Micro for Rancher 5.2 (src): icu73_2-73.2-150000.1.3.1
openSUSE Leap Micro 5.2 (src): icu73_2-73.2-150000.1.3.1
openSUSE Leap Micro 5.3 (src): icu73_2-73.2-150000.1.3.1
openSUSE Leap Micro 5.4 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise Micro for Rancher 5.3 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise Micro 5.3 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise Micro for Rancher 5.4 (src): icu73_2-73.2-150000.1.3.1
SUSE Linux Enterprise Micro 5.4 (src): icu73_2-73.2-150000.1.3.1
Basesystem Module 15-SP4 (src): icu73_2-73.2-150000.1.3.1
Basesystem Module 15-SP5 (src): icu73_2-73.2-150000.1.3.1
SUSE Manager Proxy 4.2 (src): icu73_2-73.2-150000.1.3.1

NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.