| Summary: | dev-lang/spidermonkey-1.8.5-r6 - ./methodjit/MethodJIT.cpp:192:5: error: expected '(' before 'volatile' | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | Francesco Turco <fturco> |
| Component: | Current packages | Assignee: | Mozilla Gentoo Team <mozilla> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | gentoo, sl.tom, slyfox |
| Priority: | Normal | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | Linux | ||
| See Also: | https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89585 | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
| Bug Depends on: | 687072 | ||
| Bug Blocks: | |||
| Attachments: |
info.txt
build.log.xz |
||
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'.
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 :) |
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