Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 904878 - =net-libs/nodejs-14.21.3 fails to compile with gcc-13: invalid use of incomplete type ‘class v8::internal::Cell’ [-fpermissive]
Summary: =net-libs/nodejs-14.21.3 fails to compile with gcc-13: invalid use of incomp...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: William Hubbs
URL: https://bugs.chromium.org/p/v8/issues...
Whiteboard:
Keywords:
Depends on:
Blocks: gcc-13
  Show dependency tree
 
Reported: 2023-04-23 13:34 UTC by tt_1
Modified: 2023-05-05 15:16 UTC (History)
2 users (show)

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


Attachments
errors.log (errors.log,20.34 KB, text/x-log)
2023-04-23 13:34 UTC, tt_1
Details
compressed build log (build.log.gz,24.26 KB, application/gzip)
2023-04-23 13:34 UTC, tt_1
Details
output from emerge --info (emerge-info,5.42 KB, text/plain)
2023-04-23 13:35 UTC, tt_1
Details

Note You need to log in before you can comment on or make changes to this bug.
Description tt_1 2023-04-23 13:34:31 UTC
Created attachment 860634 [details]
errors.log

this is with latest =sys-devel/gcc-13.0.1_pre20230421 on amd64, I had to attach all errors in one textfile because it exceeded the bugzilla limit for postings. So please see the attached file for all errors, here are a few samples: 

/usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/type_traits:1417:30: error: invalid use of incomplete type ‘class v8::internal::Cell’ [-fpermissive]
../deps/v8/src/codegen/tnode.h:262:72: error: ‘value’ is not a member of ‘std::is_convertible<v8::internal::Cell, v8::internal::Object>’
/usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/type_traits:1417:30: error: invalid use of incomplete type ‘class v8::internal::Cell’ [-fpermissive]

‘v8::internal::AsyncFunctionBuiltinsAssembler::LoadObjectField<v8::internal::JSPromise>(v8::internal::TNode<v8::internal::JSAsyncFunctionObject>&, const int&)’
../deps/v8/src/codegen/tnode.h:262:72: error: ‘value’ is not a member of ‘std::is_convertible<v8::internal::JSGeneratorObject, v8::internal::Object>’
/usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/type_traits:1417:30: error: invalid use of incomplete type ‘class v8::internal::JSPromise’ [-fpermissive]
../deps/v8/src/codegen/tnode.h:262:72: error: ‘value’ is not a member of ‘std::is_convertible<v8::internal::JSPromise, v8::internal::Object>’
../deps/v8/src/builtins/builtins-async-function-gen.cc:119:25: error: no matching function for call to ‘v8::internal::AsyncFunctionEnterAssembler::StoreMapNoWriteBarrier(v8::internal::TNode<v8::internal::JSPromise>&, v8::internal::TNode<v8::internal::Map>&)’
../deps/v8/src/builtins/builtins-async-function-gen.cc:120:24: error: cannot convert ‘TNode<v8::internal::JSPromise>’ to ‘TNode<v8::internal::HeapObject>’
../deps/v8/src/builtins/builtins-async-function-gen.cc:122:24: error: cannot convert ‘TNode<v8::internal::JSPromise>’ to ‘TNode<v8::internal::HeapObject>’
../deps/v8/src/builtins/builtins-async-function-gen.cc:185:56: error: no matching function for call to ‘v8::internal::AsyncFunctionRejectAssembler::LoadObjectField<v8::internal::JSPromise>(v8::internal::TNode<v8::internal::JSAsyncFunctionObject>&, const int&)’
../deps/v8/src/codegen/code-stub-assembler.h:1168:39: error: no type named ‘type’ in ‘struct std::enable_if<false, int>’
../deps/v8/src/codegen/code-stub-assembler.h:1174:39: error: no type named ‘type’ in ‘struct std::enable_if<false, int>’
../deps/v8/src/codegen/code-stub-assembler.h:1190:39: error: no type named ‘type’ in ‘struct std::enable_if<false, int>’
/usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/type_traits:1417:30: error: invalid use of incomplete type ‘class v8::internal::Cell’ [-fpermissive]
../deps/v8/src/codegen/tnode.h:262:72: error: ‘value’ is not a member of ‘std::is_convertible<v8::internal::Cell, v8::internal::Object>’
../deps/v8/src/builtins/builtins-async-function-gen.cc:197:9: error: no matching function for call to ‘v8::internal::AsyncFunctionRejectAssembler::Return(v8::internal::TNode<v8::internal::JSPromise>&)’

