Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 122236 - Can't specify C++ build for dev-lisp/ecls and dev-lisp/ecls-cvs
Summary: Can't specify C++ build for dev-lisp/ecls and dev-lisp/ecls-cvs
Status: VERIFIED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: All Linux
: High enhancement (vote)
Assignee: Common Lisp Bugs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-02-09 04:12 UTC by Ivan Toshkov
Modified: 2006-02-15 13:48 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
untested patch (sockets-cxx.patch,664 bytes, patch)
2006-02-13 14:49 UTC, Ivan Toshkov
Details | Diff
0.9h-sockets-c++-gentoo.patch (0.9h-sockets-c++-gentoo.patch,3.41 KB, patch)
2006-02-14 10:27 UTC, Matthew Kennedy (RETIRED)
Details | Diff
ecls file list (ecls-files.txt,660 bytes, text/plain)
2006-02-14 22:16 UTC, Ivan Toshkov
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ivan Toshkov 2006-02-09 04:12:40 UTC
Add support for the --with-cxx configure option.  Probably the 'c++' USE can be reused here, because it is obeyed in boehm-gc. (At least in versions 6.3 and 6.4. It seems to be dropped in the latter...)
Comment 1 Matthew Kennedy (RETIRED) gentoo-dev 2006-02-13 11:41:38 UTC
ok. seems like a reasonable request.
Comment 2 Matthew Kennedy (RETIRED) gentoo-dev 2006-02-13 11:48:15 UTC
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*)'
...
Comment 3 Ivan Toshkov 2006-02-13 14:03:43 UTC
(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.
Comment 4 Ivan Toshkov 2006-02-13 14:49:50 UTC
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.
Comment 5 Matthew Kennedy (RETIRED) gentoo-dev 2006-02-14 10:25:41 UTC
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.
Comment 6 Matthew Kennedy (RETIRED) gentoo-dev 2006-02-14 10:27:38 UTC
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).
Comment 7 Matthew Kennedy (RETIRED) gentoo-dev 2006-02-14 15:03:21 UTC
0.9h-r1 understands a c++ USE flag which will cause ECL to be built with the c++ compiler.
Comment 8 Ivan Toshkov 2006-02-14 16:23:24 UTC
Looks like it works.  I don't have test code for sockets, though, so all I can say is, that it compiles.

Thank you.
Comment 9 Ivan Toshkov 2006-02-14 22:16:31 UTC
Created attachment 79820 [details]
ecls file list

This is the result of running "equery files ecls".  Is it normal?
Comment 10 Matthew Kennedy (RETIRED) gentoo-dev 2006-02-15 13:48:18 UTC
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?