Skip to content
This repository has been archived by the owner on Mar 25, 2018. It is now read-only.

Build failure on Ubuntu 12.04 with 5.7-lkgr #5

Closed
targos opened this issue Feb 19, 2017 · 11 comments
Closed

Build failure on Ubuntu 12.04 with 5.7-lkgr #5

targos opened this issue Feb 19, 2017 · 11 comments

Comments

@targos
Copy link
Member

targos commented Feb 19, 2017

CI run: https://ci.nodejs.org/job/node-test-commit-linux/8035/

Error:

In file included from ../deps/v8/src/debug/debug.h:23:0,
                 from ../deps/v8/src/x64/assembler-x64-inl.h:11,
                 from ../deps/v8/src/assembler-inl.h:13,
                 from ../deps/v8/src/macro-assembler.h:8,
                 from ../deps/v8/src/deoptimizer.h:10,
                 from ../deps/v8/src/accessors.cc:9:
../deps/v8/src/string-stream.h: In member function 'void v8::internal::StringStream::Add(v8::internal::Vector<const char>, Args ...)':
../deps/v8/src/string-stream.h:130:34: error: no matching function for call to 'ArrayVector(v8::internal::StringStream::FmtElm [])'
     Add(format, ArrayVector(elems));
                                  ^
../deps/v8/src/string-stream.h:130:34: note: candidate is:
In file included from ../deps/v8/src/list.h:11:0,
                 from ../deps/v8/src/zone/zone.h:13,
                 from ../deps/v8/src/handles.h:15,
                 from ../deps/v8/src/accessors.h:11,
                 from ../deps/v8/src/accessors.cc:5:
../deps/v8/src/vector.h:212:18: note: template<class T, int N> v8::internal::Vector<T> v8::internal::ArrayVector(T (&)[N])
 inline Vector<T> ArrayVector(T (&arr)[N]) {
                  ^
../deps/v8/src/vector.h:212:18: note:   template argument deduction/substitution failed:
In file included from ../deps/v8/src/debug/debug.h:23:0,
                 from ../deps/v8/src/x64/assembler-x64-inl.h:11,
                 from ../deps/v8/src/assembler-inl.h:13,
                 from ../deps/v8/src/macro-assembler.h:8,
                 from ../deps/v8/src/deoptimizer.h:10,
                 from ../deps/v8/src/accessors.cc:9:
../deps/v8/src/string-stream.h:130:34: note:   mismatched types 'T [N]' and 'v8::internal::StringStream::FmtElm []'
     Add(format, ArrayVector(elems));
                                  ^
make[2]: *** [/home/iojs/build/workspace/node-test-commit-linux/nodes/ubuntu1204-64/out/Release/obj.target/v8_base/deps/v8/src/accessors.o] Error 1

BTW, Ubuntu 12.04 LTS will reach EOL in April 2017: https://www.ubuntu.com/info/release-end-of-life

@targos
Copy link
Member Author

targos commented Feb 19, 2017

/cc @nodejs/v8

@bnoordhuis
Copy link
Member

With what gcc version is that? The stock gcc is 4.6, IIRC, so we must be using a back-port of 4.8 or 4.9 if it worked before.

@targos
Copy link
Member Author

targos commented Feb 19, 2017

Looking at the ansible configuration, it seems to be gcc-4.8. The PPA repository provides version 4.8.4-1ubuntu15~12.04

@targos
Copy link
Member Author

targos commented Feb 19, 2017

Versions 4.9,4, 5.4.1 and 6.2.0 are all available in PPA. Maybe an upgrade is required?
/cc @nodejs/build

@bnoordhuis
Copy link
Member

I would suggest either bumping the baseline to 4.8.5 or dropping support for 4.8 altogether, with a strong preference for the latter because the 4.8 release branch is abandoned. 4.8.4 was released more than two years ago, in 2014.

@rvagg
Copy link
Member

rvagg commented Feb 21, 2017

Looks like we're now using 4.1 to compile on CentOS 5 (I missed that switch, not sure how long ago it was), leaving Ubuntu 12.04 as the old one. I suspect we'll run into further problems though when we do release builds with this because we're still using gcc 4.8 on Raspbian Wheezy for those on ARMv6 and we'll have to find a way to get that upgraded (not simple). Test builds are working because they cross-compile for speed. If we can find a solution to that then I'm OK with dropping 4.8. Any idea what version of gcc is minimum for this new version of V8?

@bnoordhuis
Copy link
Member

I'm not sure. V8's CI is built around clang, I think they have only a single gcc buildbot. I don't know what version of gcc it uses but it's probably not 4.8.

@targos
Copy link
Member Author

targos commented Mar 8, 2017

FWIW it works on CentOS 7 with this version: (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11)

targos added a commit to nodejs/build that referenced this issue Mar 14, 2017
The latest version of 4.8 available for 12.04 is 4.8.4.
It is not able to build V8 from version 5.7 and does not
satisfy the requirements to build Node.js.

Refs: nodejs/node#11840
Refs: nodejs/v8#5
@targos
Copy link
Member Author

targos commented Mar 14, 2017

Related: nodejs/node#11840

@rvagg: do you know what is the exact version on the rpi?

And for Ubuntu 12.04, I opened nodejs/build#650 to upgrade gcc.

@mhdawson
Copy link
Member

Have there been failures in your CI runs for ppc be or le ? They are at Ubuntu 14 and gcc reports as
4.8.4-2, maybe its just 4.8.4-2 that we need as the failing one you showed as 4.8.4-1

@targos
Copy link
Member Author

targos commented Mar 22, 2017

Closing. The upgrade to 4.9 in nodejs/build#650 fixed the issue.
@mhdawson maybe 4.8.4-2 would be enough but it isn't available for this version of Ubuntu

@targos targos closed this as completed Mar 22, 2017
targos added a commit to nodejs/build that referenced this issue Jun 19, 2017
The latest version of 4.8 available for 12.04 is 4.8.4.
It is not able to build V8 from version 5.7 and does not
satisfy the requirements to build Node.js.

Refs: nodejs/node#11840
Refs: nodejs/v8#5
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants