Summary: | app-portage/eix-0.19.2 fails to compile on IRIX | ||
---|---|---|---|
Product: | Gentoo/Alt | Reporter: | Stuart Shelton <srcshelton> |
Component: | Prefix Support | Assignee: | Martin Väth <martin> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | prefix |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | IRIX | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
Fix for includes and ambiguity
Fix missing include in ebuild-exec |
Description
Stuart Shelton
2010-01-28 13:09:28 UTC
Created attachment 217763 [details, diff]
Fix for includes and ambiguity
Thanks for the report. Due to the reorganization of the includes it is not so
surprising that I forgot some, but I hope that this reorganization will help to
avoid such problems in future.
The ambiguity message is a bit surprising, since I did not expect that a 0
could be cast as a string::iterator
Does the attached patch fix all problems?
Well, at least with the patch we break in different places ;) CXX cache/common/ebuild_exec.o cc-1367 CC: ERROR File = cache/common/ebuild_exec.cc, Line = 142 A pointer to an incomplete class type is not allowed. if(!(base->portagesettings->export_portdir_overlay)) ^ cc-1323 CC: ERROR File = cache/common/ebuild_exec.cc, Line = 149 No operator "[]" matches these operands. The operand types are: PortageSettings [ const char [16] ]. env["PORTDIR_OVERLAY"] = (*(base->portagesettings))["PORTDIR_OVERLAY"].c_str(); ^ 2 errors detected in the compilation of "cache/common/ebuild_exec.cc". make[2]: *** [cache/common/ebuild_exec.o] Error 2 make[2]: Leaving directory `/usr/opt/gentoo/var/tmp/portage/app-portage/eix-0.19.2/work/eix-0.19.2/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/opt/gentoo/var/tmp/portage/app-portage/eix-0.19.2/work/eix-0.19.2' make: *** [all] Error 2 (The indicator on the second ERROR there is below the opening square-bracket of '["PORTDIR_OVERLAY"]') I'm not sure if this might help for the first of these issues: http://forums.nekochan.net/viewtopic.php?f=15&t=1574161&start=15 Created attachment 217832 [details, diff]
Fix missing include in ebuild-exec
Thanks. I guess this is just another missing #include.
(The code which needs the include is not compiled on system which have setenv(),
and therefore I did not test it...)
The attached patch (together with the previous one) should now make eix compile
or lead to the next error message... :)
Looks as if there's one last instance: src/cache/cdb/cdb.cc also needs <unistd.h> for close(). After that, the only (non-fatal) build warning left is: CXX versionsort.o cc-3604 CC: WARNING File = versionsort.cc, Line = 43 missing return statement at end of non-void function "parse_version" } ^ But with that small caveat, all seems fine! :) (In reply to comment #4) > missing return statement at end of non-void function "parse_version" The compiler does not understand that after exit() no return is needed; I restructured the corresponding code so that exit() is in a conditional. All changes discussed so far are now in eix svn trunk. Thanks for your help. 0.20.0 is in the tree, will hit prefix tree in a few. Thanks. 0.20.0 built and worked correctly without modification. Thanks! |