Newer versions of the dependencies showed up in Portage. They are libcoyotl and libevocosm. Revdep-rebuild recognized that acovea needed to be rebuilt. Unfortunately, that rebuild creashes: DreamScape ~ # emerge -v acovea These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] app-benchmarks/acovea-5.1.1 0 kB Total: 1 package (1 reinstall), Size of downloads: 0 kB >>> Verifying ebuild Manifests... >>> Emerging (1 of 1) app-benchmarks/acovea-5.1.1 to / * libacovea-5.1.1.tar.gz RMD160 SHA1 SHA256 size ;-) ... [ ok ] * checking ebuild checksums ;-) ... [ ok ] * checking auxfile checksums ;-) ... [ ok ] * checking miscfile checksums ;-) ... [ ok ] * checking libacovea-5.1.1.tar.gz ;-) ... [ ok ] >>> Unpacking source... >>> Unpacking libacovea-5.1.1.tar.gz to /var/tmp/portage/app-benchmarks/acovea-5.1.1/work * Applying acovea-5.1.1-asneeded.patch ... [ ok ] * Applying acovea-5.1.1-free-fix.patch ... [ ok ] * Automake used for the package (1.9.6) differs from * the installed version (1.10.1). * Running eautoreconf in '/var/tmp/portage/app-benchmarks/acovea-5.1.1/work/libacovea-5.1.1' ... * Running aclocal ... [ ok ] * Running libtoolize --copy --force --automake ... [ ok ] * Running aclocal ... [ ok ] * Running autoconf ... [ ok ] * Running automake --add-missing --copy ... [ ok ] * Running elibtoolize in: libacovea-5.1.1 * Applying install-sh-1.5.4.patch ... * Applying portage-1.5.10.patch ... * Applying sed-1.5.6.patch ... >>> Source unpacked. >>> Compiling source in /var/tmp/portage/app-benchmarks/acovea-5.1.1/work/libacovea-5.1.1 ... * econf: updating libacovea-5.1.1/config.guess with /usr/share/gnuconfig/config.guess * econf: updating libacovea-5.1.1/config.sub with /usr/share/gnuconfig/config.sub ./configure --prefix=/usr --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 --build=x86_64-pc-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether x86_64-pc-linux-gnu-gcc accepts -g... yes checking for x86_64-pc-linux-gnu-gcc option to accept ISO C89... none needed checking for style of include used by make... GNU checking dependency style of x86_64-pc-linux-gnu-gcc... gcc3 checking for x86_64-pc-linux-gnu-g++... x86_64-pc-linux-gnu-g++ checking whether we are using the GNU C++ compiler... yes checking whether x86_64-pc-linux-gnu-g++ accepts -g... yes checking dependency style of x86_64-pc-linux-gnu-g++... gcc3 checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by x86_64-pc-linux-gnu-gcc... /usr/x86_64-pc-linux-gnu/bin/ld checking if the linker (/usr/x86_64-pc-linux-gnu/bin/ld) is GNU ld... yes checking for /usr/x86_64-pc-linux-gnu/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognize dependent libraries... pass_all checking how to run the C preprocessor... x86_64-pc-linux-gnu-gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking how to run the C++ preprocessor... x86_64-pc-linux-gnu-g++ -E checking for x86_64-pc-linux-gnu-g77... no checking for x86_64-pc-linux-gnu-xlf... no checking for x86_64-pc-linux-gnu-f77... no checking for x86_64-pc-linux-gnu-frt... no checking for x86_64-pc-linux-gnu-pgf77... no checking for x86_64-pc-linux-gnu-cf77... no checking for x86_64-pc-linux-gnu-fort77... no checking for x86_64-pc-linux-gnu-fl32... no checking for x86_64-pc-linux-gnu-af77... no checking for x86_64-pc-linux-gnu-xlf90... no checking for x86_64-pc-linux-gnu-f90... no checking for x86_64-pc-linux-gnu-pgf90... no checking for x86_64-pc-linux-gnu-pghpf... no checking for x86_64-pc-linux-gnu-epcf90... no checking for x86_64-pc-linux-gnu-gfortran... x86_64-pc-linux-gnu-gfortran checking whether we are using the GNU Fortran 77 compiler... yes checking whether x86_64-pc-linux-gnu-gfortran accepts -g... yes checking the maximum length of command line arguments... 98304 checking command to parse /usr/bin/nm -B output from x86_64-pc-linux-gnu-gcc object... ok checking for objdir... .libs checking for x86_64-pc-linux-gnu-ar... x86_64-pc-linux-gnu-ar checking for x86_64-pc-linux-gnu-ranlib... x86_64-pc-linux-gnu-ranlib checking for x86_64-pc-linux-gnu-strip... x86_64-pc-linux-gnu-strip checking for correct ltmain.sh version... yes checking if x86_64-pc-linux-gnu-gcc supports -fno-rtti -fno-exceptions... no checking for x86_64-pc-linux-gnu-gcc option to produce PIC... -fPIC checking if x86_64-pc-linux-gnu-gcc PIC flag -fPIC works... yes checking if x86_64-pc-linux-gnu-gcc static flag -static works... yes checking if x86_64-pc-linux-gnu-gcc supports -c -o file.o... yes checking whether the x86_64-pc-linux-gnu-gcc linker (/usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by x86_64-pc-linux-gnu-g++... /usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64 checking if the linker (/usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the x86_64-pc-linux-gnu-g++ linker (/usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64) supports shared libraries... yes checking for x86_64-pc-linux-gnu-g++ option to produce PIC... -fPIC checking if x86_64-pc-linux-gnu-g++ PIC flag -fPIC works... yes checking if x86_64-pc-linux-gnu-g++ static flag -static works... yes checking if x86_64-pc-linux-gnu-g++ supports -c -o file.o... yes checking whether the x86_64-pc-linux-gnu-g++ linker (/usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so (cached) (cached) checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for x86_64-pc-linux-gnu-gfortran option to produce PIC... -fPIC checking if x86_64-pc-linux-gnu-gfortran PIC flag -fPIC works... yes checking if x86_64-pc-linux-gnu-gfortran static flag -static works... yes checking if x86_64-pc-linux-gnu-gfortran supports -c -o file.o... yes checking whether the x86_64-pc-linux-gnu-gfortran linker (/usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so (cached) (cached) checking how to hardcode library paths into programs... immediate checking whether build environment is sane... yes checking for ANSI C header files... (cached) yes checking for stdbool.h that conforms to C99... yes checking for _Bool... no checking for stdint.h... (cached) yes checking for unistd.h... (cached) yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking libcoyotl/prng.h usability... yes checking libcoyotl/prng.h presence... yes checking for libcoyotl/prng.h... yes checking libcoyotl/mwc1038.h usability... yes checking libcoyotl/mwc1038.h presence... yes checking for libcoyotl/mwc1038.h... yes checking libcoyotl/mtwister.h usability... yes checking libcoyotl/mtwister.h presence... yes checking for libcoyotl/mtwister.h... yes checking libevocosm/evocosm.h usability... yes checking libevocosm/evocosm.h presence... yes checking for libevocosm/evocosm.h... yes checking expat.h usability... yes checking expat.h presence... yes checking for expat.h... yes configure: creating ./config.status config.status: creating Makefile config.status: creating acovea.pc config.status: creating libacovea/Makefile config.status: creating cmdline/Makefile config.status: executing depfiles commands Making all in libacovea make[1]: Entering directory `/var/tmp/portage/app-benchmarks/acovea-5.1.1/work/libacovea-5.1.1/libacovea' /bin/sh ../libtool --tag=CXX --mode=compile x86_64-pc-linux-gnu-g++ -I. -I. -I. -I.. -DACOVEA_VERSION=\"5.1.1\" -DACOVEA_CONFIG_DIR=\""/usr/share/libacovea/config/"\" -DACOVEA_BENCHMARK_DIR=\""/usr/share/libacovea/benchmarks/"\" -march=athlon64 -O2 -MT acovea.lo -MD -MP -MF .deps/acovea.Tpo -c -o acovea.lo acovea.cpp mkdir .libs x86_64-pc-linux-gnu-g++ -I. -I. -I. -I.. -DACOVEA_VERSION=\"5.1.1\" -DACOVEA_CONFIG_DIR=\"/usr/share/libacovea/config/\" -DACOVEA_BENCHMARK_DIR=\"/usr/share/libacovea/benchmarks/\" -march=athlon64 -O2 -MT acovea.lo -MD -MP -MF .deps/acovea.Tpo -c acovea.cpp -fPIC -DPIC -o .libs/acovea.o acovea.cpp: In member function 'virtual void acovea::option::randomize()': acovea.cpp:89: error: 'class libevocosm::prng' has no member named 'get_rand_real2' acovea.cpp: In constructor 'acovea::tuning_option::tuning_option(const std::string&, bool, int, int, int, int, char)': acovea.cpp:249: error: 'class libevocosm::prng' has no member named 'get_rand_index' acovea.cpp: In member function 'virtual void acovea::tuning_option::mutate()': acovea.cpp:307: error: 'class libevocosm::prng' has no member named 'get_rand_real2' acovea.cpp:312: error: 'class libevocosm::prng' has no member named 'get_rand_real2' acovea.cpp: In constructor 'acovea::enum_option::enum_option(const std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool)': acovea.cpp:338: error: 'class libevocosm::prng' has no member named 'get_rand_index' acovea.cpp: In constructor 'acovea::enum_option::enum_option(const char**, size_t, bool)': acovea.cpp:347: error: 'class libevocosm::prng' has no member named 'get_rand_index' acovea.cpp: In constructor 'acovea::enum_option::enum_option(const char*, bool)': acovea.cpp:372: error: 'class libevocosm::prng' has no member named 'get_rand_index' acovea.cpp: In member function 'virtual void acovea::enum_option::randomize()': acovea.cpp:410: error: 'class libevocosm::prng' has no member named 'get_rand_real2' acovea.cpp:413: error: 'class libevocosm::prng' has no member named 'get_rand_index' acovea.cpp: In member function 'virtual void acovea::enum_option::mutate()': acovea.cpp:420: error: 'class libevocosm::prng' has no member named 'get_rand' acovea.cpp:438: error: 'class libevocosm::prng' has no member named 'get_rand_index' acovea.cpp: In member function 'acovea::chromosome acovea::application::breed(const acovea::chromosome&, const acovea::chromosome&) const': acovea.cpp:918: error: 'class libevocosm::prng' has no member named 'get_rand' acovea.cpp: In member function 'void acovea::application::mutate(acovea::chromosome&, double) const': acovea.cpp:934: error: 'class libevocosm::prng' has no member named 'get_rand_real2' acovea.cpp: In member function 'virtual std::vector<acovea::acovea_organism, std::allocator<acovea::acovea_organism> > acovea::acovea_reproducer::breed(const std::vector<acovea::acovea_organism, std::allocator<acovea::acovea_organism> >&, size_t)': acovea.cpp:1099: error: 'class libevocosm::prng' has no member named 'get_rand_real2' acovea.cpp: In function 'double run_test(const std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::string, libevocosm::listener&, acovea::optimization_mode)': acovea.cpp:1221: warning: deprecated conversion from string constant to 'char*' make[1]: *** [acovea.lo] Error 1 make[1]: Leaving directory `/var/tmp/portage/app-benchmarks/acovea-5.1.1/work/libacovea-5.1.1/libacovea' make: *** [all-recursive] Error 1 * * ERROR: app-benchmarks/acovea-5.1.1 failed. * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 2580: Called die * The specific snippet of code: * emake || die "emake failed"; * The die message: * emake failed * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/app-benchmarks/acovea-5.1.1/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/app-benchmarks/acovea-5.1.1/temp/environment'. * * Messages for package app-benchmarks/acovea-5.1.1: * * ERROR: app-benchmarks/acovea-5.1.1 failed. * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 2580: Called die * The specific snippet of code: * emake || die "emake failed"; * The die message: * emake failed * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/app-benchmarks/acovea-5.1.1/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/app-benchmarks/acovea-5.1.1/temp/environment'. * DreamScape ~ #
Created attachment 151576 [details] emerge --info from my system
The same issue here, but I think the problem is due to dev-libs/libevocosm-3.3.0. Since I've upgraded to dev-libs/libevocosm-3.3.0, acovea need to be reemerged but doesn't compile.
Created attachment 154903 [details, diff] Patch to fix compilation errors Here is a patch against version 5.1.1 to fix the compile errors related to changes in the API of libevocosm. Confirmed locally to compile and work. Note that these errors occur with both the stable and unstable versions of libevocosm in portage; there is currently no way to actually compile this package (!)
I didn't do much research into the actual problem last night, so for clarification: There are two problems here; acovea 4.0.0 (which is currently stable) fails to compile with the stable version of libcoyotl (3.1.0), which is too new. Version 4.0.0 will work only with libcoyotl 3.0.1. This means that the stable versions of both packages will result in acovea failing to compile, obviously a serious problem. acovea 5.1.1 (currently ~x86) is built to work with libcoyotl 3.1.0 (stable, latest) and libevocosm 3.1.0 (~x86). It will NOT work with libevocosm 2.5.2 (stable) or with libevocosm 3.3.0 (~x86). There are a few solutions here; 4.0.0 could be fixed (by blocking/masking libcoyotl 3.1.0, to force the use of the older 3.0.1), but acovea 4.0.0 is very old now, and that solution doesn't really make sense to me, since it involves using even older versions of the packages. The other options would be to fix and stabilize acovea 5.1.1 and stabilizing libevocosm 3.1.0 or 3.3.0. This could be done either by blocking libevocosm 3.3.0 and unmasking 3.1.0, or by patching acovea to work properly with libevocosm 3.3.0, and stabilizing that as well. Patching is my preferred solution. The patch is attached in my previous comment. It simply changes the names (and in two cases, slightly changes the method but retains the same functionality) of the randomness functions in libevocosm to their counterparts in version 3.3.0. The fix would be to apply this patch to acovea 5.1.1 and have it depend on libevocosm >=3.3.0. I intend to bring this patch to upstream as well. Whichever solution is chosen, this needs to be dealt with - currently there is no way to build either version of acovea in portage without strange manual masking or unmasking.
Patch added in cvs, Thanks Special(John Brooks).