i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I.. -I../lib -I../api -I../db -I../client -I../tools -I../sched -I../lib/mac -pthread -I/usr/include/mysql -DHAVE_ERRNO_AS_DEFINE=1 -pthread -march=prescott -O2 -ggdb -O3 -funroll-loops -fforce-addr -ffast-math -march=i486 -mtune=generic -c -o handle_request.o handle_request.cpp handle_request.cpp: In function ‘int lock_sched()’: handle_request.cpp:138: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’, declared with attribute warn_unused_result handle_request.cpp: In function ‘bool requesting_work()’: handle_request.cpp:1175: error: ‘coproc_cuda’ was not declared in this scope make[2]: *** [handle_request.o] Error 1 The same happens if I manually try to make the sched_send.o target in the sched directory. There are two headers in the client directory, sim.h and client_state.h, which would declare that symbol, but neither seems to get included. As I was building with the cuda USE flag unset, I'm a bit surprised to find a symbol referring to cuda gets used, but I haven't dug into this. Portage 2.2_rc42 (default/linux/x86/2008.0/desktop, gcc-4.4.1, glibc-2.10.1-r0, 2.6.30-gentoo-r5 i686) ================================================================= System uname: Linux-2.6.30-gentoo-r5-i686-Intel-R-_Pentium-R-_4_CPU_3.00GHz-with-gentoo-2.0.1 Timestamp of tree: Mon, 28 Sep 2009 10:15:02 +0000 distcc 3.1 i686-pc-linux-gnu [disabled] ccache version 2.4 [enabled] app-shells/bash: 4.0_p33 dev-java/java-config: 2.1.9-r1 dev-lang/python: 2.6.2-r2, 3.1.1-r1 dev-python/pycrypto: 2.0.1-r8 dev-util/ccache: 2.4-r8 dev-util/cmake: 2.6.4-r2 sys-apps/baselayout: 2.0.1 sys-apps/openrc: 0.4.3-r3 sys-apps/sandbox: 2.1 sys-devel/autoconf: 2.13, 2.63-r1 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2, 1.11 sys-devel/binutils: 2.19.1-r1 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6a virtual/os-headers: 2.6.30-r1 ACCEPT_KEYWORDS="x86 ~x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=prescott -O2 -ggdb" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/4.3/env /usr/kde/4.3/share/config /usr/kde/4.3/shutdown /usr/share/config /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-march=prescott -O2 -ggdb" DISTDIR="/usr/portage/distfiles" FEATURES="assume-digests ccache collision-protect distlocks fixpackages parallel-fetch preserve-libs protect-owned sandbox sfperms splitdebug strict unmerge-logs unmerge-orphans userfetch" GENTOO_MIRRORS="http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ http://ftp.uni-erlangen.de/pub/mirrors/gentoo http://mirror.switch.ch/ftp/mirror/gentoo/" LANG="de_DE.utf8" LDFLAGS="-Wl,--as-needed" LINGUAS="en de en_US en_GB" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/"
Post complete build.log please.
Btw it should build cuda support everytime, it does not have any configure option or deps. Also in these files cuda is mentioned: scarab@arcarius: ~/tmp/boinc-6.6.40 $ find ./ -name \*.h |while read file; do > [[ `cat ${file} |grep cuda |wc -l` -gt 0 ]] && echo ${file} > done ./client/client_types.h ./client/client_state.h ./client/work_fetch.h ./client/sim.h ./lib/gui_rpc_client.h ./lib/coproc.h ./sched/server_types.h ./sched/sched_config.h scarab@arcarius: ~/tmp/boinc-6.6.40 $ find ./ -name \*.cpp |while read file; do [[ `cat ${file} |grep cuda |wc -l` -gt 0 ]] && echo ${file}; done ./client/client_types.cpp ./client/sim.cpp ./client/work_fetch.cpp ./client/cs_scheduler.cpp ./client/app_start.cpp ./client/app.cpp ./client/cpu_sched.cpp ./client/rr_sim.cpp ./client/scheduler_op.cpp ./client/gui_rpc_server_ops.cpp ./client/client_state.cpp ./client/cs_statefile.cpp ./lib/gui_rpc_client_ops.cpp ./lib/coproc.cpp ./clientgui/AsyncRPC.cpp ./clientgui/DlgItemProperties.cpp ./sched/sched_plan.cpp ./sched/sched_config.cpp ./sched/handle_request.cpp ./sched/sched_send.cpp
Created attachment 205646 [details] build log
(In reply to comment #2) > Btw it should build cuda support everytime, it does not have any configure > option or deps. I see, so it's a runtime thing only. > scarab@arcarius: ~/tmp/boinc-6.6.40 $ find ./ -name \*.h |while read file; do > > [[ `cat ${file} |grep cuda |wc -l` -gt 0 ]] && echo ${file} > > done I'd have written this simply as "find . -name \*.h | xargs grep -l cuda", but I'll have to agree this is a bit off topic... I take it the build does succeed for you. Can you compile boinc and then take the g++ command used to compile handle_request.cpp, change "-c" to "-E" and "-o handle_request.o" to "-o handle_request.pp.cpp", and run the resulting command manually? That should give us the preprocessed form of the handle_request.cpp file on a system where it does compile. We could look at this to see if coproc_cuda gets delcared, and if so, determine the chain of include files that lead to this declaration. If it doesn't get included, I assume my compiler is more strict than yours, and determining the reason might prove valuable.
Created attachment 205650 [details, diff] applying changes from boinc repo
Added to main tree. Thanks for the patch.