Bug 1161153

Summary: GCC 10: zsh build fails
Product: [openSUSE] openSUSE Tumbleweed Reporter: Martin Liška <martin.liska>
Component: BasesystemAssignee: Martin Liška <martin.liska>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None    
Version: Current   
Target Milestone: ---   
Hardware: Other   
OS: Other   
See Also: https://github.com/ohmyzsh/ohmyzsh/issues/8546
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Bug Depends on:    
Bug Blocks: 1157217    

Comment 1 Martin Liška 2020-01-17 09:48:14 UTC
Started to fail with the following git revision:
562d1e9556777988

Which is about inliner changes. Investigating more.
Comment 2 Martin Liška 2020-01-17 10:05:16 UTC
Fails very likely due to type mismatch:

gcc  -s -rdynamic -o zsh main.o  `cat stamp-modobjs`   -ldl -lncursesw -lrt -lm  -lc
hist.epro:19:18: warning: type of ‘histtab’ does not match original declaration [-Wlto-type-mismatch]
   19 | extern HashTable histtab;
      |                  ^
hist.c:101:11: note: ‘histtab’ was previously declared here
  101 | HashTable histtab;
      |           ^
hist.c:101:11: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
hashtable.epro:21:38: warning: type of ‘cmdnamtab’ does not match original declaration [-Wlto-type-mismatch]
   21 | extern mod_import_variable HashTable cmdnamtab;
      |                                      ^
hashtable.c:585:22: note: ‘cmdnamtab’ was previously declared here
  585 | mod_export HashTable cmdnamtab;
      |                      ^
hashtable.c:585:22: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
hashtable.epro:33:38: warning: type of ‘aliastab’ does not match original declaration [-Wlto-type-mismatch]
   33 | extern mod_import_variable HashTable aliastab;
      |                                      ^
hashtable.c:1172:22: note: ‘aliastab’ was previously declared here
 1172 | mod_export HashTable aliastab;
      |                      ^
hashtable.c:1172:22: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
hashtable.epro:34:38: warning: type of ‘sufaliastab’ does not match original declaration [-Wlto-type-mismatch]
   34 | extern mod_import_variable HashTable sufaliastab;
      |                                      ^
hashtable.c:1177:22: note: ‘sufaliastab’ was previously declared here
 1177 | mod_export HashTable sufaliastab;
      |                      ^
hashtable.c:1177:22: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
hashtable.epro:31:38: warning: type of ‘reswdtab’ does not match original declaration [-Wlto-type-mismatch]
   31 | extern mod_import_variable HashTable reswdtab;
      |                                      ^
hashtable.c:1109:22: note: ‘reswdtab’ was previously declared here
 1109 | mod_export HashTable reswdtab;
      |                      ^
hashtable.c:1109:22: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
hashtable.epro:25:38: warning: type of ‘shfunctab’ does not match original declaration [-Wlto-type-mismatch]
   25 | extern mod_import_variable HashTable shfunctab;
      |                                      ^
hashtable.c:803:22: note: ‘shfunctab’ was previously declared here
  803 | mod_export HashTable shfunctab;
      |                      ^
hashtable.c:803:22: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
utils.c: In function ‘getkeystring’:
lto1: warning: function may return address of local variable [-Wreturn-local-addr]
utils.c:6644:16: note: declared here
 6644 |     char *buf, tmp[1];
      |                ^

adding -fno-strict-aliasing solves this issue. I'm going to report that to upstream.
Comment 3 Martin Liška 2020-03-10 08:43:01 UTC
Fixed with package update to version 5.8.