I currently have eix-0.14.0 installed, which built correctly. With 0.14.1, however, I get: source='eix.cc' object='eix.o' libtool=no \ DEPDIR=.deps depmode=sgi /opt/portage/bin/bash ../config/depcomp \ CC -DHAVE_CONFIG_H -I. -I.. -I/opt/portage/usr/include -DSYSCONFDIR=\"/opt/portage/etc\" -J2 -O2 -n32 -mips4 -r14000 -float_const -use_readonly_const -TARG:isa=mips4:platform=ip35:processor=r14000 -TENV:zeroinit_in_bss=ON -OPT:fast_io=ON:Olimit=8192:reorg_common=ON:swp=ON -LNO:auto_dist=ON:fusion_peeling_limit=8:gather_scatter=2 -diag_error 1035 -FE:eliminate_duplicate_inline_copies:template_in_elf_section -woff 1174,1183,1185,1552,3968,3970 -c -o eix.o eix.cc cc-1460 CC: WARNING File = ./eixTk/formated.h, Line = 145 Function function "eix::format::goto_next_spec" is redeclared "inline" after being called. inline void format::goto_next_spec() ^ cc-1020 CC: ERROR File = ./portage/packagesets.h, Line = 40 The identifier "find" is undefined. { return (find(begin(), end(), i) != end()); } ^ cc-1209 CC: WARNING File = ./eixTk/formated.h, Line = 139 The controlling expression is constant. assert(! "unknown specifier"); ^ A template was detected during header processing. instantiation of "eix::format &eix::format::operator%(const std::basic_string<char, std::char_traits<char>, std::allocator<char>>::value_type &)" at line 52 of "./eixTk/exceptions.h" instantiation of "ExBasic &ExBasic::operator%(const std::basic_string<char, std::char_traits<char>, std::allocator<char>>::value_type &)" at line 181 of "./eixTk/ansicolor.h" 1 error detected in the compilation of "eix.cc". make[2]: *** [eix.o] Error 2 make[2]: Leaving directory `/usr/opt/portage/var/tmp/portage/app-portage/eix-0.14.1/work/eix-0.14.1/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/opt/portage/var/tmp/portage/app-portage/eix-0.14.1/work/eix-0.14.1' make: *** [all] Error 2 * ERROR: app-portage/eix-0.14.1 failed: * emake failed * * Call stack: * ebuild.sh: 49: <call src_compile> * environment: 92: emake || die "emake failed" emerge --info: !!! No gcc found. You probably need to 'source /etc/profile' !!! to update the environment of this terminal and possibly !!! other terminals also. Portage 2.2.00.11700-prefix (default-prefix/irix/6.5/mips, [unavailable], unavailable, 6.5 IP35) ================================================================= System uname: IRIX-6.5-IP35-mips-32bit Timestamp of tree: Thu, 23 Oct 2008 12:21:29 +0000 app-shells/bash: 3.2_p39 dev-lang/python: 2.5.2-r8 sys-devel/autoconf: 2.63 sys-devel/automake: 1.10.1-r1 sys-devel/libtool: 1.5.26 ACCEPT_KEYWORDS="mips-irix ppc-macos sparc-solaris x86-freebsd x86-solaris ~mips-irix ~ppc-macos ~sparc-solaris ~x86-freebsd ~x86-solaris" CBUILD="mips-sgi-irix6.5" CFLAGS="-c99 -O2 -n32 -mips4 -r14000 -float_const -use_readonly_const -TARG:isa=mips4:platform=ip35:processor=r14000 -TENV:zeroinit_in_bss=ON -OPT:fast_io=ON:Olimit=8192:reorg_common=ON:swp=ON -LNO:auto_dist=ON:fusion_peeling_limit=8:gather_scatter=2 -diag_error 1035 -woff 1174,1183,1185,1552,3968,3970" CHOST="mips-sgi-irix6.5" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/revdep-rebuild /etc/terminfo" CPPFLAGS=" -I/opt/portage/usr/include" CXXFLAGS="-J2 -O2 -n32 -mips4 -r14000 -float_const -use_readonly_const -TARG:isa=mips4:platform=ip35:processor=r14000 -TENV:zeroinit_in_bss=ON -OPT:fast_io=ON:Olimit=8192:reorg_common=ON:swp=ON -LNO:auto_dist=ON:fusion_peeling_limit=8:gather_scatter=2 -diag_error 1035 -FE:eliminate_duplicate_inline_copies:template_in_elf_section -woff 1174,1183,1185,1552,3968,3970 " DISTDIR="/opt/portage/usr/portage/distfiles" EPREFIX="/opt/portage" FEATURES="collision-protect distlocks fixpackages nostrip parallel-fetch preserve-libs protect-owned sfperms strict test unmerge-orphans userfetch userpriv" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" LANG="en_GB" LDFLAGS="-Wl,-s,-x,-n32,-mips4,-rdata_shared,-allow_jump_at_eop,-rpath,/opt/portage/usr/lib:/opt/portage/lib -L/opt/portage/usr/lib -L/opt/portage/lib" LINGUAS="en en_GB" PKGDIR="/opt/portage/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/opt/portage/var/tmp" PORTDIR="/opt/portage/usr/portage" PORTDIR_OVERLAY="/opt/portage/usr/local/portage" SYNC="rsync://rsync.prefix.freens.org/gentoo-portage-prefix" USE="X acl bash-completion berkdb bzip2 cracklib crypt cscope expat gdbm iconv ipv6 ithreads midi mips-irix ncurses nls openmp pcre perl png prefix python readline slang sqlite sqlite3 ssl tcl test threads unicode urandom vim-pager vim-syntax xprint zlib" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="IRIX" INPUT_DEVICES="keyboard mouse" KERNEL="IRIX" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_GB" USERLAND="GNU" Unset: CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Created attachment 169610 [details, diff] Fix various compilation issues I cannot understand why it compiled previously: In the corresponding code passages nothing has changed. Maybe you have changed the compiler recently? Please try whether the attached patch fixes the problems (and if not, please post the new error messages).
Created attachment 169678 [details, diff] Previous patch with a stupid typo fixed
I'm not aware of anything on the system having changed recently save prefix package updates. To confirm this, I rebuild eix-0.14.0 which again it succeeded, albeit with very similar warnings - but it doesn't look as if a '-Wall' is creeping in, o I'm not sure why this is. With the patch, the new error is: cc-1020 CC: ERROR File = ./eixTk/formated.h, Line = 87 The identifier "string" is undefined. assert(string(s) == "unknown specifier"); ^ A template was detected during header processing. instantiation of "eix::format &eix::format::operator%(const std::basic_string<char, std::char_traits<char>, std::allocator<char>>::value_type &)" at line 52 of "./eixTk/exceptions.h" instantiation of "ExBasic &ExBasic::operator%(const std::basic_string<char, std::char_traits<char>, std::allocator<char>>::value_type &)" at line 181 of "./eixTk/ansicolor.h" 1 error detected in the compilation of "eix.cc". (I tried prefixing 'string' with 'std::', but this didn't help. You can tell I'm not a C++ coder ;)
Ah! I was was right then :) Unfortunately, it's still not happy: cc-1262 CC: ERROR File = ./eixTk/formated.h, Line = 87 No instance of constructor "std::basic_string<char, std::char_traits<char>, std::allocator<char>>::basic_string" matches the argument list. The argument types are: (const std::basic_string<char, std::char_traits<char>, std::allocator<char>>::value_type ). assert(std::string(s) == "unknown specifier"); ^ A template was detected during header processing. instantiation of "eix::format &eix::format::operator%(const std::basic_string<char, std::char_traits<char>, std::allocator<char>>::value_type &)" at line 52 of "./eixTk/exceptions.h" instantiation of "ExBasic &ExBasic::operator%(const std::basic_string<char, std::char_traits<char>, std::allocator<char>>::value_type &)" at line 181 of "./eixTk/ansicolor.h" 1 error detected in the compilation of "eix.cc".
Apparently I had tested this patch only with assign() disabled :( Currently, I have no access to my system, but to my surprise a quick search gave that there is indeed no string constructor for char but only for (int,char). So the line should actually be assert(std::string(1, s) == "unknown specifier"); (yes, I know it's a silly line anyway - it is just to work around the compiler message that constant expressions are not wanted in assert).
cc-1262 CC: ERROR File = ./eixTk/formated.h, Line = 87 No instance of constructor "std::basic_string<char, std::char_traits<char>, std::allocator<char>>::basic_string" matches the argument list. The argument types are: (int, const std::string). assert(std::string(1, s) == "unknown specifier"); ^ A template was detected during header processing. instantiation of "eix::format &eix::format::operator%(const std::string &)" at line 52 of "./eixTk/exceptions.h" instantiation of "ExBasic &ExBasic::operator%(const std::string &)" at line 120 of "search/packagetest.cc" 1 error detected in the compilation of "search/packagetest.cc". ... so I commented out the problematic line and the one immediately above, and it works without a single warning!
Just keep the assert the way it was in the original source. It's just a warning, not an actual error.
Created attachment 169722 [details, diff] The hopefully now working patch for eix-0.14.1 and eix-0.14.2 (In reply to comment #7) > Just keep the assert the way it was in the original source. It's just a > warning, not an actual error. Yes, but I prefer to avoid such warnings if possible. I have now a new personal record: Three mistakes in one constructor call :) The last mistake was to confuse the variable name (s instead of m_spec). I attached the fix of the fix's fix so that people can use it without reading though the whole thread. It should work for eix-0.14.1 and eix-0.14.2 In eix svn trunk (>=eix-0.14.3) there is now a different "solution" since I cleaned/moved some code anyway. If you find time it would be nice if you could test it on IRIX, too.
New problems with eix-0.14.2: cc-1460 CC: WARNING File = ./eixTk/formated.h, Line = 145 Function function "eix::format::goto_next_spec" is redeclared "inline" after being called. inline void format::goto_next_spec() ^ cc-1209 CC: WARNING File = ./eixTk/formated.h, Line = 139 The controlling expression is constant. assert(! "unknown specifier"); ^ detected during instantiation of "eix::format &eix::format::operator%(const std::string &)" at line 75 of "varsreader.cc" cc-1209 CC: WARNING File = ./eixTk/formated.h, Line = 139 The controlling expression is constant. assert(! "unknown specifier"); ^ A template was detected during header processing. instantiation of "eix::format &eix::format::operator%(const char *const &)" at line 52 of "./eixTk/exceptions.h" instantiation of "ExBasic &ExBasic::operator%(const char *const &)" at line 441 of "varsreader.cc" source='database/io.cc' object='database/io.o' libtool=no \ DEPDIR=.deps depmode=sgi /opt/portage/bin/bash ../config/depcomp \ CC -DHAVE_CONFIG_H -I. -I.. -I/opt/portage/usr/include -DSYSCONFDIR=\"/opt/portage/etc\" -J2 -O2 -n32 -woff 1174,1183,1185,1552,3968,3970 -c -o database/io.o database/io.cc cc-1460 CC: WARNING File = ./eixTk/formated.h, Line = 145 Function function "eix::format::goto_next_spec" is redeclared "inline" after being called. inline void format::goto_next_spec() ^ cc-1020 CC: ERROR File = ./portage/packagesets.h, Line = 40 The identifier "find" is undefined. { return (find(begin(), end(), i) != end()); } ^ 1 error detected in the compilation of "database/io.cc". make[2]: *** [database/io.o] Error 2 make[2]: Leaving directory `/usr/opt/portage/var/tmp/portage/app-portage/eix-0.14.2/work/eix-0.14.2/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/opt/portage/var/tmp/portage/app-portage/eix-0.14.2/work/eix-0.14.2' make: *** [all] Error 2 * ERROR: app-portage/eix-0.14.2 failed: * emake failed * * Call stack: * ebuild.sh: 49: <call src_compile> * environment:743: emake || die "emake failed"
(In reply to comment #9) > New problems with eix-0.14.2: No, it is is exactly the problem. eix-0.14.2 was released on the days this bug was opened, so it does not contain the patch yet.
Sorry, so it is. Long day ;) /me gets coat...
Since eix-0.15.0 containing the patches has now entered the (x86) tree, I am closing this bug. If eix-0.15.0 has further compilation problems (which is quite possible due to a lot of internal code changes), please open a new bug.