Opened 10 years ago
Closed 9 years ago
#28562 closed defect (fixed)
nodejs @0.4.1_0: Undefined symbols: "_ev_loop"
Reported by: | ryandesign (Ryan Schmidt) | Owned by: | ci42 |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 1.9.2 |
Keywords: | Cc: | vijay.santhanam@… | |
Port: | nodejs |
Description
nodejs fails to build in my normal MacPorts prefix:
:info:build Undefined symbols: :info:build "_ev_loop", referenced from: :info:build node::Start(int, char**)in node_4.o :info:build (maybe you meant: _ev_loop_destroy, _ev_loop_fork ) :info:build ld: symbol(s) not found :info:build collect2: ld returned 1 exit status
It does build in a clean MacPorts prefix containing nothing but its dependencies, so it must be inadvertently using software from another port I already have installed.
Attachments (1)
Change History (7)
Changed 10 years ago by ryandesign (Ryan Schmidt)
Attachment: | main.log.bz2 added |
---|
comment:1 Changed 10 years ago by jonasnockert@…
It seems to be libev
that's preventing node.js
from building correctly. After uninstalling libev
(dependency of lighttpd
, in my case,) node.js
built and installed fine on my system.
comment:2 Changed 10 years ago by ryandesign (Ryan Schmidt)
Thanks, you're right. I had tried deactivating libevent and it didn't make any difference, forgetting that there was a separate thing called libev.
It looks like nodejs ships with an internal copy of libev, which it wants to use, but because of incorrectly specified header inclusions it uses headers already installed by other MacPorts ports; see also #28066 and #28561. The version of libev provided by MacPorts is presumably different from the one required by libev.
I've requested the libev port be updated (see #28680). Maybe we can then make nodejs use the libev in the libev port instead of its own copy, or failing that, we can expand the fix from #28561 to also cover ev.h and, preventatively, other headers.
comment:3 Changed 10 years ago by ryandesign (Ryan Schmidt)
Cc: | vijay.santhanam@… added |
---|
Has duplicate #29070.
comment:4 Changed 10 years ago by ryandesign (Ryan Schmidt)
Added code to nodejs in r78170 to prevent installation if libev is active, with instructions for the user how to work around it, until we can figure out how to properly patch nodejs so it doesn't have this problem.
comment:5 Changed 9 years ago by ryandesign (Ryan Schmidt)
Owner: | changed from ceager@… to ciserlohn@… |
---|
comment:6 Changed 9 years ago by ci42
Resolution: | → fixed |
---|---|
Status: | new → closed |
build log