../deps/v8/src/codegen/tnode.h:262:72: error: ‘value’ is not a member of ‘std::is_convertible<v8::internal::JSGeneratorObject, v8::internal::Object>’
../deps/v8/src/builtins/builtins-async-generator-gen.cc:28:32: error: no matching function for call to ‘v8::internal::{anonymous}::AsyncGeneratorBuiltinsAssembler::LoadObjectField<v8::internal::Smi>(const v8::internal::TNode<v8::internal::JSGeneratorObject>&, const int&)’

../deps/v8/src/codegen/tnode.h:262:72: error: ‘value’ is not a member of ‘std::is_convertible<v8::internal::JSPromise, v8::internal::Object>’
../deps/v8/src/codegen/tnode.h:262:72: error: ‘value’ is not a member of ‘std::is_convertible<v8::internal::JSPromise, v8::internal::Object>’
../deps/v8/src/builtins/builtins-async-generator-gen.cc:544:9: error: no matching function for call to ‘v8::internal::AsyncGeneratorResolveAssembler::Return(const v8::internal::TNode<v8::internal::JSPromise>&)’
Comment 1 tt_1 2023-04-23 13:34:47 UTC
Created attachment 860635 [details]
compressed build log
Comment 2 tt_1 2023-04-23 13:35:54 UTC
Created attachment 860636 [details]
output from emerge --info
Comment 3 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-04-23 13:38:27 UTC
Any idea if newer nodejs is ok?
Comment 4 tt_1 2023-04-23 13:50:32 UTC
emerge -pv =nodejs-14.21.3

These are the packages that would be merged, in order:

Calculating dependencies... done!
Dependency resolution took 2.50 s.

[ebuild   R    ] net-libs/nodejs-14.21.3:0/14::gentoo  USE="ssl system-ssl -debug -doc -icu -inspector -lto -npm -pax-kernel -snapshot -system-icu -systemtap -test" CPU_FLAGS_X86="sse2" 0 KiB
Comment 5 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-04-23 13:57:29 UTC
Right, I'm asking about newer major versions.
Comment 6 Adrien Dessemond 2023-04-23 14:41:06 UTC
I am not able to reproduce with that exact version of nodeJS. However my system uses OpenSSL 3.0 (nodeJS 16 handles this) so the build here is probably failing  a bit earlier than on your side (GCC complains about FIPS_mode() not being in scope).

Are you able to upgrade?
Comment 7 Stephan Hartmann (RETIRED) gentoo-dev 2023-04-23 17:33:13 UTC
nodejs-{18.15.0,18.6.0,99999999} are affected as well.
Comment 8 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-04-23 17:39:10 UTC
[binary   R    ] net-libs/nodejs-18.16.0-1:0/18::gentoo  USE="icu inspector npm
snapshot ssl system-icu system-ssl -debug -doc -lto -pax-kernel -systemtap -test" CPU_FLAGS_X86="sse2" 0 KiB

is OK for me. Is snapshot the distinguishing factor or something else?
Comment 9 Arsen Arsenović gentoo-dev 2023-04-23 19:20:37 UTC
[binary   R    ] net-libs/nodejs-18.16.0-2:0/18::gentoo  USE="icu inspector lto npm snapshot ssl system-icu system-ssl -debug -doc -pax-kernel -systemtap -test" CPU_FLAGS_X86="sse2" 0 KiB

