diff options
author | Christian Heimes <christian@cheimes.de> | 2007-12-08 15:33:56 (GMT) |
---|---|---|
committer | Christian Heimes <christian@cheimes.de> | 2007-12-08 15:33:56 (GMT) |
commit | 255f53bdb54a64b93035374ca4484ba0cc1b41e1 (patch) | |
tree | fdbd2aca3415d4f14435e402157e24b96c6de884 /PCbuild9 | |
parent | 226679ae095b70eb03505a817912097b8e816fb0 (diff) | |
download | cpython-255f53bdb54a64b93035374ca4484ba0cc1b41e1.zip cpython-255f53bdb54a64b93035374ca4484ba0cc1b41e1.tar.gz cpython-255f53bdb54a64b93035374ca4484ba0cc1b41e1.tar.bz2 |
Merged revisions 59376-59406 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r59377 | georg.brandl | 2007-12-06 01:24:23 +0100 (Thu, 06 Dec 2007) | 2 lines
Add another GHOP student to ACKS.
........
r59378 | raymond.hettinger | 2007-12-06 01:56:53 +0100 (Thu, 06 Dec 2007) | 5 lines
Fix Issue 1045.
Factor-out common calling code by simplifying the length_hint API.
Speed-up the function by caching the PyObject_String for the attribute lookup.
........
r59380 | georg.brandl | 2007-12-06 02:52:24 +0100 (Thu, 06 Dec 2007) | 2 lines
Diverse markup fixes.
........
r59383 | georg.brandl | 2007-12-06 10:45:39 +0100 (Thu, 06 Dec 2007) | 2 lines
Better re.split examples.
........
r59386 | christian.heimes | 2007-12-06 14:15:13 +0100 (Thu, 06 Dec 2007) | 2 lines
Fixed get_config_h_filename for Windows. Without the patch it can't find the pyconfig.h file inside a build tree.
Added several small unit tests for sysconfig.
........
r59387 | christian.heimes | 2007-12-06 14:30:11 +0100 (Thu, 06 Dec 2007) | 1 line
Silence more warnings, _CRT_NONSTDC_NO_DEPRECATE is already defined in pyconfig.h but several projects don't include it.
........
r59389 | christian.heimes | 2007-12-06 14:55:01 +0100 (Thu, 06 Dec 2007) | 1 line
Disabled one test that is failing on Unix
........
r59399 | christian.heimes | 2007-12-06 22:13:06 +0100 (Thu, 06 Dec 2007) | 8 lines
Several Windows related cleanups:
* Removed a #define from pyconfig.h. The macro was already defined a few lines higher.
* Fixed path to tix in the build_tkinter.py script
* Changed make_buildinfo.c to use versions of unlink and strcat which are considered safe by Windows (as suggested by MvL).
* Removed two defines from pyproject.vsprops that are no longer required. Both are defined in pyconfig.h and make_buildinfo.c doesn't use the unsafe versions any more (as suggested by MvL).
* Added some more information about PGO and the property files to PCbuild9/readme.txt.
Are you fine with the changes, Martin?
........
r59400 | raymond.hettinger | 2007-12-07 02:53:01 +0100 (Fri, 07 Dec 2007) | 4 lines
Don't have the docs berate themselves. Keep a professional tone.
If a todo is needed, put it in the tracker.
........
r59402 | georg.brandl | 2007-12-07 10:07:10 +0100 (Fri, 07 Dec 2007) | 3 lines
Increase unit test coverage of SimpleXMLRPCServer.
Written for GHOP by Turkay Eren.
........
r59406 | georg.brandl | 2007-12-07 16:16:57 +0100 (Fri, 07 Dec 2007) | 2 lines
Update to windows doc from Robert.
........
Diffstat (limited to 'PCbuild9')
-rw-r--r-- | PCbuild9/build_tkinter.py | 3 | ||||
-rw-r--r-- | PCbuild9/make_buildinfo.c | 26 | ||||
-rw-r--r-- | PCbuild9/pyproject.vsprops | 2 | ||||
-rw-r--r-- | PCbuild9/readme.txt | 15 |
4 files changed, 29 insertions, 17 deletions
diff --git a/PCbuild9/build_tkinter.py b/PCbuild9/build_tkinter.py index d76ea26..3e24d00 100644 --- a/PCbuild9/build_tkinter.py +++ b/PCbuild9/build_tkinter.py @@ -14,7 +14,7 @@ par = os.path.pardir TCL = "tcl8.4.16" TK = "tk8.4.16" -TIX = "Tix8.4.0" +TIX = "tix-8.4.0" #TIX = "Tix8.4.2" ROOT = os.path.abspath(os.path.join(here, par, par)) NMAKE = "nmake /nologo " @@ -53,6 +53,7 @@ def build(platform, clean): # TIX if True: + # python9.mak is available at http://svn.python.org os.chdir(os.path.join(ROOT, TIX, "win")) if clean: system(NMAKE + "/f python9.mak clean") diff --git a/PCbuild9/make_buildinfo.c b/PCbuild9/make_buildinfo.c index 4cebf45..22b9882 100644 --- a/PCbuild9/make_buildinfo.c +++ b/PCbuild9/make_buildinfo.c @@ -3,6 +3,8 @@ #include <sys/stat.h> #include <stdio.h> +#define CMD_SIZE 500 + /* This file creates the getbuildinfo.o object, by first invoking subwcrev.exe (if found), and then invoking cl.exe. As a side effect, it might generate PCBuild\getbuildinfo2.c @@ -23,7 +25,7 @@ int make_buildinfo2() { struct _stat st; HKEY hTortoise; - char command[500]; + char command[CMD_SIZE+1]; DWORD type, size; if (_stat(".svn", &st) < 0) return 0; @@ -40,11 +42,11 @@ int make_buildinfo2() type != REG_SZ) /* Registry corrupted */ return 0; - strcat(command, "bin\\subwcrev.exe"); + strcat_s(command, CMD_SIZE, "bin\\subwcrev.exe"); if (_stat(command+1, &st) < 0) /* subwcrev.exe not part of the release */ return 0; - strcat(command, "\" .. ..\\Modules\\getbuildinfo.c getbuildinfo2.c"); + strcat_s(command, CMD_SIZE, "\" .. ..\\Modules\\getbuildinfo.c getbuildinfo2.c"); puts(command); fflush(stdout); if (system(command) < 0) return 0; @@ -60,17 +62,17 @@ int main(int argc, char*argv[]) return EXIT_FAILURE; } if (strcmp(argv[1], "Release") == 0) { - strcat(command, "-MD "); + strcat_s(command, CMD_SIZE, "-MD "); } else if (strcmp(argv[1], "Debug") == 0) { - strcat(command, "-D_DEBUG -MDd "); + strcat_s(command, CMD_SIZE, "-D_DEBUG -MDd "); } else if (strcmp(argv[1], "ReleaseItanium") == 0) { - strcat(command, "-MD /USECL:MS_ITANIUM "); + strcat_s(command, CMD_SIZE, "-MD /USECL:MS_ITANIUM "); } else if (strcmp(argv[1], "ReleaseAMD64") == 0) { - strcat(command, "-MD "); - strcat(command, "-MD /USECL:MS_OPTERON "); + strcat_s(command, CMD_SIZE, "-MD "); + strcat_s(command, CMD_SIZE, "-MD /USECL:MS_OPTERON "); } else { fprintf(stderr, "unsupported configuration %s\n", argv[1]); @@ -78,14 +80,14 @@ int main(int argc, char*argv[]) } if ((do_unlink = make_buildinfo2())) - strcat(command, "getbuildinfo2.c -DSUBWCREV "); + strcat_s(command, CMD_SIZE, "getbuildinfo2.c -DSUBWCREV "); else - strcat(command, "..\\Modules\\getbuildinfo.c"); - strcat(command, " -Fogetbuildinfo.o -I..\\Include -I..\\PC"); + strcat_s(command, CMD_SIZE, "..\\Modules\\getbuildinfo.c"); + strcat_s(command, CMD_SIZE, " -Fogetbuildinfo.o -I..\\Include -I..\\PC"); puts(command); fflush(stdout); result = system(command); if (do_unlink) - unlink("getbuildinfo2.c"); + _unlink("getbuildinfo2.c"); if (result < 0) return EXIT_FAILURE; return 0; diff --git a/PCbuild9/pyproject.vsprops b/PCbuild9/pyproject.vsprops index ba3a675..e8252c0 100644 --- a/PCbuild9/pyproject.vsprops +++ b/PCbuild9/pyproject.vsprops @@ -12,7 +12,7 @@ InlineFunctionExpansion="1" EnableIntrinsicFunctions="true" AdditionalIncludeDirectories="..\Include; ..\PC" - PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_WIN32" + PreprocessorDefinitions="_WIN32" StringPooling="true" ExceptionHandling="0" RuntimeLibrary="0" diff --git a/PCbuild9/readme.txt b/PCbuild9/readme.txt index fd3967a..ef3b97d 100644 --- a/PCbuild9/readme.txt +++ b/PCbuild9/readme.txt @@ -281,6 +281,14 @@ Edition. Profile Guided Optimization --------------------------- +The solution has two configurations for PGO. The PGInstrument configuration +must be build first. The PGInstrument binaries are lniked against a profiling +library and contain extra debug information. The PGUpdate configuration takes the profiling data and generates optimized binaries. + +The build_pgo.bat script automates the creation of optimized binaries. It +creates the PGI files, runs the unit test suite or PyBench with the PGI +python and finally creates the optimized files. + http://msdn2.microsoft.com/en-us/library/e7k32f4k(VS.90).aspx Static library @@ -300,7 +308,7 @@ The PCbuild9 solution makes heavy use of Visual Studio property files (*.vsprops). The properties can be viewed and altered in the Property Manager (View -> Other Windows -> Property Manager). - * debug (debug macros) + * debug (debug macro: _DEBUG) * pginstrument (PGO) * pgupdate (PGO) +-- pginstrument @@ -310,8 +318,8 @@ Manager (View -> Other Windows -> Property Manager). * pyd_d (python extension, debug build) +-- debug +-- pyproject - * pyproject (base settings for all projects) - * release (release macros) + * pyproject (base settings for all projects, user macros like PyDllName) + * release (release macro: NDEBUG) * x64 (AMD64 / x64 platform specific settings) The pyproject propertyfile defines _WIN32 and x64 defines _WIN64 and _M_X64 @@ -320,6 +328,7 @@ about the macros and confuse the user with false information. YOUR OWN EXTENSION DLLs ----------------------- + If you want to create your own extension module DLL, there's an example with easy-to-follow instructions in ../PC/example/; read the file readme.txt there first. |