This repository has been archived by the owner. It is now read-only.

GYP build fails on Solaris #2123

Closed
ptribble opened this Issue Nov 15, 2011 · 3 comments

Comments

Projects
None yet
3 participants
@ptribble

Building using gyp doesn't work at all on my Solaris system, specifically Solaris 10u8.

There are two issues I encountered:

  1. The v8 build doesn't build the platform bits at all

I was able to get round this by adding a solaris section in deps/v8/tools/gyp/v8.gyp that builds platform-solaris.cc and platform-posix.cc, and links against -lsocket and -lrt

  1. Linking uses gnu-specific syntax

Newer Solaris ld actually understand the gnu options and map them to ld's own options, but that's fairly recent.

-Wl,--start-group => -z rescan-start
-Wl,--end-group => -z rescan-end
-Wl,--whole-archive => -z allextract
-Wl,--no-whole-archive => -z defaultextract

however, older ld only has a single '-z rescan' rather than the start/end pair

Patch (works for me, but I'm not that familiar with gyp): http://www.petertribble.co.uk/Solaris/node-gyp-solaris.diff

@ghost ghost assigned bnoordhuis Nov 15, 2011

@bnoordhuis

This comment has been minimized.

Show comment Hide comment
@bnoordhuis

bnoordhuis Nov 17, 2011

Member

Peter, can you check the v0.6 branch? It compiles for me now on illumos with the GNU toolchain.

Do you know why you need -lsocket and -lrt? The build works fine for me without.

Re: the gyp patch - I'm kind of loath to take it. It a) doesn't apply and b) I want to keep the delta with upstream gyp as small as possible. Can you send it to the gyp-developers mailing list?

Member

bnoordhuis commented Nov 17, 2011

Peter, can you check the v0.6 branch? It compiles for me now on illumos with the GNU toolchain.

Do you know why you need -lsocket and -lrt? The build works fine for me without.

Re: the gyp patch - I'm kind of loath to take it. It a) doesn't apply and b) I want to keep the delta with upstream gyp as small as possible. Can you send it to the gyp-developers mailing list?

@ptribble

This comment has been minimized.

Show comment Hide comment
@ptribble

ptribble Nov 17, 2011

Regular v0.6 works fine for me, on Solaris 10, and I produce packages for that.

I'm specifically testing master to see what sort of impact the changes to the build systems are going to have.

As for -lsocket -lrt, it may be that Illumos has merged those into libc (which Sun should have done years ago); they're definitely needed on Solaris 10.

I wasn't expecting you to take the patch straight off - I'll continue plugging away.

Regular v0.6 works fine for me, on Solaris 10, and I produce packages for that.

I'm specifically testing master to see what sort of impact the changes to the build systems are going to have.

As for -lsocket -lrt, it may be that Illumos has merged those into libc (which Sun should have done years ago); they're definitely needed on Solaris 10.

I wasn't expecting you to take the patch straight off - I'll continue plugging away.

@bnoordhuis

This comment has been minimized.

Show comment Hide comment
@bnoordhuis

bnoordhuis Nov 17, 2011

Member

As for -lsocket -lrt, it may be that Illumos has merged those into libc (which Sun should have done years ago); they're definitely needed on Solaris 10.

Okay, I'll add them. Are they specific to V8 or does the whole build need them? I would assume the latter but your patch adds them to v8.gyp.

Member

bnoordhuis commented Nov 17, 2011

As for -lsocket -lrt, it may be that Illumos has merged those into libc (which Sun should have done years ago); they're definitely needed on Solaris 10.

Okay, I'll add them. Are they specific to V8 or does the whole build need them? I would assume the latter but your patch adds them to v8.gyp.

@isaacs isaacs closed this Feb 17, 2012

bnoordhuis pushed a commit to bnoordhuis/node that referenced this issue Feb 17, 2012

2012.02.17 Version 0.6.11 (stable)
* http: allow multiple WebSocket RFC6455 headers (Einar Otto Stangvik)

* http: allow multiple WWW-Authenticate headers (Ben Noordhuis)

* windows: support unicode argv and environment variables (Bert Belder)

* tls: mitigate session renegotiation attacks (Ben Noordhuis)

* tcp, pipe: don't assert on uv_accept() errors (Ben Noordhuis)

* tls: Allow establishing secure connection on the existing socket (koichik)

* dgram: handle close of dgram socket before DNS lookup completes (Seth Fitzsimmons)

* windows: Support half-duplex pipes (Igor Zinkovsky)

* build: disable omit-frame-pointer on solaris systems (Dave Pacheco)

* debugger: Fix --debug-brk (Ben Noordhuis)

* net: fix large file downloads failing (koichik)

* fs: fix ReadStream failure to read from existing fd (Christopher Jeffrey)

* net: destroy socket on DNS error (Stefan Rusu)

* dtrace: add missing translator (Dave Pacheco)

* unix: don't flush tty on switch to raw mode (Ben Noordhuis)

* windows: reset brightness when reverting to default text color (Bert Belder)

* npm: update to 1.1.1
  - Update which, fstream, mkdirp, request, and rimraf
  - Fix #2123 Set path properly for lifecycle scripts on windows
  - Mark the root as seen, so we don't recurse into it. Fixes #1838. (Martin Cooper)
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.