Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 883719 - sys-libs/timezone-data-2022g: zdump.c:128:27: error: expected identifier or ‘(’ before ‘void’
Summary: sys-libs/timezone-data-2022g: zdump.c:128:27: error: expected identifier or ‘...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords: PullRequest
Depends on:
Blocks: gcc-13
  Show dependency tree
 
Reported: 2022-11-30 08:29 UTC by HougeLangley
Modified: 2023-02-15 03:45 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge --info (emerge-info.log,6.69 KB, text/plain)
2022-11-30 08:32 UTC, HougeLangley
Details
minimal reproducing example (file_883719.c,237 bytes, text/plain)
2022-12-01 13:17 UTC, WANG Xuerui
Details

Note You need to log in before you can comment on or make changes to this bug.
Description HougeLangley 2022-11-30 08:29:01 UTC
* Package:    sys-libs/timezone-data-2022g:0
 * Repository: gentoo
 * Maintainer: toolchain@gentoo.org
 * USE:        elibc_glibc kernel_linux loong nls userland_GNU
 * FEATURES:   preserve-libs sandbox userpriv usersandbox
>>> Unpacking source...
>>> Unpacking tzdata2022g.tar.gz to /var/tmp/portage/sys-libs/timezone-data-2022g/work/timezone-data-2022g
>>> Unpacking tzcode2022g.tar.gz to /var/tmp/portage/sys-libs/timezone-data-2022g/work/timezone-data-2022g
>>> Source unpacked in /var/tmp/portage/sys-libs/timezone-data-2022g/work
>>> Preparing source in /var/tmp/portage/sys-libs/timezone-data-2022g/work/timezone-data-2022g ...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/sys-libs/timezone-data-2022g/work/timezone-data-2022g ...
>>> Source configured.
>>> Compiling source in /var/tmp/portage/sys-libs/timezone-data-2022g/work/timezone-data-2022g ...
make -j32 REDO=posix_only TOPDIR= ZICDIR=$(TOPDIR)/usr/bin AR=loongarch64-unknown-linux-gnu-ar cc=loongarch64-unknown-linux-gnu-gcc RANLIB=loongarch64-unknown-linux-gnu-ranlib 'CFLAGS=-O2 -pipe -std=gnu99  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DHAVE_GETTEXT=1 -DTZ_DOMAIN=\"libc\" -DZIC_BLOAT_DEFAULT=\"fat\"' 'LDFLAGS=-Wl,-O1 -Wl,--as-needed' LDLIBS= 
{ (type git) >/dev/null 2>&1 && \
          V=`git describe --match '[0-9][0-9][0-9][0-9][a-z]*' \
                        --abbrev=7 --dirty` || \
          if test 'unknown' = unknown && V=`cat version`; then \
            case $V in *-dirty);; *) V=$V-dirty;; esac; \
          else \
            V='unknown'; \
          fi; } && \
        printf '%s\n' "$V" >version.out
