Summary: | Can't specify C++ build for dev-lisp/ecls and dev-lisp/ecls-cvs | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Ivan Toshkov <ivan> |
Component: | [OLD] Development | Assignee: | Common Lisp Bugs <common-lisp> |
Status: | VERIFIED FIXED | ||
Severity: | enhancement | ||
Priority: | High | ||
Version: | 2005.1 | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
untested patch
0.9h-sockets-c++-gentoo.patch ecls file list |
Description
Ivan Toshkov
2006-02-09 04:12:40 UTC
ok. seems like a reasonable request. Ran into some problems with the sockets support: /var/tmp/portage/ecls-0.9h-r1/work/ecl-0.9h/build/ext/sockets.c: In function `cl_lispunion* LC30socket_accept(cl_lispunion*)': /var/tmp/portage/ecls-0.9h-r1/work/ecl-0.9h/build/ext/sockets.c:892: error: invalid conversion from `int*' to `socklen_t*' /var/tmp/portage/ecls-0.9h-r1/work/ecl-0.9h/build/ext/sockets.c:892: error: initializing argument 3 of `int accept(int, sockaddr*, socklen_t*)' ... (In reply to comment #2) > Ran into some problems with the sockets support: > > /var/tmp/portage/ecls-0.9h-r1/work/ecl-0.9h/build/ext/sockets.c: In function > `cl_lispunion* LC30socket_accept(cl_lispunion*)': > /var/tmp/portage/ecls-0.9h-r1/work/ecl-0.9h/build/ext/sockets.c:892: error: > invalid conversion from `int*' to `socklen_t*' > /var/tmp/portage/ecls-0.9h-r1/work/ecl-0.9h/build/ext/sockets.c:892: error: > initializing argument 3 of `int accept(int, sockaddr*, socklen_t*)' > ... > Same here. I tried both with GCC 3.3.6 and GCC 3.4.4. The problem seems to be in the socket code only, 'cause when I managed to compile it without --with-tcp. Created attachment 79725 [details, diff]
untested patch
This is an untested patch against the CVS HEAD. But since it is in a contrib file, I'd guess it hadn't changed for some time.
It looks like the local socket interface in ECL hasn't been tested with the --with-cxx configuration. Attached is a patch which should fix the build errors. I will try to send it up stream if it also works for you. Created attachment 79781 [details, diff]
0.9h-sockets-c++-gentoo.patch
This diff against ecl-0.9h also includes changes to sockets.lisp from CVS HEAD (of which there were few changes).
0.9h-r1 understands a c++ USE flag which will cause ECL to be built with the c++ compiler. Looks like it works. I don't have test code for sockets, though, so all I can say is, that it compiles. Thank you. Created attachment 79820 [details]
ecls file list
This is the result of running "equery files ecls". Is it normal?
That is odd, but I can offer a theory -- 15 Feb 2006; Matthew Kennedy <mkennedy@gentoo.org> files/0.9h-sockets-c++-gentoo.patch: Fixed a problem where CVS keywords in patch get changed by repoman commit which caused the patch to fail to apply. Although I didn't experience such an equery files result, perhaps you emerged ecl while that problem existed in portage. Try emerge sync and then re-emerge ecl. Does the equery files output persist? |