same here (just built that package, and apparently I had built it once before based on that -2, most likely also with GCC 13)
Comment 10 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-04-23 19:26:21 UTC
I don't see any patches in fedora or opensuse for this and both of them are using gcc 13. I don't get why me nor Arsen can't repro this yet.
Comment 11 tt_1 2023-04-24 18:00:40 UTC
(In reply to Stephan Hartmann from comment #7)
> nodejs-{18.15.0,18.6.0,99999999} are affected as well.

would you mind to share the logs and emerge -pv with us?
Comment 12 tt_1 2023-04-26 06:59:54 UTC
there are significant less errors with the gcc-13 v8 patch (chromium-112-gcc-13-0023-gcc-incomplete-type-v8-subtype.patch) from latest chromium-112-gcc-13 patchset: 

../deps/v8/src/codegen/tnode.h:261:12: error: ‘disjunction’ is not a member of ‘std’
../deps/v8/src/codegen/tnode.h:261:45: error: expected primary-expression before ‘,’ token
../deps/v8/src/codegen/tnode.h:262:24: error: invalid use of ‘::’
../deps/v8/src/codegen/tnode.h:262:29: error: expected ‘;’ at end of member declaration
../deps/v8/src/codegen/tnode.h:262:40: error: expected unqualified-id before ‘<’ token
../deps/v8/src/codegen/tnode.h:261:12: error: ‘disjunction’ is not a member of ‘std’
../deps/v8/src/codegen/tnode.h:261:45: error: expected primary-expression before ‘,’ token
../deps/v8/src/codegen/tnode.h:262:24: error: invalid use of ‘::’
../deps/v8/src/codegen/tnode.h:262:29: error: expected ‘;’ at end of member declaration
../deps/v8/src/codegen/tnode.h:262:40: error: expected unqualified-id before ‘<’ token
../deps/v8/src/codegen/tnode.h:261:12: error: ‘disjunction’ is not a member of ‘std’
../deps/v8/src/codegen/tnode.h:261:45: error: expected primary-expression before ‘,’ token
../deps/v8/src/codegen/tnode.h:262:24: error: invalid use of ‘::’
../deps/v8/src/codegen/tnode.h:262:29: error: expected ‘;’ at end of member declaration
../deps/v8/src/codegen/tnode.h:262:40: error: expected unqualified-id before ‘<’ token
../deps/v8/src/codegen/tnode.h:261:12: error: ‘disjunction’ is not a member of ‘std’
../deps/v8/src/codegen/tnode.h:261:45: error: expected primary-expression before ‘,’ token
../deps/v8/src/codegen/tnode.h:262:24: error: invalid use of ‘::’
../deps/v8/src/codegen/tnode.h:262:29: error: expected ‘;’ at end of member declaration
../deps/v8/src/codegen/tnode.h:262:40: error: expected unqualified-id before ‘<’ token
../deps/v8/src/codegen/tnode.h:261:12: error: ‘disjunction’ is not a member of ‘std’
../deps/v8/src/codegen/tnode.h:261:45: error: expected primary-expression before ‘,’ token
../deps/v8/src/codegen/tnode.h:262:24: error: invalid use of ‘::’
../deps/v8/src/codegen/tnode.h:262:29: error: expected ‘;’ at end of member declaration
../deps/v8/src/codegen/tnode.h:262:40: error: expected unqualified-id before ‘<’ token
Comment 13 William Hubbs gentoo-dev 2023-04-26 16:16:47 UTC
FYI, nodejs 14.x.x is very close to end-of-life.
I recommend moving to a newer version.

See the following for more information:
https://github.com/nodejs/release#release-schedule
http://www.endoflife.date/nodejs
Comment 14 Stephan Hartmann (RETIRED) gentoo-dev 2023-04-26 20:13:51 UTC
(In reply to tt_1 from comment #12)
> there are significant less errors with the gcc-13 v8 patch
> (chromium-112-gcc-13-0023-gcc-incomplete-type-v8-subtype.patch) from latest
> chromium-112-gcc-13 patchset: 
> 
> ../deps/v8/src/codegen/tnode.h:261:12: error: ‘disjunction’ is not a member
> of ‘std’
> ../deps/v8/src/codegen/tnode.h:261:45: error: expected primary-expression
> before ‘,’ token
> ../deps/v8/src/codegen/tnode.h:262:24: error: invalid use of ‘::’
> ../deps/v8/src/codegen/tnode.h:262:29: error: expected ‘;’ at end of member
> declaration
> ../deps/v8/src/codegen/tnode.h:262:40: error: expected unqualified-id before
> ‘<’ token
> ../deps/v8/src/codegen/tnode.h:261:12: error: ‘disjunction’ is not a member
> of ‘std’
> ../deps/v8/src/codegen/tnode.h:261:45: error: expected primary-expression
> before ‘,’ token
> ../deps/v8/src/codegen/tnode.h:262:24: error: invalid use of ‘::’
> ../deps/v8/src/codegen/tnode.h:262:29: error: expected ‘;’ at end of member
> declaration
> ../deps/v8/src/codegen/tnode.h:262:40: error: expected unqualified-id before
> ‘<’ token
> ../deps/v8/src/codegen/tnode.h:261:12: error: ‘disjunction’ is not a member
> of ‘std’
> ../deps/v8/src/codegen/tnode.h:261:45: error: expected primary-expression
> before ‘,’ token
> ../deps/v8/src/codegen/tnode.h:262:24: error: invalid use of ‘::’
> ../deps/v8/src/codegen/tnode.h:262:29: error: expected ‘;’ at end of member
> declaration
> ../deps/v8/src/codegen/tnode.h:262:40: error: expected unqualified-id before
> ‘<’ token
> ../deps/v8/src/codegen/tnode.h:261:12: error: ‘disjunction’ is not a member
> of ‘std’
> ../deps/v8/src/codegen/tnode.h:261:45: error: expected primary-expression
> before ‘,’ token
> ../deps/v8/src/codegen/tnode.h:262:24: error: invalid use of ‘::’
> ../deps/v8/src/codegen/tnode.h:262:29: error: expected ‘;’ at end of member
> declaration
> ../deps/v8/src/codegen/tnode.h:262:40: error: expected unqualified-id before
> ‘<’ token
> ../deps/v8/src/codegen/tnode.h:261:12: error: ‘disjunction’ is not a member
> of ‘std’
> ../deps/v8/src/codegen/tnode.h:261:45: error: expected primary-expression
> before ‘,’ token
> ../deps/v8/src/codegen/tnode.h:262:24: error: invalid use of ‘::’
> ../deps/v8/src/codegen/tnode.h:262:29: error: expected ‘;’ at end of member
> declaration
> ../deps/v8/src/codegen/tnode.h:262:40: error: expected unqualified-id before
> ‘<’ token

Missing #include <type_traits>?
Comment 15 Larry the Git Cow gentoo-dev 2023-04-27 02:26:16 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=35bb41a62e67f0c3f1dd98085de6667867152467

commit 35bb41a62e67f0c3f1dd98085de6667867152467
Author:     William Hubbs <williamh@gentoo.org>
AuthorDate: 2023-04-27 02:21:45 +0000
Commit:     William Hubbs <williamh@gentoo.org>
CommitDate: 2023-04-27 02:26:01 +0000

    net-libs/nodejs: fix gcc 13 compilation error
    
    Bug: https://bugs.gentoo.org/904878
    Signed-off-by: William Hubbs <williamh@gentoo.org>

 net-libs/nodejs/nodejs-16.20.0.ebuild | 4 ++++
 net-libs/nodejs/nodejs-18.16.0.ebuild | 4 ++++
 2 files changed, 8 insertions(+)
Comment 16 William Hubbs gentoo-dev 2023-04-27 06:34:45 UTC
Hi,

please test with 16.x, 18.x and 20.x.
Report back and let me know if those versions compile.

Thanks,

William
Comment 17 Larry the Git Cow gentoo-dev 2023-05-05 15:16:20 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=55d41af70c102c202b46f8568ab0b6c06da4b2f2

commit 55d41af70c102c202b46f8568ab0b6c06da4b2f2
Author:     William Hubbs <williamh@gentoo.org>
AuthorDate: 2023-05-05 15:14:20 +0000
Commit:     William Hubbs <williamh@gentoo.org>
CommitDate: 2023-05-05 15:16:14 +0000

    net-libs/nodejs: drop 14.21.3
    
    Closes: https://bugs.gentoo.org/904878
    Signed-off-by: William Hubbs <williamh@gentoo.org>

 net-libs/nodejs/Manifest                           |   1 -
 .../nodejs/files/nodejs-13.8.0-paxmarking.patch    | 111 ----------
 .../files/nodejs-14.15.0-fix_ppc64_crashes.patch   |  33 ---
 .../files/nodejs-14.19.0-global-npm-config.patch   |  20 --
 net-libs/nodejs/files/nodejs-gcc-13.patch          |  27 ---
 net-libs/nodejs/nodejs-14.21.3.ebuild              | 240 ---------------------
 6 files changed, 432 deletions(-)