loongarch64-unknown-linux-gnu-gcc -DTZDIR='"/usr/share/zoneinfo"' -O2 -pipe -std=gnu99  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DHAVE_GETTEXT=1 -DTZ_DOMAIN=\"libc\" -DZIC_BLOAT_DEFAULT=\"fat\"  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DHAVE_GETTEXT=1 -DTZ_DOMAIN=\"libc\" -DZIC_BLOAT_DEFAULT=\"fat\"  -c -o localtime.o localtime.c
loongarch64-unknown-linux-gnu-gcc -DTZDIR='"/usr/share/zoneinfo"' -O2 -pipe -std=gnu99  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DHAVE_GETTEXT=1 -DTZ_DOMAIN=\"libc\" -DZIC_BLOAT_DEFAULT=\"fat\"  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DHAVE_GETTEXT=1 -DTZ_DOMAIN=\"libc\" -DZIC_BLOAT_DEFAULT=\"fat\"  -c -o asctime.o asctime.c
loongarch64-unknown-linux-gnu-gcc -DTZDIR='"/usr/share/zoneinfo"' -O2 -pipe -std=gnu99  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DHAVE_GETTEXT=1 -DTZ_DOMAIN=\"libc\" -DZIC_BLOAT_DEFAULT=\"fat\"  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DHAVE_GETTEXT=1 -DTZ_DOMAIN=\"libc\" -DZIC_BLOAT_DEFAULT=\"fat\"  -c -o strftime.o strftime.c
loongarch64-unknown-linux-gnu-gcc -DTZDIR='"/usr/share/zoneinfo"' -O2 -pipe -std=gnu99  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DHAVE_GETTEXT=1 -DTZ_DOMAIN=\"libc\" -DZIC_BLOAT_DEFAULT=\"fat\"  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DHAVE_GETTEXT=1 -DTZ_DOMAIN=\"libc\" -DZIC_BLOAT_DEFAULT=\"fat\"  -c -o difftime.o difftime.c
awk \
          -v DATAFORM=`expr main.zi : '\(.*\).zi'` \
          -v PACKRATDATA='' \
          -v PACKRATLIST='' \
          -f ziguard.awk \
          africa antarctica asia australasia europe northamerica southamerica etcetera factory backward  >main.zi.out
awk \
          -v DATAFORM=`expr vanguard.zi : '\(.*\).zi'` \
          -v PACKRATDATA='' \
          -v PACKRATLIST='' \
          -f ziguard.awk \
          africa antarctica asia australasia europe northamerica southamerica etcetera factory backward  >vanguard.zi.out
awk \
          -v DATAFORM=`expr rearguard.zi : '\(.*\).zi'` \
          -v PACKRATDATA='' \
          -v PACKRATLIST='' \
          -f ziguard.awk \
          africa antarctica asia australasia europe northamerica southamerica etcetera factory backward  >rearguard.zi.out
fatal: not a git repository (or any of the parent directories): .git
mv version.out version
VERSION=`cat version` && sed \
                -e 's|#!/bin/bash|#!/bin/bash|g' \
                -e 's|AWK=[^}]*|AWK='\''awk'\''|g' \
                -e 's|\(PKGVERSION\)=.*|\1='\''(tzcode) '\''|' \
                -e 's|\(REPORT_BUGS_TO\)=.*|\1=tz@iana.org|' \
                -e 's|TZDIR=[^}]*|TZDIR=/usr/share/zoneinfo|' \
                -e 's|\(TZVERSION\)=.*|\1='"$VERSION"'|' \
                <tzselect.ksh >tzselect.out
VERSION=`cat version` && printf '%s\n' \
          'static char const PKGVERSION[]="(tzcode) ";' \
          "static char const TZVERSION[]=\"$VERSION\";" \
          'static char const REPORT_BUGS_TO[]="tz@iana.org";' \
          >version.h.out
mv version.h.out version.h
loongarch64-unknown-linux-gnu-gcc -DTZDIR='"/usr/share/zoneinfo"' -O2 -pipe -std=gnu99  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DHAVE_GETTEXT=1 -DTZ_DOMAIN=\"libc\" -DZIC_BLOAT_DEFAULT=\"fat\"  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DHAVE_GETTEXT=1 -DTZ_DOMAIN=\"libc\" -DZIC_BLOAT_DEFAULT=\"fat\"  -c -o zic.o zic.c
loongarch64-unknown-linux-gnu-gcc -DTZDIR='"/usr/share/zoneinfo"' -O2 -pipe -std=gnu99  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DHAVE_GETTEXT=1 -DTZ_DOMAIN=\"libc\" -DZIC_BLOAT_DEFAULT=\"fat\"  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DHAVE_GETTEXT=1 -DTZ_DOMAIN=\"libc\" -DZIC_BLOAT_DEFAULT=\"fat\"  -c -o zdump.o zdump.c
chmod +x tzselect.out
mv tzselect.out tzselect
mv main.zi.out main.zi
version=`sed 1q version` && \
          LC_ALL=C awk \
            -v dataform='main' \
            -v deps='ziguard.awk africa antarctica asia australasia europe northamerica southamerica etcetera factory backward   zishrink.awk' \
            -v redo='posix_only' \
            -v version="$version" \
            -f zishrink.awk \
            main.zi >tzdata.zi.out
