Remove outdated stuff (e.g. VS has snprintf() now).
I'd like to have a clean build (no warnings) on both VS and gcc.
Currently VS has a bunch of printf code warnings in
diagnostics.cpp, diagnostics_win.cpp, and stackwalker_win.cpp.
These should be easy to fix.
gcc has a bunch of sprintf buffer-size warnings, not easy to fix.
There are lots of warnings in zip (to be fixed with vcpkg?)
and in old graphics code.
NO_PER_THREAD_LOCALE has been replaced by HAVE__CONFIGTHREADLOCALE and
HAVE_USELOCALE.
Also remove HAVE_DECL__CONFIGTHREADLOCALE which was used only for
NO_PER_THREAD_LOCALE.
VS lets you choose the compiler warning level, 0 to 4.
Higher is good because compiler warnings often indicate bugs.
However, some warnings are noise, and having a lot of them is bad
because they conceal the important ones.
As an example, a recent update to VS2010 causes it to spew warnings of the form
"function _strdup() is deprecated; use _strdup() instead.
So the new policy is:
- everything compiles with warning level 4
- in boinc_win.h we use #pragmas to suppress 3 specific warnings
that occur a lot in our code, and are not bugs:
- the _function names as described above
- constant conditional expression (like while(1))
- conversion from int to char
And the goal is to build everything with zero warnings
except from outside code like zip.
We're pretty close to that.
The project files for other VS versions should be modified
to also use level 4 everywhere.
This will allow the core client to kill VirtualBox VM's launched indirectly by vboxwrapper. Vboxwrapper launches vboxsvc.exe which launches vboxheadless.exe. This should also take care of the core client being able to kill child processes of the regular wrapper as well. I don't know the full scope of this type of issue? Maybe the default ACLs for a process changed within the last couple of versions of Windows.
- fixed whitespace error in Makefile.mingw
- build and install svn_version.h in Makefile.mingw
- fixed boinc_win.h for MinGW gcc-4
- not sure why client_msgs.h was ever included in procinfo_unix.cpp,
but in current code caused a nasty trail of includes breaking the
Linux build, so removed it
svn path=/trunk/boinc/; revision=22561
NOTE: I'll need to do a little more research and adjust the
diagnostics stuff later. I believe that the diagnostics
framework will now always report an unhandled C++ exception
for things like an Access Violation.
- client: On Windows, recover from an Access Violation if/when
the GPU functions access violate.
lib/
boinc_in.h
coproc.cpp
win_build/
*.vcproj
svn path=/trunk/boinc/; revision=19541
These cause problems when "read" is a member name, etc.
Do these #defines, conditioned on _MSC_VER,
in the files that actually need them.
- don't include boinc_win.h from parse.h.
principle of minimal inclusion
svn path=/trunk/boinc/; revision=18902
building in a Unicode enabled environment.
NOTE: For files that are shared between the core client and
the manager, it was simpliar to just call the ANSI versions
of the specific Windows API functions then to monkey with
all of the string handling code and convert between ANSI
and UCS-2 strings. CreateFile becomes CreateFileA instead
of the default of CreateFileW.
Down to 11 compile time errors from over 100.
clientgui/
BOINCBaseFrame.cpp
BOINCTaskBar.cpp
browser.cpp
browser.h
sg_StatImageLoader.cpp
lib/
boinc_win.h
diagnostics_win.cpp
filesys.cpp
gui_rpc_client_ops.cpp
proc_control.cpp
stackwalker_imports.h
stackwalker_win.cpp
str_util.cpp
util.cpp
win_util.cpp, .h
svn path=/trunk/boinc/; revision=17859
which of those files to include
- Modified MAC address check to work on some non-Linux unixes.
(mac_address.cpp)
- Added suggested change to "already attached to project" checking.
(ProjectInfoPage.cpp)
- changed includes of standard c header files to their c++ equivalents
(i.e. replaced <stdio.h> with <cstdio>) for namespace protection.
- replaced "using namespace std;" with more explicit "using std::function" in
several files.
- Fixed bug in checking whether the os is OS/2 and added conditional OS_OS2
to the build environment. (boinc_platform.m4,configure.ac)
- Changed build environment to not use -nostandardlibs unless we are using
G++ and static linkage is specified. (configure.ac)
- Added makefiles and package building files for solaris CSW package manager.
- Fixed bug with attempting to find login name using logname. (configure.ac)
- Added ifdef HAVE_* protection around some include files commonly found in
sys.
- Added support for unified binary for x86_64/i686-pc-solaris.
(cs_platforms.cpp)
- generate_host_cpid() now uses MAC address on non-linux unix.
(hostinfo_network.cpp)
- Macro BOINC_SET_COMPILE_FLAGS now doesn't check gcc only flags on non-gcc
compilers. (boinc_set_compile_flags.m4)
- Library compiles no longer depend upon the library extension or require
the library to be prefixed with lib.
- More fixes for fcgi builds.
- Added declaration of "struct ether_addr" and ether_ntoa(). Have not yet
implemented ether_ntoa() for machines that don't have it, or where it is
buggy. (unix_util.h)
- Added FCGI::perror() which calls FCGI_perror(). (boinc_fcgi.{h,cpp})
- Fixed library Makefiles so that all required headers get installed.
svn path=/trunk/boinc/; revision=17388
- scheduler: fix bug in adaptive replication:
if send an unreplicated job to untrusted host,
set both wu.target_nresults and wu.min_quorum to app.target_nresults.
svn path=/trunk/boinc/; revision=15762
them, the default ACL limits read/write access to SYSTEM and boinc_master
when run in secure mode.
lib/
boinc_win.h
shmem.C
svn path=/trunk/boinc/; revision=14903
block for applications launched using the 'boinc_project' account.
Windows contains environment variables that describe username,
domain name, profile directory and even logon server.
- client: correctly parse domain name information from the
client_auth.xml file when a different account is used for
'boinc_master'.
- SCR/MGR: Add two API's to adjust the ACLs on the current users
desktop and windowstation so that graphics applications can
properly create controls and dialogs for applications
launched using 'boinc_project'.
client/
app_start.C
lib/
boinc_win.h
util.C, .h
lib/
win_util.C, .h
win_build/
boinc_cli_curl.vcproj
svn path=/trunk/boinc/; revision=14748