|
View:
New views
2 Messages
—
Rating Filter:
Alert me
|
|
|
Trouble building Socket addon with Ubuntu 9.04:It seems to start with /usr/include/evhttp.h:111: error: expected specifier-qualifier-list before `TAILQ_ENTRY' and goes downhill from there. (Maybe they changed something in the version of libevent-dev that I have?)
Socket actually completes the build (with errors) but doesn't work at runtime. Here's the section of the output from "make test" (oddly Socket gets an exception but still is marked "PASSED"!): Socket - Exception: Error loading object '/usr/local/lib/io/addons/Socket/_build/dll/libIoSocket.so': '/usr/local/lib/io/addons/Socket/_build/dll/libIoSocket.so: undefined symbol: IoEvRequest_proto' --------- open AddonLoader.io 65 Object Socket SocketTest.io 1 TestSuite run run.io 2 PASSED Here's the output from running "make Socket": dennis@dennis-desktop:~/io$ make Socket ./_build/binaries/io_static build.io -a Socket --- Socket -------------------------------------------------------------------- build.io: Entering directory `addons/Socket' cp source/*.h _build/headers cc -Os -g -Wall -pipe -fno-strict-aliasing -DSANE_POPEN -DIOBINDINGS -I../../libs/garbagecollector/_build/headers -I../../libs/coroutine/_build/headers -I../../libs/basekit/_build/headers -I../../libs/iovm/_build/headers -I/usr/local/include -I/usr/include -I/usr/include/python2.6 -I/usr/include/cairo -I/usr/include/freetype2 -I. -fPIC -c -o _build/objs/IoEvent.o source/IoEvent.c In file included from source/IoEventManager.h:16, from source/IoEvent.c:75: /usr/include/evhttp.h:111: error: expected specifier-qualifier-list before `TAILQ_ENTRY' cc -Os -g -Wall -pipe -fno-strict-aliasing -DSANE_POPEN -DIOBINDINGS -I../../libs/garbagecollector/_build/headers -I../../libs/coroutine/_build/headers -I../../libs/basekit/_build/headers -I../../libs/iovm/_build/headers -I/usr/local/include -I/usr/include -I/usr/include/python2.6 -I/usr/include/cairo -I/usr/include/freetype2 -I. -fPIC -c -o _build/objs/IoEventManager.o source/IoEventManager.c In file included from source/IoEventManager.h:16, from source/IoEventManager.c:9: /usr/include/evhttp.h:111: error: expected specifier-qualifier-list before `TAILQ_ENTRY' source/IoEventManager.c: In function `IoEventManager_proto': source/IoEventManager.c:95: warning: implicit declaration of function `evhttp_new' source/IoEventManager.c:95: warning: assignment makes pointer from integer without a cast cc -Os -g -Wall -pipe -fno-strict-aliasing -DSANE_POPEN -DIOBINDINGS -I../../libs/garbagecollector/_build/headers -I../../libs/coroutine/_build/headers -I../../libs/basekit/_build/headers -I../../libs/iovm/_build/headers -I/usr/local/include -I/usr/include -I/usr/include/python2.6 -I/usr/include/cairo -I/usr/include/freetype2 -I. -fPIC -c -o _build/objs/IoSocketInit.o source/IoSocketInit.c cc -Os -g -Wall -pipe -fno-strict-aliasing -DSANE_POPEN -DIOBINDINGS -I../../libs/garbagecollector/_build/headers -I../../libs/coroutine/_build/headers -I../../libs/basekit/_build/headers -I../../libs/iovm/_build/headers -I/usr/local/include -I/usr/include -I/usr/include/python2.6 -I/usr/include/cairo -I/usr/include/freetype2 -I. -fPIC -c -o _build/objs/IoEvRequest.o source/IoEvRequest.c In file included from source/IoEvRequest.h:18, from source/IoEvRequest.c:6: /usr/include/evhttp.h:111: error: expected specifier-qualifier-list before `TAILQ_ENTRY' source/IoEvRequest.c: In function `IoEvRequest_RequestDoneCallback': source/IoEvRequest.c:104: error: `struct evhttp_request' has no member named `output_headers' source/IoEvRequest.c:105: error: `struct evhttp_request' has no member named `input_buffer' source/IoEvRequest.c:112: error: `struct evhttp_request' has no member named `response_code' source/IoEvRequest.c: In function `IoEvRequest_send': source/IoEvRequest.c:153: error: `struct evhttp_request' has no member named `output_buffer' source/IoEvRequest.c:164: error: `struct evhttp_request' has no member named `output_headers' cc -Os -g -Wall -pipe -fno-strict-aliasing -DSANE_POPEN -DIOBINDINGS -I../../libs/garbagecollector/_build/headers -I../../libs/coroutine/_build/headers -I../../libs/basekit/_build/headers -I../../libs/iovm/_build/headers -I/usr/local/include -I/usr/include -I/usr/include/python2.6 -I/usr/include/cairo -I/usr/include/freetype2 -I. -fPIC -c -o _build/objs/IoEvConnection.o source/IoEvConnection.c In file included from source/IoEvConnection.h:18, from source/IoEvConnection.c:6: /usr/include/evhttp.h:111: error: expected specifier-qualifier-list before `TAILQ_ENTRY' source/IoEvConnection.c: In function `IoEvConnection_setLocalAddress_': source/IoEvConnection.c:93: warning: implicit declaration of function `evhttp_connection_set_local_address' source/IoEvConnection.c: In function `IoEvConnection_connect': source/IoEvConnection.c:117: warning: implicit declaration of function `evhttp_connection_set_base' ar rcu _build/lib/libIoSocket.a _build/objs/*.o ranlib _build/lib/libIoSocket.a cc -shared -o _build/dll/libIoSocket.so _build/objs/*.o -L/usr/local/lib -L/usr/lib -levent -L../../_build/dll -liovmall build.io: Leaving directory `addons/Socket' dennis@dennis-desktop:~/io$ |
|
|
Re: Trouble building Socket addon with Ubuntu 9.04:Nevermind, fixed it. For the benefit of others if they have this problem:
According to a Debian bug report, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=448165, this is an issue with the 1.3 version of libevent using a BSD-only macro. It is fixed in version 1.4.11, which I downloaded from here: http://monkey.org/~provos/libevent/. That fixed the *build* problem with Socket, however, I still got the exception, Socket - Exception: Error loading object '/usr/local/lib/io/addons/Socket/_build/dll/libIoSocket.so': '/usr/local/lib/io/addons/Socket/_build/dll/libIoSocket.so: undefined symbol: IoEvRequest_proto' --------- open AddonLoader.io 65 Object Socket SocketTest.io 1 TestSuite run run.io 2 PASSED I tried all of the following: * Used apt-get to remove libevent-dev 1.3 * Then rebuilt and installed libevent 1.4 from source * Changed libevent's install directory from /usr/local/lib to /usr/lib * Ran ldconfig every which way * Rebuilt libevent1.4 and Io multiple times (doing make clean first) Nothing I did got rid of the 1.3 .so files in my /usr/lib, so in frustration I finally rm'ed all of the libevent.1.3* files from my system! There was now no *possible* reference to them - except, if I did an ls -lah /usr/lib, there they freaking were, linked to from libevent.so. Argh. For some reason, running ldconfig one more time changed the link to point to 1.4 after this. After that I ran make all && make test. This time I got a different error: Socket - Exception: Error loading object '/usr/local/lib/io/addons/Socket/_build/dll/libIoSocket.so': 'libevent-1.3e.so.1: cannot open shared object file: No such file or directory' --------- open AddonLoader.io 65 Object Socket SocketTest.io 1 TestSuite run run.io 2 PASSED But now I knew I was on the right track so I ran sudo make install on Io, and then when I ran make test again, Socket worked. |
| Free embeddable forum powered by Nabble | Forum Help |