Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 634484

Summary: app-emulation/spice-0.13.90 fails with expression in static assertion is not constant
Product: Gentoo Linux Reporter: Sven Müller <musv>
Component: Current packagesAssignee: Virtualization Team <virtualization>
Status: RESOLVED NEEDINFO    
Severity: normal CC: jstein
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: build.log
emerge --info
QuestionableWorkAround.patch

Description Sven Müller 2017-10-16 20:40:55 UTC
In file included from macros.h:22:0,
                 from quic.h:24,
                 from quic.c:28:
quic.c: In function 'find_model_params':
quic.c:881:41: error: expression in static assertion is not constant
     SPICE_VERIFY(evol == 1 || evol == 3 || evol == 5);
                  ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
verify.h:191:23: note: in definition of macro '_GL_VERIFY_TYPE'
       _Static_assert (R, DIAGNOSTIC);          \
                       ^
verify.h:246:5: note: in expansion of macro '_GL_VERIFY_TRUE'
    (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E))
     ^~~~~~~~~~~~~~~
macros.h:56:28: note: in expansion of macro 'verify_expr'
 #define SPICE_VERIFY(cond) verify_expr(cond, (void)1)
                            ^~~~~~~~~~~
quic.c:881:5: note: in expansion of macro 'SPICE_VERIFY'
     SPICE_VERIFY(evol == 1 || evol == 3 || evol == 5);
     ^~~~~~~~~~~~


/bin/sh ../libtool  --tag=CC   --mode=compile x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I.. -I/usr/include/pixman-1   -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/opus  -DG_LOG_DOMAIN=\"Spice\" -I/usr/include/spice-1    -march=core-avx2 -mcx16 -msahf -mmovbe -maes -mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mbmi2 -mno-tbm -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mno-rtm -mno-hle -mrdrnd -mf16c -mfsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mxsave -mxsaveopt --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=6144 -mtune=core-avx2 -fstack-protector -c -o snd_codec.lo snd_codec.c
/bin/sh ../libtool  --tag=CC   --mode=compile x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I.. -I/usr/include/pixman-1   -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/opus  -DG_LOG_DOMAIN=\"Spice\" -I/usr/include/spice-1    -march=core-avx2 -mcx16 -msahf -mmovbe -maes -mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mbmi2 -mno-tbm -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mno-rtm -mno-hle -mrdrnd -mf16c -mfsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mxsave -mxsaveopt --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=6144 -mtune=core-avx2 -fstack-protector -c -o ssl_verify.lo ssl_verify.c
/bin/sh ../libtool  --tag=CC   --mode=compile x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I.. -I/usr/include/pixman-1   -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/opus  -DG_LOG_DOMAIN=\"Spice\" -I/usr/include/spice-1   -DFIXME_SERVER_SMARTCARD -march=core-avx2 -mcx16 -msahf -mmovbe -maes -mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mbmi2 -mno-tbm -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mno-rtm -mno-hle -mrdrnd -mf16c -mfsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mxsave -mxsaveopt --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=6144 -mtune=core-avx2 -fstack-protector -c -o libspice_common_server_la-generated_server_demarshallers.lo `test -f 'generated_server_demarshallers.c' || echo './'`generated_server_demarshallers.c
make[5]: *** [Makefile:575: quic.lo] Error 1
make[5]: *** Waiting for unfinished jobs....

For some reason it compiles on my desktop machine but fails on my notebook. The configures are almost identical (same useflag, same versions, same keywords).
Comment 1 Sven Müller 2017-10-16 20:42:45 UTC
Created attachment 498912 [details]
build.log
Comment 2 Sven Müller 2017-10-16 20:43:02 UTC
Created attachment 498914 [details]
emerge --info
Comment 3 Greg Turner 2018-02-02 03:36:00 UTC
Created attachment 517522 [details, diff]
QuestionableWorkAround.patch

Sharing but not really endorsing the attached work-around which just comments out the offending line of code (which I suspect is a noop for normal builds -- but I'm not sure).

More motivated investigators should take a gander at: https://gitlab.com/spice/spice-common/commit/dde1fe35338f2df47d5e20cd41b15d6872acdc4e
Comment 4 Larry the Git Cow gentoo-dev 2018-02-12 01:48:58 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8ca3368317e4ce0fc7f559b041cc3adef96911d2

commit 8ca3368317e4ce0fc7f559b041cc3adef96911d2
Author:     Matthias Maier <tamiko@gentoo.org>
AuthorDate: 2018-02-12 01:41:19 +0000
Commit:     Matthias Maier <tamiko@gentoo.org>
CommitDate: 2018-02-12 01:48:29 +0000

    app-emulation/spice: version bump to 0.14.0
    
     - Update dependency on spice-protocol
    
     - Remove celt dependencu and only use opus...
    
     - Remove --disable-gui (spice does not have a GUI any more)
    
     - fix libressl support (Thanks to Michelangelo Scopelliti)
    
     - fix openssl1.1 support (Thanks to Mark Wright)
    
     - cannot reproduce static assert bug #634484 with gcc 7.3.0
    
    Bug:    https://bugs.gentoo.org/634484
    Closes: https://bugs.gentoo.org/630142
    Closes: https://bugs.gentoo.org/630594
    Closes: https://bugs.gentoo.org/630942
    Closes: https://bugs.gentoo.org/634696
    Closes: https://bugs.gentoo.org/635864
    Package-Manager: Portage-2.3.24, Repoman-2.3.6

 app-emulation/spice/Manifest                       |   1 +
 .../spice/files/spice-0.14.0-libressl_fix.patch    |  13 +++
 .../spice/files/spice-0.14.0-openssl1.1_fix.patch  |  26 ++++++
 app-emulation/spice/spice-0.14.0.ebuild            | 100 +++++++++++++++++++++
 4 files changed, 140 insertions(+)}
Comment 5 Matthias Maier gentoo-dev 2018-08-16 22:05:18 UTC
Please test again with current versions in tree.