Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build fails on Node v0.7.5 #10

Closed
seanmcgary opened this issue Apr 2, 2012 · 5 comments
Closed

Build fails on Node v0.7.5 #10

seanmcgary opened this issue Apr 2, 2012 · 5 comments

Comments

@seanmcgary
Copy link

Building fails in Node v0.7.5. Root cause looks to be some changes that were made in libuv from Node v0.6.x to v0.7.x.

Stack trace of node-waf:

$ node-waf
Waf: Entering directory `./robotskirt/build'
[1/7] cc: src/markdown.c -> build/Release/src/markdown_1.o
[2/7] cc: src/array.c -> build/Release/src/array_1.o
[3/7] cc: src/buffer.c -> build/Release/src/buffer_1.o
[4/7] cc: src/html.c -> build/Release/src/html_1.o
[5/7] cxx: src/robotskirt.cc -> build/Release/src/robotskirt_2.o
/usr/local/include/node/uv-private/eio.h: In function ‘v8::Handle<v8::Value> ToHtmlAsync(const v8::Arguments&)’:
/usr/local/include/node/uv-private/eio.h:361: error: too few arguments to function ‘eio_req* eio_custom(void (*)(eio_req*), int, int (*)(eio_req*), void*, eio_channel*)’
../src/robotskirt.cc:60: error: at this point in file
Waf: Leaving directory `./robotskirt/build'
Build failed:  -> task failed (err #1): 
    {task: cxx robotskirt.cc -> robotskirt_2.o}

Heres the change to the NodeJS source that causes the problem: nodejs/node-v0.x-archive@dd0188e

Any chance of getting a fix for this to work with Node v0.7.x?

@benmills
Copy link
Owner

benmills commented Apr 2, 2012

Thanks for letting me know, I'll take a look as soon as I can.

@mildsunrise
Copy link
Collaborator

Oops, just noticed my #17 is a duplicate of this.
That also happens to me. My environment:

  • 64-bit Ubuntu
  • Node version: v0.7.9-pre
  • node-waf --version returns waf 1.5.16 (7610:7647M)

@mildsunrise
Copy link
Collaborator

Well, actually that's not a Robotskirt bug.
On recent Node versions, the UV library (which Node depends on)
has been updated. The new version also contained the last changes
to libeio. Thus, the new EIO API is different and it fails to build.

The history for the eio.h header can be found here.
I'll try to make a macro to adapt the code depending on the version.

@mildsunrise
Copy link
Collaborator

Anyway, the UV library does not longer depend on EIO --it has its own event functions.
Also, node-waf is no longer supported for building. We'll switch to node-gyp soon.

@mildsunrise
Copy link
Collaborator

With v2 of Robotskirt (now stable and published) there's [no asynchronous methods]#21 (comment))
at all, so this shouldn't be a problem.

Post any feedback on that at pull #21.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants