I can't build dev-lang/spidermonkey-1.8.5-r6 anymore after switching to GCC 8.3.0: ### BEGIN ERROR MESSAGE ### ./methodjit/MethodJIT.cpp: At global scope: ./methodjit/MethodJIT.cpp:192:5: error: expected '(' before 'volatile' asm volatile ( ^~~~~~~~ ( ./methodjit/MethodJIT.cpp:193:1: error: expected unqualified-id before string constant ".text\n" ^~~~~~~~~ ./methodjit/MethodJIT.cpp:192:15: error: expected ')' before string constant asm volatile ( ~^ ) ".text\n" ~~~~~~~~~ ./methodjit/MethodJIT.cpp:239:5: error: expected '(' before 'volatile' asm volatile ( ^~~~~~~~ ( ./methodjit/MethodJIT.cpp:240:1: error: expected unqualified-id before string constant ".text\n" ^~~~~~~~~ ./methodjit/MethodJIT.cpp:239:15: error: expected ')' before string constant asm volatile ( ~^ ) ".text\n" ~~~~~~~~~ ./methodjit/MethodJIT.cpp:259:5: error: expected '(' before 'volatile' asm volatile ( ^~~~~~~~ ( ./methodjit/MethodJIT.cpp:260:1: error: expected unqualified-id before string constant ".text\n" ^~~~~~~~~ ./methodjit/MethodJIT.cpp:259:15: error: expected ')' before string constant asm volatile ( ~^ ) ".text\n" ~~~~~~~~~ ./methodjit/MethodJIT.cpp:284:5: error: expected '(' before 'volatile' asm volatile ( ^~~~~~~~ ( ./methodjit/MethodJIT.cpp:285:1: error: expected unqualified-id before string constant ".text\n" ^~~~~~~~~ ./methodjit/MethodJIT.cpp:284:15: error: expected ')' before string constant asm volatile ( ~^ ) ".text\n" ~~~~~~~~~ In file included from ./jsval.h:48, from ./jspubtd.h:47, from ./jsprvtd.h:57, from ./jscntxt.h:55, from ./methodjit/MethodJIT.h:42, from ./methodjit/MethodJIT.cpp:39: ./jsutil.h: In instantiation of 'void js::PodZero(T*) [with T = js::analyze::Bytecode]': ./jsanalyze.h:87:21: required from here ./jsutil.h:422:11: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'struct js::analyze::Bytecode'; use assignment or value-initialization instead [-Wclass-memaccess] memset(t, 0, sizeof(T)); ~~~~~~^~~~~~~~~~~~~~~~~ In file included from ./methodjit/Compiler.h:43, from ./methodjit/MethodJIT.cpp:44: ./jsanalyze.h:56:8: note: 'struct js::analyze::Bytecode' declared here struct Bytecode ^~~~~~~~ make[1]: *** [config/rules.mk:1477: MethodJIT.o] Error 1 make[1]: Leaving directory '/var/tmp/portage/dev-lang/spidermonkey-1.8.5-r6/work/js-1.8.5/js/src' make: *** [config/rules.mk:754: default] Error 2 ### END ERROR MESSAGE ### # emerge -pv =spidermonkey-1.8.5-r6 These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] dev-lang/spidermonkey-1.8.5-r6:0/mozjs185::gentoo USE="-debug -minimal -static-libs -test" 0 KiB Total: 1 package (1 reinstall), Size of downloads: 0 KiB
Created attachment 567618 [details] info.txt emerge --info
Created attachment 567620 [details] build.log.xz MAKEOPTS="-j1" emerge -av1 =spidermonkey-1.8.5-r6
I've got the same problem.
It's a compiler change: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89585 In g++-9 toplevel 'asm volatile' will be a syntax error (C compiler always rejected it). It was accidentally backported into gcc-8.3.0. But it makes sense to adapt to g++-9 now and remove 'volatile'.
Also created https://wiki.gentoo.org/wiki/Gcc_9_porting_notes/asm_volatile
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f5efe59e2c6c11b669bf33441134d2f4a8ba9741 commit f5efe59e2c6c11b669bf33441134d2f4a8ba9741 Author: Ian Stakenvicius <axs@gentoo.org> AuthorDate: 2019-03-07 19:05:21 +0000 Commit: Ian Stakenvicius <axs@gentoo.org> CommitDate: 2019-03-07 19:05:45 +0000 dev-lang/spidermonkey: drop top-level 'asm volatile' on 1.8.5 Required to build using gcc-8 and above. Also bumped to EAPI6 while in there. Bug: https://bugs.gentoo.org/679330 Signed-off-by: Ian Stakenvicius <axs@gentoo.org> Package-Manager: Portage-2.3.51, Repoman-2.3.11 dev-lang/spidermonkey/Manifest | 1 + dev-lang/spidermonkey/spidermonkey-1.8.5-r7.ebuild | 147 +++++++++++++++++++++ 2 files changed, 148 insertions(+)
Please test 1.8.5-r7 , if all is well I'll close the bug and stablereq it.
I just successfully emerged dev-lang/spidermonkey-1.8.5-r7 with gcc-8.3.0. Thank you for having fixed this bug!
(In reply to Francesco Turco from comment #8) > I just successfully emerged dev-lang/spidermonkey-1.8.5-r7 with gcc-8.3.0. > Thank you for having fixed this bug! for me it works as well - thank you!
*** Bug 686744 has been marked as a duplicate of this bug. ***
-r7 compiles fine - THX :)