zdump.c:128:1: warning: ‘noreturn’ attribute ignored [-Wattributes]
  128 | static ATTRIBUTE_NORETURN void
      | ^~~~~~
zdump.c:128:27: error: expected identifier or ‘(’ before ‘void’
  128 | static ATTRIBUTE_NORETURN void
      |                           ^~~~
zdump.c: In function ‘sumsize’:
zdump.c:149:3: warning: implicit declaration of function ‘size_overflow’ [-Wimplicit-function-declaration]
  149 |   size_overflow();
      |   ^~~~~~~~~~~~~
mv rearguard.zi.out rearguard.zi
zic.c:462:1: warning: ‘noreturn’ attribute ignored [-Wattributes]
  462 | static ATTRIBUTE_NORETURN void
      | ^~~~~~
zic.c:462:27: error: expected identifier or ‘(’ before ‘void’
  462 | static ATTRIBUTE_NORETURN void
      |                           ^~~~
zic.c:469:1: warning: ‘noreturn’ attribute ignored [-Wattributes]
  469 | static ATTRIBUTE_NORETURN void
      | ^~~~~~
zic.c:469:27: error: expected identifier or ‘(’ before ‘void’
  469 | static ATTRIBUTE_NORETURN void
      |                           ^~~~
zic.c: In function ‘size_sum’:
zic.c:487:3: warning: implicit declaration of function ‘size_overflow’ [-Wimplicit-function-declaration]
  487 |   size_overflow();
      |   ^~~~~~~~~~~~~
zic.c: In function ‘memcheck’:
zic.c:525:11: warning: implicit declaration of function ‘memory_exhausted’ [-Wimplicit-function-declaration]
  525 |           memory_exhausted(strerror(HAVE_MALLOC_ERRNO ? errno : ENOMEM));
      |           ^~~~~~~~~~~~~~~~
zic.c: At top level:
zic.c:669:1: warning: ‘noreturn’ attribute ignored [-Wattributes]
  669 | static ATTRIBUTE_NORETURN void
      | ^~~~~~
zic.c:669:27: error: expected identifier or ‘(’ before ‘void’
  669 | static ATTRIBUTE_NORETURN void
      |                           ^~~~
make: *** [<builtin>: zdump.o] Error 1
make: *** Waiting for unfinished jobs....
zic.c: In function ‘main’:
zic.c:1004:25: warning: implicit declaration of function ‘usage’ [-Wimplicit-function-declaration]
 1004 |                         usage(stdout, EXIT_SUCCESS);
      |                         ^~~~~
mv vanguard.zi.out vanguard.zi
zic.c: At top level:
zic.c:3728:1: warning: ‘noreturn’ attribute ignored [-Wattributes]
 3728 | static ATTRIBUTE_NORETURN void
      | ^~~~~~
zic.c:3728:27: error: expected identifier or ‘(’ before ‘void’
 3728 | static ATTRIBUTE_NORETURN void
      |                           ^~~~
zic.c: In function ‘oadd’:
zic.c:3746:3: warning: implicit declaration of function ‘time_overflow’ [-Wimplicit-function-declaration]
 3746 |   time_overflow();
      |   ^~~~~~~~~~~~~
make: *** [<builtin>: zic.o] Error 1
mv tzdata.zi.out tzdata.zi
 * ERROR: sys-libs/timezone-data-2022g::gentoo failed (compile phase):
 *   emake failed
 * 
 * If you need support, post the output of `emerge --info '=sys-libs/timezone-data-2022g::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=sys-libs/timezone-data-2022g::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/sys-libs/timezone-data-2022g/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-libs/timezone-data-2022g/temp/environment'.
 * Working directory: '/var/tmp/portage/sys-libs/timezone-data-2022g/work/timezone-data-2022g'
 * S: '/var/tmp/portage/sys-libs/timezone-data-2022g/work/timezone-data-2022g'

 * Messages for package sys-libs/timezone-data-2022g:
Comment 1 HougeLangley 2022-11-30 08:32:14 UTC
Created attachment 838395 [details]
emerge --info
Comment 2 HougeLangley 2022-11-30 08:34:25 UTC
$ emerge -pqv '=sys-libs/timezone-data-2022g::gentoo'
[ebuild     U ] sys-libs/timezone-data-2022g [2022f-r1] USE="nls -leaps-timezone -zic-slim"
Comment 3 WANG Xuerui gentoo-dev 2022-12-01 13:17:42 UTC
Created attachment 838681 [details]
minimal reproducing example
Comment 4 WANG Xuerui gentoo-dev 2022-12-01 13:20:15 UTC
This is present on amd64 with gcc-13 too, likely a gcc-13 bug.

With the minimal reproducing example I attached just now:

> $ gcc-13 -E -P -std=gnu99 fuck.h
> C standard version is 199901L, has "__has_c_attribute"
> "__has_c_attribute(noreturn)" = 202202

but:

> $ gcc-12.1.1 -E -P -std=gnu99 x.h
> C standard version is 199901L, has "__has_c_attribute"
> "__has_c_attribute(noreturn)" = 0
> $ clang-15 -E -P -std=gnu99 x.h
>
> C standard version is 199901L, has "__has_c_attribute"
> "__has_c_attribute(noreturn)" = 0
Comment 5 WANG Xuerui gentoo-dev 2022-12-01 14:05:34 UTC
GCC upstream indicates it's timezone-data code being wrong, not GCC bug.

Masking this version on loong for the time being, pending an upstream fix.
Comment 6 Larry the Git Cow gentoo-dev 2022-12-01 14:08:04 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4237f2cad61fbf7ffdaf832d31e7cd619537074a

commit 4237f2cad61fbf7ffdaf832d31e7cd619537074a
Author:     WANG Xuerui <xen0n@gentoo.org>
AuthorDate: 2022-12-01 14:07:33 +0000
Commit:     WANG Xuerui <xen0n@gentoo.org>
CommitDate: 2022-12-01 14:07:33 +0000

    profiles/arch/loong: mask =sys-libs/timezone-data-2022g
    
    Bug: https://bugs.gentoo.org/883719
    Signed-off-by: WANG Xuerui <xen0n@gentoo.org>

 profiles/arch/loong/package.mask | 5 +++++
 1 file changed, 5 insertions(+)
Comment 7 Paul Eggert 2022-12-01 18:37:50 UTC
Thanks for reporting this. I fixed this TZDB bug and the fix should appear in the next TZDB release.

Although I cannot give the fix's URL because my Gentoo account is too new, you can see the fix by visiting GitHub, looking for user eggert, repository tz, commit 9cfe9507fcc22cd4a0c4da486ea1c7f0de6b075f.
Comment 8 Larry the Git Cow gentoo-dev 2022-12-02 03:26:30 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9705417206ffb856164627f9b3ee7f49931ff8f7

commit 9705417206ffb856164627f9b3ee7f49931ff8f7
Author:     WANG Xuerui <xen0n@gentoo.org>
AuthorDate: 2022-12-02 03:11:27 +0000
Commit:     WANG Xuerui <xen0n@gentoo.org>
CommitDate: 2022-12-02 03:26:00 +0000

    sys-libs/timezone-data: fix C23 conformance / gcc-13 build for 2022g
    
    Closes: https://bugs.gentoo.org/883719
    Reviewed-by: Sam James <sam@gentoo.org>
    Signed-off-by: WANG Xuerui <xen0n@gentoo.org>

 .../files/timezone-data-2022g-c23.patch            | 279 +++++++++++++++++++++
 sys-libs/timezone-data/timezone-data-2022g.ebuild  |   4 +
 2 files changed, 283 insertions(+)