summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Labath <labath@google.com>2016-03-01 15:53:14 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-03-01 15:53:14 +0000
commitaad874a785125fd66b23cfd276c59e203cefc5bd (patch)
treebc18c5d20365b2b9b6ed929c17a7f89fd1e12aff
parent7e8e07cbb9a31e85b2236a235c1b607a01167640 (diff)
parent49c0b6b35370ffdec7c531361afcbaea366ae3d4 (diff)
downloadwindows-x86-aad874a785125fd66b23cfd276c59e203cefc5bd.tar.gz
Revert "Prebuilts built with MSVC2015"
am: 49c0b6b353 * commit '49c0b6b35370ffdec7c531361afcbaea366ae3d4': Revert "Prebuilts built with MSVC2015"
-rw-r--r--[-rwxr-xr-x]build-common.sh171
-rwxr-xr-xbuild-python.sh61
-rw-r--r--python.patches73
-rwxr-xr-xx64/DLLs/_ctypes.pdbbin774144 -> 667648 bytes
-rwxr-xr-xx64/DLLs/_ctypes.pydbin116224 -> 110592 bytes
-rwxr-xr-xx64/DLLs/_ctypes_d.pdbbin724992 -> 692224 bytes
-rwxr-xr-xx64/DLLs/_ctypes_d.pydbin181248 -> 174080 bytes
-rwxr-xr-xx64/DLLs/_ctypes_test.pdbbin446464 -> 364544 bytes
-rwxr-xr-xx64/DLLs/_ctypes_test.pydbin20480 -> 15360 bytes
-rwxr-xr-xx64/DLLs/_ctypes_test_d.pdbbin413696 -> 356352 bytes
-rwxr-xr-xx64/DLLs/_ctypes_test_d.pydbin27136 -> 19968 bytes
-rwxr-xr-xx64/DLLs/_elementtree.pdbbin765952 -> 610304 bytes
-rwxr-xr-xx64/DLLs/_elementtree.pydbin158720 -> 164864 bytes
-rwxr-xr-xx64/DLLs/_elementtree_d.pdbbin684032 -> 610304 bytes
-rwxr-xr-xx64/DLLs/_elementtree_d.pydbin281600 -> 274944 bytes
-rwxr-xr-xx64/DLLs/_multiprocessing.pdbbin446464 -> 405504 bytes
-rwxr-xr-xx64/DLLs/_multiprocessing.pydbin36864 -> 32256 bytes
-rwxr-xr-xx64/DLLs/_multiprocessing_d.pdbbin454656 -> 405504 bytes
-rwxr-xr-xx64/DLLs/_multiprocessing_d.pydbin45568 -> 38912 bytes
-rwxr-xr-xx64/DLLs/_socket.pdbbin512000 -> 430080 bytes
-rwxr-xr-xx64/DLLs/_socket.pydbin51200 -> 47616 bytes
-rwxr-xr-xx64/DLLs/_socket_d.pdbbin487424 -> 421888 bytes
-rwxr-xr-xx64/DLLs/_socket_d.pydbin61952 -> 54784 bytes
-rwxr-xr-xx64/DLLs/_testcapi.pdbbin471040 -> 380928 bytes
-rwxr-xr-xx64/DLLs/_testcapi.pydbin47104 -> 43008 bytes
-rwxr-xr-xx64/DLLs/_testcapi_d.pdbbin462848 -> 380928 bytes
-rwxr-xr-xx64/DLLs/_testcapi_d.pydbin68096 -> 60928 bytes
-rwxr-xr-xx64/DLLs/pyexpat.pdbbin806912 -> 610304 bytes
-rwxr-xr-xx64/DLLs/pyexpat.pydbin165888 -> 162816 bytes
-rwxr-xr-xx64/DLLs/pyexpat_d.pdbbin684032 -> 610304 bytes
-rwxr-xr-xx64/DLLs/pyexpat_d.pydbin275456 -> 268288 bytes
-rwxr-xr-xx64/DLLs/select.pdbbin372736 -> 331776 bytes
-rwxr-xr-xx64/DLLs/select.pydbin15360 -> 10752 bytes
-rwxr-xr-xx64/DLLs/select_d.pdbbin389120 -> 323584 bytes
-rwxr-xr-xx64/DLLs/select_d.pydbin20480 -> 14336 bytes
-rwxr-xr-xx64/DLLs/unicodedata.pdbbin397312 -> 307200 bytes
-rwxr-xr-xx64/DLLs/unicodedata.pydbin692736 -> 687616 bytes
-rwxr-xr-xx64/DLLs/unicodedata_d.pdbbin389120 -> 307200 bytes
-rwxr-xr-xx64/DLLs/unicodedata_d.pydbin699392 -> 692224 bytes
-rwxr-xr-xx64/DLLs/winsound.pdbbin372736 -> 331776 bytes
-rwxr-xr-xx64/DLLs/winsound.pydbin14336 -> 10240 bytes
-rwxr-xr-xx64/DLLs/winsound_d.pdbbin380928 -> 323584 bytes
-rwxr-xr-xx64/DLLs/winsound_d.pydbin18432 -> 12288 bytes
-rwxr-xr-xx64/Include/fileobject.h5
-rwxr-xr-xx64/Lib/distutils/command/wininst-9.0-amd64.exebin586752 -> 223744 bytes
-rwxr-xr-xx64/Lib/distutils/command/wininst-9.0-amd64.pdbbin7122944 -> 0 bytes
-rwxr-xr-xx64/Lib/distutils/command/wininst-9.0.exebin448000 -> 196096 bytes
-rwxr-xr-xx64/Lib/distutils/command/wininst-9.0.pdbbin7270400 -> 0 bytes
-rwxr-xr-xx64/libs/_ctypes.libbin1716 -> 1740 bytes
-rwxr-xr-xx64/libs/_ctypes_test.libbin21568 -> 21818 bytes
-rwxr-xr-xx64/libs/_elementtree.libbin1880 -> 1906 bytes
-rwxr-xr-xx64/libs/_multiprocessing.libbin1952 -> 1978 bytes
-rwxr-xr-xx64/libs/_socket.libbin1916 -> 1942 bytes
-rwxr-xr-xx64/libs/_testcapi.libbin1750 -> 1774 bytes
-rwxr-xr-xx64/libs/pyexpat.libbin1716 -> 1740 bytes
-rwxr-xr-xx64/libs/python27.libbin228030 -> 228030 bytes
-rwxr-xr-xx64/libs/python27_d.libbin235848 -> 235848 bytes
-rwxr-xr-xx64/libs/select.libbin1700 -> 1724 bytes
-rwxr-xr-xx64/libs/unicodedata.libbin1784 -> 1886 bytes
-rwxr-xr-xx64/libs/winsound.libbin1734 -> 1758 bytes
-rwxr-xr-xx64/python.exebin31744 -> 27136 bytes
-rwxr-xr-xx64/python.pdbbin421888 -> 299008 bytes
-rwxr-xr-xx64/python27.dllbin2965504 -> 2964480 bytes
-rwxr-xr-xx64/python27.pdbbin6746112 -> 5394432 bytes
-rwxr-xr-xx64/python27_d.dllbin4241408 -> 4241408 bytes
-rwxr-xr-xx64/python27_d.pdbbin5648384 -> 5910528 bytes
-rwxr-xr-xx64/python_d.exebin35840 -> 28672 bytes
-rwxr-xr-xx64/pythonw.exebin31744 -> 27648 bytes
-rwxr-xr-xx64/pythonw.pdbbin421888 -> 315392 bytes
-rwxr-xr-xx64/pythonw_d.exebin35840 -> 29184 bytes
-rwxr-xr-xx64/w9xpopen.exebin114688 -> 484352 bytes
-rwxr-xr-xx64/w9xpopen.pdbbin5271552 -> 2297856 bytes
-rwxr-xr-xx86/DLLs/_ctypes.pdbbin823296 -> 724992 bytes
-rwxr-xr-xx86/DLLs/_ctypes.pydbin89600 -> 86528 bytes
-rwxr-xr-xx86/DLLs/_ctypes_d.pdbbin724992 -> 733184 bytes
-rwxr-xr-xx86/DLLs/_ctypes_d.pydbin144896 -> 141312 bytes
-rwxr-xr-xx86/DLLs/_ctypes_test.pdbbin495616 -> 405504 bytes
-rwxr-xr-xx86/DLLs/_ctypes_test.pydbin20992 -> 17920 bytes
-rwxr-xr-xx86/DLLs/_ctypes_test_d.pdbbin421888 -> 397312 bytes
-rwxr-xr-xx86/DLLs/_ctypes_test_d.pydbin24064 -> 20480 bytes
-rwxr-xr-xx86/DLLs/_elementtree.pdbbin798720 -> 643072 bytes
-rwxr-xr-xx86/DLLs/_elementtree.pydbin122880 -> 128000 bytes
-rwxr-xr-xx86/DLLs/_elementtree_d.pdbbin667648 -> 643072 bytes
-rwxr-xr-xx86/DLLs/_elementtree_d.pydbin213504 -> 210432 bytes
-rwxr-xr-xx86/DLLs/_multiprocessing.pdbbin487424 -> 446464 bytes
-rwxr-xr-xx86/DLLs/_multiprocessing.pydbin31232 -> 28672 bytes
-rwxr-xr-xx86/DLLs/_multiprocessing_d.pdbbin454656 -> 438272 bytes
-rwxr-xr-xx86/DLLs/_multiprocessing_d.pydbin38912 -> 35840 bytes
-rwxr-xr-xx86/DLLs/_socket.pdbbin569344 -> 479232 bytes
-rwxr-xr-xx86/DLLs/_socket.pydbin48640 -> 45056 bytes
-rwxr-xr-xx86/DLLs/_socket_d.pdbbin487424 -> 471040 bytes
-rwxr-xr-xx86/DLLs/_socket_d.pydbin58880 -> 55296 bytes
-rwxr-xr-xx86/DLLs/_testcapi.pdbbin487424 -> 430080 bytes
-rwxr-xr-xx86/DLLs/_testcapi.pydbin39936 -> 36864 bytes
-rwxr-xr-xx86/DLLs/_testcapi_d.pdbbin454656 -> 421888 bytes
-rwxr-xr-xx86/DLLs/_testcapi_d.pydbin58368 -> 54784 bytes
-rwxr-xr-xx86/DLLs/pyexpat.pdbbin839680 -> 643072 bytes
-rwxr-xr-xx86/DLLs/pyexpat.pydbin129024 -> 126976 bytes
-rwxr-xr-xx86/DLLs/pyexpat_d.pdbbin675840 -> 643072 bytes
-rwxr-xr-xx86/DLLs/pyexpat_d.pydbin208384 -> 205312 bytes
-rwxr-xr-xx86/DLLs/select.pdbbin389120 -> 364544 bytes
-rwxr-xr-xx86/DLLs/select.pydbin13312 -> 10752 bytes
-rwxr-xr-xx86/DLLs/select_d.pdbbin372736 -> 364544 bytes
-rwxr-xr-xx86/DLLs/select_d.pydbin17408 -> 13824 bytes
-rwxr-xr-xx86/DLLs/unicodedata.pdbbin413696 -> 348160 bytes
-rwxr-xr-xx86/DLLs/unicodedata.pydbin687616 -> 684544 bytes
-rwxr-xr-xx86/DLLs/unicodedata_d.pdbbin372736 -> 339968 bytes
-rwxr-xr-xx86/DLLs/unicodedata_d.pydbin692736 -> 689152 bytes
-rwxr-xr-xx86/DLLs/winsound.pdbbin389120 -> 364544 bytes
-rwxr-xr-xx86/DLLs/winsound.pydbin12800 -> 10240 bytes
-rwxr-xr-xx86/DLLs/winsound_d.pdbbin372736 -> 356352 bytes
-rwxr-xr-xx86/DLLs/winsound_d.pydbin15360 -> 12288 bytes
-rwxr-xr-xx86/Include/fileobject.h5
-rwxr-xr-xx86/Lib/distutils/command/wininst-9.0-amd64.exebin586752 -> 223744 bytes
-rwxr-xr-xx86/Lib/distutils/command/wininst-9.0-amd64.pdbbin7122944 -> 0 bytes
-rwxr-xr-xx86/Lib/distutils/command/wininst-9.0.exebin448000 -> 196096 bytes
-rwxr-xr-xx86/Lib/distutils/command/wininst-9.0.pdbbin7270400 -> 0 bytes
-rwxr-xr-xx86/libs/_ctypes.libbin1714 -> 1714 bytes
-rwxr-xr-xx86/libs/_ctypes_test.libbin22422 -> 22422 bytes
-rwxr-xr-xx86/libs/_elementtree.libbin1878 -> 1878 bytes
-rwxr-xr-xx86/libs/_multiprocessing.libbin1950 -> 1950 bytes
-rwxr-xr-xx86/libs/_socket.libbin1920 -> 1920 bytes
-rwxr-xr-xx86/libs/_testcapi.libbin1748 -> 1748 bytes
-rwxr-xr-xx86/libs/pyexpat.libbin1714 -> 1714 bytes
-rwxr-xr-xx86/libs/python27.libbin233184 -> 233184 bytes
-rwxr-xr-xx86/libs/python27_d.libbin241126 -> 241126 bytes
-rwxr-xr-xx86/libs/select.libbin1698 -> 1698 bytes
-rwxr-xr-xx86/libs/unicodedata.libbin1782 -> 1782 bytes
-rwxr-xr-xx86/libs/winsound.libbin1732 -> 1732 bytes
-rwxr-xr-xx86/python.exebin30720 -> 27136 bytes
-rwxr-xr-xx86/python.pdbbin446464 -> 348160 bytes
-rwxr-xr-xx86/python27.dllbin2478080 -> 2480128 bytes
-rwxr-xr-xx86/python27.pdbbin6975488 -> 5500928 bytes
-rwxr-xr-xx86/python27_d.dllbin3545600 -> 3549184 bytes
-rwxr-xr-xx86/python27_d.pdbbin5500928 -> 5853184 bytes
-rwxr-xr-xx86/python_d.exebin32768 -> 29184 bytes
-rwxr-xr-xx86/pythonw.exebin30720 -> 27648 bytes
-rwxr-xr-xx86/pythonw.pdbbin446464 -> 356352 bytes
-rwxr-xr-xx86/pythonw_d.exebin32768 -> 29184 bytes
-rwxr-xr-xx86/w9xpopen.exebin95744 -> 70656 bytes
-rwxr-xr-xx86/w9xpopen.pdbbin5304320 -> 2314240 bytes
141 files changed, 93 insertions, 222 deletions
diff --git a/build-common.sh b/build-common.sh
index 48734ee..0c5c0a3 100755..100644
--- a/build-common.sh
+++ b/build-common.sh
@@ -1,103 +1,62 @@
-# latest version of this file can be found at
-# https://android.googlesource.com/platform/external/lldb-utils
-#
# inputs
-# $PROJ - project name
+# $PROJ - project name (cmake|ninja|swig)
# $VER - project version
-# $1 - (temporary) output directory
-# $2 - build directory for build artefacts
-# $3 - build number
+# $1 - name of this file
#
# this file does the following:
#
# 1) define the following env vars
-# OS - linux|darwin|windows
-# CORES - numer of cores (for parallel builds)
-# PATH (with appropriate compilers)
-# CFLAGS/CXXFLAGS/LDFLAGS
-# RD - root directory for source and object files
-# INSTALL - install directory
-# SCRIPT_FILE - absolute path to the parent build script
-# SCRIPT_DIR - absolute path to the parent build script's directory
-# COMMON_FILE - absolute path to this file
-# 2) cd $RD
-#
-# after placing all your build products into $INSTALL you should call finalize_build to produce
-# the final build artifact
-
-# exit on error
-set -e
-
-SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[1]}")" && pwd -P)"
-SCRIPT_FILE="$SCRIPT_DIR/$(basename "${BASH_SOURCE[1]}")"
-COMMON_FILE="$SCRIPT_DIR/$(basename "${BASH_SOURCE[0]}")"
-
-# calculate the root directory from the script path
-# this script lives three directories down from the root
-# external/lldb-utils/prebuilts/build-common.sh
-ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd -P)"
-cd "$ROOT_DIR"
-
-function die() {
- echo "$*" > /dev/stderr
- echo "Usage: $0 <out_dir> <dest_dir> <build_number>" > /dev/stderr
- exit 1
-}
-
-(($# > 3)) && die "[$0] Unknown parameter: $4"
-
-OUT="$1"
-DEST="$2"
-BNUM="$3"
-
-[ ! "$OUT" ] && die "## Error: Missing out folder"
-[ ! "$DEST" ] && die "## Error: Missing destination folder"
-[ ! "$BNUM" ] && die "## Error: Missing build number"
+# OS - linux|darwin|windows
+# USER - username
+# CORES - numer of cores (for parallel builds)
+# PATH (with appropriate compilers)
+# CFLAGS/CXXFLAGS/LDFLAGS
+# RD - root directory for source and object files
+# INSTALL - install directory/git repo root
+# SCRIPT_FILE=absolute path to the parent build script
+# SCRIPT_DIR=absolute path to the parent build script's directory
+# COMMON_FILE=absolute path to this file
-mkdir -p "$OUT" "$DEST"
-OUT="$(cd "$OUT" && pwd -P)"
-DEST="$(cd "$DEST" && pwd -P)"
-
-cat <<END_INFO
-## Building $PROJ ##
-## Out Dir : $OUT
-## Dest Dir : $DEST
-## Build Num: $BNUM
-
-END_INFO
+#
+# 2) create an empty tmp directory at /tmp/$PROJ-$USER
+# 3) checkout the destination git repo to /tmp/prebuilts/$PROJ/$OS-x86/$VER
+# 4) cd $RD
UNAME="$(uname)"
-UPSTREAM=https://android.googlesource.com/platform/prebuilts
case "$UNAME" in
Linux)
+ SCRATCH=/tmp
OS='linux'
INSTALL_VER=$VER
;;
Darwin)
+ SCRATCH=/tmp
OS='darwin'
- OSX_MIN=10.8
- export CC=clang
- export CXX=$CC++
+ OSX_MIN=10.6
export CFLAGS="$CFLAGS -mmacosx-version-min=$OSX_MIN"
- export CXXFLAGS="$CXXFLAGS -mmacosx-version-min=$OSX_MIN -stdlib=libc++"
+ export CXXFLAGS="$CXXFLAGS -mmacosx-version-min=$OSX_MIN"
export LDFLAGS="$LDFLAGS -mmacosx-version-min=$OSX_MIN"
INSTALL_VER=$VER
;;
*_NT-*)
+ if [[ "$UNAME" == CYGWIN_NT-* ]]; then
+ PATH_PREFIX=/cygdrive
+ else
+ # MINGW32_NT-*
+ PATH_PREFIX=
+ fi
+ SCRATCH=$PATH_PREFIX/d/src/tmp
+ USER=$USERNAME
OS='windows'
CORES=$NUMBER_OF_PROCESSORS
+ # VS2013 x64 Native Tools Command Prompt
case "$MSVS" in
- 2015)
- devenv() {
- cmd /c "${VS140COMNTOOLS}VsDevCmd.bat" '&' devenv.com "$@"
- }
- INSTALL_VER=${VER}_${MSVS}
- ;;
2013)
- devenv() {
- cmd /c "${VS120COMNTOOLS}VsDevCmd.bat" '&' devenv.com "$@"
- }
- INSTALL_VER=${VER}_${MSVS}
+ export PATH="$PATH_PREFIX/c/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin/amd64/":"$PATH_PREFIX/c/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/":"$PATH_PREFIX/c/Program Files (x86)/Windows Kits/8.1/bin/x64":"$PATH"
+ export INCLUDE="C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\INCLUDE;C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\ATLMFC\\INCLUDE;C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\shared;C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\um;C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\winrt;"
+ export LIB="C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\LIB\\amd64;C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\ATLMFC\\LIB\\amd64;C:\\Program Files (x86)\\Windows Kits\\8.1\\lib\\winv6.3\\um\\x64;"
+ export LIBPATH="C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319;C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\LIB\\amd64;C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\ATLMFC\\LIB\\amd64;C:\\Program Files (x86)\\Windows Kits\\8.1\\References\\CommonConfiguration\\Neutral;C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v8.1\\ExtensionSDKs\\Microsoft.VCLibs\\12.0\\References\\CommonConfiguration\\neutral;"
+ INSTALL_VER=${VER}_vs${MSVS}
;;
*)
# g++/make build
@@ -112,7 +71,7 @@ Darwin)
;;
esac
-RD=$OUT/$PROJ
+RD=$SCRATCH/$PROJ-$USER
INSTALL="$RD/install"
cd /tmp # windows can't delete if you're in the dir
@@ -121,33 +80,37 @@ mkdir -p $INSTALL
mkdir -p $RD
cd $RD
-# clone prebuilt gcc
-case "$OS" in
-linux)
- # can't get prebuilt clang working so we're using host clang-3.5 https://b/22748915
- #CLANG_DIR=$RD/clang
- #git clone $UPSTREAM/clang/linux-x86/host/3.6 $CLANG_DIR
- #export CC="$CLANG_DIR/bin/clang"
- #export CXX="$CC++"
- export CC=clang-3.5
- export CXX=clang++-3.5
-
- GCC_DIR=$RD/gcc
- git clone $UPSTREAM/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8 $GCC_DIR
-
- find "$GCC_DIR" -name x86_64-linux -exec ln -fns {} {}-gnu \;
-
- FLAGS+=(-fuse-ld=gold)
- FLAGS+=(--gcc-toolchain="$GCC_DIR")
- FLAGS+=(--sysroot "$GCC_DIR/sysroot")
- FLAGS+=(-B"$GCC_DIR/bin/x86_64-linux-")
- export CFLAGS="$CFLAGS ${FLAGS[*]}"
- export CXXFLAGS="$CXXFLAGS ${FLAGS[*]}"
- export LDFLAGS="$LDFLAGS -m64"
- ;;
-esac
+# OSX lacks a "realpath" bash command
+realpath() {
+ [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"
+}
-function finalize_build() {
- cp "$SCRIPT_FILE" "$COMMON_FILE" "$INSTALL"
- (cd "$INSTALL" && zip --symlinks -r "$DEST/$PROJ-$BNUM.zip" .)
+SCRIPT_FILE=$(realpath "$0")
+SCRIPT_DIR="$(dirname "$SCRIPT_FILE")"
+COMMON_FILE="$SCRIPT_DIR/$1"
+
+commit_and_push()
+{
+ # check into a local git clone
+ rm -rf $SCRATCH/prebuilts/$PROJ/
+ mkdir -p $SCRATCH/prebuilts/$PROJ/
+ cd $SCRATCH/prebuilts/$PROJ/
+ git clone https://android.googlesource.com/platform/prebuilts/$PROJ/$OS-x86
+ GIT_REPO="$SCRATCH/prebuilts/$PROJ/$OS-x86"
+ cd $GIT_REPO
+ git rm -r * || true # ignore error caused by empty directory
+ mv $INSTALL/* $GIT_REPO
+ cp $SCRIPT_FILE $GIT_REPO
+ cp $COMMON_FILE $GIT_REPO
+
+ git add .
+ if [ -n "$ANDROID_EMAIL" ]; then
+ git config user.email $ANDROID_EMAIL
+ fi
+ git commit -m "Adding binaries for $INSTALL_VER"
+
+ # execute this command to upload
+ #git push origin HEAD:refs/for/master
+
+ rm -rf $RD || true # ignore error
}
diff --git a/build-python.sh b/build-python.sh
index 3107afd..f821ac8 100755
--- a/build-python.sh
+++ b/build-python.sh
@@ -1,52 +1,27 @@
#!/bin/bash -ex
-# latest version of this file can be found at
-# https://android.googlesource.com/platform/external/lldb-utils
-#
-# Download & build python on the local machine
+# Download & build swig on the local machine
# works on Linux, OSX, and Windows (Cygwin)
-# leaves output in /tmp/prebuilts/python/$OS-x86
+# leaves output in /tmp/prebuilts/install/
+# cmake must be installed on Windows
PROJ=python
VER=2.7.10
-MSVS=2015
+MSVS=2013
-source "$(dirname "${BASH_SOURCE[0]}")/build-common.sh" "$@"
+source $(dirname "$0")/build-common.sh build-common.sh
-BASE=Python-$VER
-TGZ=$BASE.tgz
-wget --no-check-certificate https://www.python.org/ftp/python/$VER/$TGZ -O $TGZ
+TGZ=Python-$VER.tgz
+curl -L https://www.python.org/ftp/python/$VER/$TGZ -o $TGZ
tar xzf $TGZ || cat $TGZ # if this fails, we're probably getting an http error
-cd $BASE
-patch -p3 <"$SCRIPT_DIR/python.patches"
+cd Python-$VER
+cp PC/pyconfig.h Include
+devenv.com PCbuild/pcbuild.sln /Upgrade
+# some projects will fail and that's okay
+devenv.com PCbuild/pcbuild.sln /Build Debug /Out log.txt || egrep -c "========== Build: 18 succeeded, 7 failed, 0 up-to-date, 1 skipped ==========" log.txt
+devenv.com PCbuild/pcbuild.sln /Build Release /Out log.txt || egrep -c "========== Build: 17 succeeded, 7 failed, 1 up-to-date, 1 skipped ==========" log.txt
+devenv.com PCbuild/pcbuild.sln /Build "Release|x64" /Out log.txt || egrep -c "========== Build: 16 succeeded, 7 failed, 2 up-to-date, 1 skipped ==========" log.txt
+devenv.com PCbuild/pcbuild.sln /Build "Debug|x64" /Out log.txt || egrep -c "========== Build: 16 succeeded, 7 failed, 2 up-to-date, 1 skipped ==========" log.txt
+curl -L http://llvm.org/svn/llvm-project/lldb/trunk/scripts/install_custom_python.py -o install_custom_python.py
+python install_custom_python.py --source "$(cygpath -w $RD/Python-$VER)" --dest "$(cygpath -w $INSTALL)" --overwrite --silent
-case "$OS" in
-windows)
- cp PC/pyconfig.h Include/
- devenv PCbuild/pcbuild.sln /Upgrade
- # Not all projects will build (due to missing dependencies), so we build only a selected
- # set. The rest are not needed for our purposes anyway.
- for project in _ctypes _ctypes_test _elementtree _multiprocessing _socket _testcapi \
- bdist_wininst kill_python make_buildinfo make_versioninfo pyexpat python \
- pythoncore pythonw select unicodedata w9xpopen winsound; do
-
- devenv PCbuild/pcbuild.sln /Build Debug /Project $project
- devenv PCbuild/pcbuild.sln /Build Release /Project $project
- devenv PCbuild/pcbuild.sln /Build "Debug^|x64" /Project $project
- devenv PCbuild/pcbuild.sln /Build "Release^|x64" /Project $project
- done
- curl -L http://llvm.org/svn/llvm-project/lldb/trunk/scripts/install_custom_python.py -o install_custom_python.py
- python install_custom_python.py --source "$(cygpath -w "$RD/$BASE")" --dest "$(cygpath -w "$INSTALL")" --overwrite --silent
- ;;
-linux|darwin)
- unset CFLAGS CXXFLAGS
- mkdir $RD/build
- cd $RD/build
- $RD/$BASE/configure --prefix=$INSTALL --enable-unicode=ucs4 --enable-shared
- make -j$CORES
- make install
- ;;
-esac
-
-find $INSTALL '(' -name '*.pyc' -or -name '*.pyo' ')' -delete
-
-finalize_build
+commit_and_push
diff --git a/python.patches b/python.patches
deleted file mode 100644
index 3bd8817..0000000
--- a/python.patches
+++ /dev/null
@@ -1,73 +0,0 @@
-diff -aur DD13\python\Python-2.7.10\Include\fileobject.h D13\python\Python-2.7.10\Include\fileobject.h
---- DD13\python\Python-2.7.10\Include\fileobject.h 2015-05-23 09:08:59.000000000 -0700
-+++ D13\python\Python-2.7.10\Include\fileobject.h 2016-02-01 07:44:58.584039000 -0800
-@@ -70,16 +70,13 @@
- */
- int _PyFile_SanitizeMode(char *mode);
-
--#if defined _MSC_VER && _MSC_VER >= 1400
-+#if defined _MSC_VER && _MSC_VER < 1900
- /* A routine to check if a file descriptor is valid on Windows. Returns 0
- * and sets errno to EBADF if it isn't. This is to avoid Assertions
- * from various functions in the Windows CRT beginning with
- * Visual Studio 2005
- */
- int _PyVerify_fd(int fd);
--#elif defined _MSC_VER && _MSC_VER >= 1200
--/* fdopen doesn't set errno EBADF and crashes for large fd on debug build */
--#define _PyVerify_fd(fd) (_get_osfhandle(fd) >= 0)
- #else
- #define _PyVerify_fd(A) (1) /* dummy */
- #endif
-
-diff -aur DD13\python\Python-2.7.10\Modules\posixmodule.c D13\python\Python-2.7.10\Modules\posixmodule.c
---- DD13\python\Python-2.7.10\Modules\posixmodule.c 2015-05-23 09:09:20.000000000 -0700
-+++ D13\python\Python-2.7.10\Modules\posixmodule.c 2016-02-01 07:45:21.684348800 -0800
-@@ -529,7 +529,7 @@
- #endif
-
-
--#if defined _MSC_VER && _MSC_VER >= 1400
-+#if defined _MSC_VER && _MSC_VER < 1900
- /* Microsoft CRT in VS2005 and higher will verify that a filehandle is
- * valid and raise an assertion if it isn't.
- * Normally, an invalid fd is likely to be a C program error and therefore
-@@ -619,7 +619,7 @@
- }
- #else
- /* dummy version. _PyVerify_fd() is already defined in fileobject.h */
--#define _PyVerify_fd_dup2(A, B) (1)
-+#define _PyVerify_fd_dup2(fd1, fd2) (_PyVerify_fd(fd1) && (fd2) >= 0)
- #endif
-
- /* Return a dictionary corresponding to the POSIX environment table */
-
-diff -aur DD13/python/Python-2.7.10/Modules/timemodule.c D13/python/Python-2.7.10/Modules/timemodule.c
---- DD13/python/Python-2.7.10/Modules/timemodule.c 2015-05-23 09:09:21.000000000 -0700
-+++ D13/python/Python-2.7.10/Modules/timemodule.c 2016-02-01 07:08:57.757978000 -0800
-@@ -710,7 +710,7 @@
- #ifdef PYOS_OS2
- PyModule_AddIntConstant(m, "timezone", _timezone);
- #else /* !PYOS_OS2 */
-- PyModule_AddIntConstant(m, "timezone", timezone);
-+ PyModule_AddIntConstant(m, "timezone", _timezone);
- #endif /* PYOS_OS2 */
- #ifdef HAVE_ALTZONE
- PyModule_AddIntConstant(m, "altzone", altzone);
-@@ -718,12 +718,12 @@
- #ifdef PYOS_OS2
- PyModule_AddIntConstant(m, "altzone", _timezone-3600);
- #else /* !PYOS_OS2 */
-- PyModule_AddIntConstant(m, "altzone", timezone-3600);
-+ PyModule_AddIntConstant(m, "altzone", _timezone-3600);
- #endif /* PYOS_OS2 */
- #endif
-- PyModule_AddIntConstant(m, "daylight", daylight);
-+ PyModule_AddIntConstant(m, "daylight", _daylight);
- PyModule_AddObject(m, "tzname",
-- Py_BuildValue("(zz)", tzname[0], tzname[1]));
-+ Py_BuildValue("(zz)", _tzname[0], _tzname[1]));
- #else /* !HAVE_TZNAME || __GLIBC__ || __CYGWIN__*/
- #ifdef HAVE_STRUCT_TM_TM_ZONE
- {
-
diff --git a/x64/DLLs/_ctypes.pdb b/x64/DLLs/_ctypes.pdb
index bbd8063..fe0c3f8 100755
--- a/x64/DLLs/_ctypes.pdb
+++ b/x64/DLLs/_ctypes.pdb
Binary files differ
diff --git a/x64/DLLs/_ctypes.pyd b/x64/DLLs/_ctypes.pyd
index d1f0253..1057daf 100755
--- a/x64/DLLs/_ctypes.pyd
+++ b/x64/DLLs/_ctypes.pyd
Binary files differ
diff --git a/x64/DLLs/_ctypes_d.pdb b/x64/DLLs/_ctypes_d.pdb
index 2fe8836..711f736 100755
--- a/x64/DLLs/_ctypes_d.pdb
+++ b/x64/DLLs/_ctypes_d.pdb
Binary files differ
diff --git a/x64/DLLs/_ctypes_d.pyd b/x64/DLLs/_ctypes_d.pyd
index 41fc900..ebbf7ac 100755
--- a/x64/DLLs/_ctypes_d.pyd
+++ b/x64/DLLs/_ctypes_d.pyd
Binary files differ
diff --git a/x64/DLLs/_ctypes_test.pdb b/x64/DLLs/_ctypes_test.pdb
index 89117c8..75481ed 100755
--- a/x64/DLLs/_ctypes_test.pdb
+++ b/x64/DLLs/_ctypes_test.pdb
Binary files differ
diff --git a/x64/DLLs/_ctypes_test.pyd b/x64/DLLs/_ctypes_test.pyd
index 8d009a9..0be4ab3 100755
--- a/x64/DLLs/_ctypes_test.pyd
+++ b/x64/DLLs/_ctypes_test.pyd
Binary files differ
diff --git a/x64/DLLs/_ctypes_test_d.pdb b/x64/DLLs/_ctypes_test_d.pdb
index 03a782f..66480ca 100755
--- a/x64/DLLs/_ctypes_test_d.pdb
+++ b/x64/DLLs/_ctypes_test_d.pdb
Binary files differ
diff --git a/x64/DLLs/_ctypes_test_d.pyd b/x64/DLLs/_ctypes_test_d.pyd
index 8e68e48..6f224d4 100755
--- a/x64/DLLs/_ctypes_test_d.pyd
+++ b/x64/DLLs/_ctypes_test_d.pyd
Binary files differ
diff --git a/x64/DLLs/_elementtree.pdb b/x64/DLLs/_elementtree.pdb
index 4e6a968..baad181 100755
--- a/x64/DLLs/_elementtree.pdb
+++ b/x64/DLLs/_elementtree.pdb
Binary files differ
diff --git a/x64/DLLs/_elementtree.pyd b/x64/DLLs/_elementtree.pyd
index e00254a..f8c18a5 100755
--- a/x64/DLLs/_elementtree.pyd
+++ b/x64/DLLs/_elementtree.pyd
Binary files differ
diff --git a/x64/DLLs/_elementtree_d.pdb b/x64/DLLs/_elementtree_d.pdb
index a9e23b4..961ef30 100755
--- a/x64/DLLs/_elementtree_d.pdb
+++ b/x64/DLLs/_elementtree_d.pdb
Binary files differ
diff --git a/x64/DLLs/_elementtree_d.pyd b/x64/DLLs/_elementtree_d.pyd
index dc730d2..ee5d9eb 100755
--- a/x64/DLLs/_elementtree_d.pyd
+++ b/x64/DLLs/_elementtree_d.pyd
Binary files differ
diff --git a/x64/DLLs/_multiprocessing.pdb b/x64/DLLs/_multiprocessing.pdb
index 31e07f2..005db6a 100755
--- a/x64/DLLs/_multiprocessing.pdb
+++ b/x64/DLLs/_multiprocessing.pdb
Binary files differ
diff --git a/x64/DLLs/_multiprocessing.pyd b/x64/DLLs/_multiprocessing.pyd
index f8b18c0..c0a39b8 100755
--- a/x64/DLLs/_multiprocessing.pyd
+++ b/x64/DLLs/_multiprocessing.pyd
Binary files differ
diff --git a/x64/DLLs/_multiprocessing_d.pdb b/x64/DLLs/_multiprocessing_d.pdb
index e935b13..2317ec3 100755
--- a/x64/DLLs/_multiprocessing_d.pdb
+++ b/x64/DLLs/_multiprocessing_d.pdb
Binary files differ
diff --git a/x64/DLLs/_multiprocessing_d.pyd b/x64/DLLs/_multiprocessing_d.pyd
index 919ea0f..49995ba 100755
--- a/x64/DLLs/_multiprocessing_d.pyd
+++ b/x64/DLLs/_multiprocessing_d.pyd
Binary files differ
diff --git a/x64/DLLs/_socket.pdb b/x64/DLLs/_socket.pdb
index 91e5470..510f813 100755
--- a/x64/DLLs/_socket.pdb
+++ b/x64/DLLs/_socket.pdb
Binary files differ
diff --git a/x64/DLLs/_socket.pyd b/x64/DLLs/_socket.pyd
index 7cc2c07..8c9a2c8 100755
--- a/x64/DLLs/_socket.pyd
+++ b/x64/DLLs/_socket.pyd
Binary files differ
diff --git a/x64/DLLs/_socket_d.pdb b/x64/DLLs/_socket_d.pdb
index 07aa91a..f008884 100755
--- a/x64/DLLs/_socket_d.pdb
+++ b/x64/DLLs/_socket_d.pdb
Binary files differ
diff --git a/x64/DLLs/_socket_d.pyd b/x64/DLLs/_socket_d.pyd
index 47f683a..73a7b75 100755
--- a/x64/DLLs/_socket_d.pyd
+++ b/x64/DLLs/_socket_d.pyd
Binary files differ
diff --git a/x64/DLLs/_testcapi.pdb b/x64/DLLs/_testcapi.pdb
index 47eacb0..1adeb82 100755
--- a/x64/DLLs/_testcapi.pdb
+++ b/x64/DLLs/_testcapi.pdb
Binary files differ
diff --git a/x64/DLLs/_testcapi.pyd b/x64/DLLs/_testcapi.pyd
index 2bccd44..4b88eb4 100755
--- a/x64/DLLs/_testcapi.pyd
+++ b/x64/DLLs/_testcapi.pyd
Binary files differ
diff --git a/x64/DLLs/_testcapi_d.pdb b/x64/DLLs/_testcapi_d.pdb
index ed28953..5d52efa 100755
--- a/x64/DLLs/_testcapi_d.pdb
+++ b/x64/DLLs/_testcapi_d.pdb
Binary files differ
diff --git a/x64/DLLs/_testcapi_d.pyd b/x64/DLLs/_testcapi_d.pyd
index 59533da..58b1ebc 100755
--- a/x64/DLLs/_testcapi_d.pyd
+++ b/x64/DLLs/_testcapi_d.pyd
Binary files differ
diff --git a/x64/DLLs/pyexpat.pdb b/x64/DLLs/pyexpat.pdb
index 768d49c..42d91d2 100755
--- a/x64/DLLs/pyexpat.pdb
+++ b/x64/DLLs/pyexpat.pdb
Binary files differ
diff --git a/x64/DLLs/pyexpat.pyd b/x64/DLLs/pyexpat.pyd
index d8b1d7f..ec29ebb 100755
--- a/x64/DLLs/pyexpat.pyd
+++ b/x64/DLLs/pyexpat.pyd
Binary files differ
diff --git a/x64/DLLs/pyexpat_d.pdb b/x64/DLLs/pyexpat_d.pdb
index 74cedc1..3814590 100755
--- a/x64/DLLs/pyexpat_d.pdb
+++ b/x64/DLLs/pyexpat_d.pdb
Binary files differ
diff --git a/x64/DLLs/pyexpat_d.pyd b/x64/DLLs/pyexpat_d.pyd
index 73d4115..48f41d4 100755
--- a/x64/DLLs/pyexpat_d.pyd
+++ b/x64/DLLs/pyexpat_d.pyd
Binary files differ
diff --git a/x64/DLLs/select.pdb b/x64/DLLs/select.pdb
index 8360b62..545c83a 100755
--- a/x64/DLLs/select.pdb
+++ b/x64/DLLs/select.pdb
Binary files differ
diff --git a/x64/DLLs/select.pyd b/x64/DLLs/select.pyd
index ea4a272..724ff1c 100755
--- a/x64/DLLs/select.pyd
+++ b/x64/DLLs/select.pyd
Binary files differ
diff --git a/x64/DLLs/select_d.pdb b/x64/DLLs/select_d.pdb
index 21b08a1..401d5d3 100755
--- a/x64/DLLs/select_d.pdb
+++ b/x64/DLLs/select_d.pdb
Binary files differ
diff --git a/x64/DLLs/select_d.pyd b/x64/DLLs/select_d.pyd
index 4668a92..438bc89 100755
--- a/x64/DLLs/select_d.pyd
+++ b/x64/DLLs/select_d.pyd
Binary files differ
diff --git a/x64/DLLs/unicodedata.pdb b/x64/DLLs/unicodedata.pdb
index a3145bd..039196a 100755
--- a/x64/DLLs/unicodedata.pdb
+++ b/x64/DLLs/unicodedata.pdb
Binary files differ
diff --git a/x64/DLLs/unicodedata.pyd b/x64/DLLs/unicodedata.pyd
index 24bc824..635c6bf 100755
--- a/x64/DLLs/unicodedata.pyd
+++ b/x64/DLLs/unicodedata.pyd
Binary files differ
diff --git a/x64/DLLs/unicodedata_d.pdb b/x64/DLLs/unicodedata_d.pdb
index c6f0aaf..088378d 100755
--- a/x64/DLLs/unicodedata_d.pdb
+++ b/x64/DLLs/unicodedata_d.pdb
Binary files differ
diff --git a/x64/DLLs/unicodedata_d.pyd b/x64/DLLs/unicodedata_d.pyd
index 8089766..95093ae 100755
--- a/x64/DLLs/unicodedata_d.pyd
+++ b/x64/DLLs/unicodedata_d.pyd
Binary files differ
diff --git a/x64/DLLs/winsound.pdb b/x64/DLLs/winsound.pdb
index 51b95fa..b1414a4 100755
--- a/x64/DLLs/winsound.pdb
+++ b/x64/DLLs/winsound.pdb
Binary files differ
diff --git a/x64/DLLs/winsound.pyd b/x64/DLLs/winsound.pyd
index a0b4c92..eeb8943 100755
--- a/x64/DLLs/winsound.pyd
+++ b/x64/DLLs/winsound.pyd
Binary files differ
diff --git a/x64/DLLs/winsound_d.pdb b/x64/DLLs/winsound_d.pdb
index dd4ed32..39bd325 100755
--- a/x64/DLLs/winsound_d.pdb
+++ b/x64/DLLs/winsound_d.pdb
Binary files differ
diff --git a/x64/DLLs/winsound_d.pyd b/x64/DLLs/winsound_d.pyd
index f086324..c9ecf4a 100755
--- a/x64/DLLs/winsound_d.pyd
+++ b/x64/DLLs/winsound_d.pyd
Binary files differ
diff --git a/x64/Include/fileobject.h b/x64/Include/fileobject.h
index 434605d..1b540f9 100755
--- a/x64/Include/fileobject.h
+++ b/x64/Include/fileobject.h
@@ -70,13 +70,16 @@ size_t Py_UniversalNewlineFread(char *, size_t, FILE *, PyObject *);
*/
int _PyFile_SanitizeMode(char *mode);
-#if defined _MSC_VER && _MSC_VER < 1900
+#if defined _MSC_VER && _MSC_VER >= 1400
/* A routine to check if a file descriptor is valid on Windows. Returns 0
* and sets errno to EBADF if it isn't. This is to avoid Assertions
* from various functions in the Windows CRT beginning with
* Visual Studio 2005
*/
int _PyVerify_fd(int fd);
+#elif defined _MSC_VER && _MSC_VER >= 1200
+/* fdopen doesn't set errno EBADF and crashes for large fd on debug build */
+#define _PyVerify_fd(fd) (_get_osfhandle(fd) >= 0)
#else
#define _PyVerify_fd(A) (1) /* dummy */
#endif
diff --git a/x64/Lib/distutils/command/wininst-9.0-amd64.exe b/x64/Lib/distutils/command/wininst-9.0-amd64.exe
index 94bf4d8..11d8011 100755
--- a/x64/Lib/distutils/command/wininst-9.0-amd64.exe
+++ b/x64/Lib/distutils/command/wininst-9.0-amd64.exe
Binary files differ
diff --git a/x64/Lib/distutils/command/wininst-9.0-amd64.pdb b/x64/Lib/distutils/command/wininst-9.0-amd64.pdb
deleted file mode 100755
index 52b672b..0000000
--- a/x64/Lib/distutils/command/wininst-9.0-amd64.pdb
+++ /dev/null
Binary files differ
diff --git a/x64/Lib/distutils/command/wininst-9.0.exe b/x64/Lib/distutils/command/wininst-9.0.exe
index 52d4050..dadb31d 100755
--- a/x64/Lib/distutils/command/wininst-9.0.exe
+++ b/x64/Lib/distutils/command/wininst-9.0.exe
Binary files differ
diff --git a/x64/Lib/distutils/command/wininst-9.0.pdb b/x64/Lib/distutils/command/wininst-9.0.pdb
deleted file mode 100755
index b6d92cd..0000000
--- a/x64/Lib/distutils/command/wininst-9.0.pdb
+++ /dev/null
Binary files differ
diff --git a/x64/libs/_ctypes.lib b/x64/libs/_ctypes.lib
index cc520df..8817fb6 100755
--- a/x64/libs/_ctypes.lib
+++ b/x64/libs/_ctypes.lib
Binary files differ
diff --git a/x64/libs/_ctypes_test.lib b/x64/libs/_ctypes_test.lib
index 349bd56..74c5da5 100755
--- a/x64/libs/_ctypes_test.lib
+++ b/x64/libs/_ctypes_test.lib
Binary files differ
diff --git a/x64/libs/_elementtree.lib b/x64/libs/_elementtree.lib
index 5082242..3bb1247 100755
--- a/x64/libs/_elementtree.lib
+++ b/x64/libs/_elementtree.lib
Binary files differ
diff --git a/x64/libs/_multiprocessing.lib b/x64/libs/_multiprocessing.lib
index ebd260c..e0e4d60 100755
--- a/x64/libs/_multiprocessing.lib
+++ b/x64/libs/_multiprocessing.lib
Binary files differ
diff --git a/x64/libs/_socket.lib b/x64/libs/_socket.lib
index 9c27786..89a0131 100755
--- a/x64/libs/_socket.lib
+++ b/x64/libs/_socket.lib
Binary files differ
diff --git a/x64/libs/_testcapi.lib b/x64/libs/_testcapi.lib
index 0322c0c..bdcd6a2 100755
--- a/x64/libs/_testcapi.lib
+++ b/x64/libs/_testcapi.lib
Binary files differ
diff --git a/x64/libs/pyexpat.lib b/x64/libs/pyexpat.lib
index 20c29ce..301d23f 100755
--- a/x64/libs/pyexpat.lib
+++ b/x64/libs/pyexpat.lib
Binary files differ
diff --git a/x64/libs/python27.lib b/x64/libs/python27.lib
index 9b1438e..395f7b1 100755
--- a/x64/libs/python27.lib
+++ b/x64/libs/python27.lib
Binary files differ
diff --git a/x64/libs/python27_d.lib b/x64/libs/python27_d.lib
index c769e45..a49a21f 100755
--- a/x64/libs/python27_d.lib
+++ b/x64/libs/python27_d.lib
Binary files differ
diff --git a/x64/libs/select.lib b/x64/libs/select.lib
index f0bce59..428fd53 100755
--- a/x64/libs/select.lib
+++ b/x64/libs/select.lib
Binary files differ
diff --git a/x64/libs/unicodedata.lib b/x64/libs/unicodedata.lib
index e9c9496..daa3807 100755
--- a/x64/libs/unicodedata.lib
+++ b/x64/libs/unicodedata.lib
Binary files differ
diff --git a/x64/libs/winsound.lib b/x64/libs/winsound.lib
index 23fe468..c383bc0 100755
--- a/x64/libs/winsound.lib
+++ b/x64/libs/winsound.lib
Binary files differ
diff --git a/x64/python.exe b/x64/python.exe
index d014887..33b21ed 100755
--- a/x64/python.exe
+++ b/x64/python.exe
Binary files differ
diff --git a/x64/python.pdb b/x64/python.pdb
index e2c2846..4706b88 100755
--- a/x64/python.pdb
+++ b/x64/python.pdb
Binary files differ
diff --git a/x64/python27.dll b/x64/python27.dll
index 7317999..e29807e 100755
--- a/x64/python27.dll
+++ b/x64/python27.dll
Binary files differ
diff --git a/x64/python27.pdb b/x64/python27.pdb
index 5e85460..802d45f 100755
--- a/x64/python27.pdb
+++ b/x64/python27.pdb
Binary files differ
diff --git a/x64/python27_d.dll b/x64/python27_d.dll
index de33066..7ba64b2 100755
--- a/x64/python27_d.dll
+++ b/x64/python27_d.dll
Binary files differ
diff --git a/x64/python27_d.pdb b/x64/python27_d.pdb
index 3ff1707..7b64f23 100755
--- a/x64/python27_d.pdb
+++ b/x64/python27_d.pdb
Binary files differ
diff --git a/x64/python_d.exe b/x64/python_d.exe
index 9536f60..8bb6131 100755
--- a/x64/python_d.exe
+++ b/x64/python_d.exe
Binary files differ
diff --git a/x64/pythonw.exe b/x64/pythonw.exe
index f192803..084000b 100755
--- a/x64/pythonw.exe
+++ b/x64/pythonw.exe
Binary files differ
diff --git a/x64/pythonw.pdb b/x64/pythonw.pdb
index cbb3d8b..dcafe43 100755
--- a/x64/pythonw.pdb
+++ b/x64/pythonw.pdb
Binary files differ
diff --git a/x64/pythonw_d.exe b/x64/pythonw_d.exe
index 674e850..1fbb535 100755
--- a/x64/pythonw_d.exe
+++ b/x64/pythonw_d.exe
Binary files differ
diff --git a/x64/w9xpopen.exe b/x64/w9xpopen.exe
index e5ac2d9..ee48ec8 100755
--- a/x64/w9xpopen.exe
+++ b/x64/w9xpopen.exe
Binary files differ
diff --git a/x64/w9xpopen.pdb b/x64/w9xpopen.pdb
index b20d7d8..d6c1669 100755
--- a/x64/w9xpopen.pdb
+++ b/x64/w9xpopen.pdb
Binary files differ
diff --git a/x86/DLLs/_ctypes.pdb b/x86/DLLs/_ctypes.pdb
index 69c6ae9..f79a5b9 100755
--- a/x86/DLLs/_ctypes.pdb
+++ b/x86/DLLs/_ctypes.pdb
Binary files differ
diff --git a/x86/DLLs/_ctypes.pyd b/x86/DLLs/_ctypes.pyd
index 7a2f820..11a13a3 100755
--- a/x86/DLLs/_ctypes.pyd
+++ b/x86/DLLs/_ctypes.pyd
Binary files differ
diff --git a/x86/DLLs/_ctypes_d.pdb b/x86/DLLs/_ctypes_d.pdb
index bd4e4f8..0f7dfd1 100755
--- a/x86/DLLs/_ctypes_d.pdb
+++ b/x86/DLLs/_ctypes_d.pdb
Binary files differ
diff --git a/x86/DLLs/_ctypes_d.pyd b/x86/DLLs/_ctypes_d.pyd
index 297b713..5d7fd09 100755
--- a/x86/DLLs/_ctypes_d.pyd
+++ b/x86/DLLs/_ctypes_d.pyd
Binary files differ
diff --git a/x86/DLLs/_ctypes_test.pdb b/x86/DLLs/_ctypes_test.pdb
index b0c67b6..14bc6a7 100755
--- a/x86/DLLs/_ctypes_test.pdb
+++ b/x86/DLLs/_ctypes_test.pdb
Binary files differ
diff --git a/x86/DLLs/_ctypes_test.pyd b/x86/DLLs/_ctypes_test.pyd
index 55759c3..aa3c770 100755
--- a/x86/DLLs/_ctypes_test.pyd
+++ b/x86/DLLs/_ctypes_test.pyd
Binary files differ
diff --git a/x86/DLLs/_ctypes_test_d.pdb b/x86/DLLs/_ctypes_test_d.pdb
index a72199d..e86bdb1 100755
--- a/x86/DLLs/_ctypes_test_d.pdb
+++ b/x86/DLLs/_ctypes_test_d.pdb
Binary files differ
diff --git a/x86/DLLs/_ctypes_test_d.pyd b/x86/DLLs/_ctypes_test_d.pyd
index 25f98aa..fa66e75 100755
--- a/x86/DLLs/_ctypes_test_d.pyd
+++ b/x86/DLLs/_ctypes_test_d.pyd
Binary files differ
diff --git a/x86/DLLs/_elementtree.pdb b/x86/DLLs/_elementtree.pdb
index 03c8c75..d2155cb 100755
--- a/x86/DLLs/_elementtree.pdb
+++ b/x86/DLLs/_elementtree.pdb
Binary files differ
diff --git a/x86/DLLs/_elementtree.pyd b/x86/DLLs/_elementtree.pyd
index bdd46c6..a071500 100755
--- a/x86/DLLs/_elementtree.pyd
+++ b/x86/DLLs/_elementtree.pyd
Binary files differ
diff --git a/x86/DLLs/_elementtree_d.pdb b/x86/DLLs/_elementtree_d.pdb
index c829066..256c5bb 100755
--- a/x86/DLLs/_elementtree_d.pdb
+++ b/x86/DLLs/_elementtree_d.pdb
Binary files differ
diff --git a/x86/DLLs/_elementtree_d.pyd b/x86/DLLs/_elementtree_d.pyd
index 03af943..2fad05f 100755
--- a/x86/DLLs/_elementtree_d.pyd
+++ b/x86/DLLs/_elementtree_d.pyd
Binary files differ
diff --git a/x86/DLLs/_multiprocessing.pdb b/x86/DLLs/_multiprocessing.pdb
index e88c9f6..98ff5e4 100755
--- a/x86/DLLs/_multiprocessing.pdb
+++ b/x86/DLLs/_multiprocessing.pdb
Binary files differ
diff --git a/x86/DLLs/_multiprocessing.pyd b/x86/DLLs/_multiprocessing.pyd
index 4a0ae82..022f5bc 100755
--- a/x86/DLLs/_multiprocessing.pyd
+++ b/x86/DLLs/_multiprocessing.pyd
Binary files differ
diff --git a/x86/DLLs/_multiprocessing_d.pdb b/x86/DLLs/_multiprocessing_d.pdb
index b67f9ca..5f6f2c0 100755
--- a/x86/DLLs/_multiprocessing_d.pdb
+++ b/x86/DLLs/_multiprocessing_d.pdb
Binary files differ
diff --git a/x86/DLLs/_multiprocessing_d.pyd b/x86/DLLs/_multiprocessing_d.pyd
index ef3f72c..4977172 100755
--- a/x86/DLLs/_multiprocessing_d.pyd
+++ b/x86/DLLs/_multiprocessing_d.pyd
Binary files differ
diff --git a/x86/DLLs/_socket.pdb b/x86/DLLs/_socket.pdb
index 663de35..e12807e 100755
--- a/x86/DLLs/_socket.pdb
+++ b/x86/DLLs/_socket.pdb
Binary files differ
diff --git a/x86/DLLs/_socket.pyd b/x86/DLLs/_socket.pyd
index 3f82522..2011db9 100755
--- a/x86/DLLs/_socket.pyd
+++ b/x86/DLLs/_socket.pyd
Binary files differ
diff --git a/x86/DLLs/_socket_d.pdb b/x86/DLLs/_socket_d.pdb
index d9b603c..58a50ca 100755
--- a/x86/DLLs/_socket_d.pdb
+++ b/x86/DLLs/_socket_d.pdb
Binary files differ
diff --git a/x86/DLLs/_socket_d.pyd b/x86/DLLs/_socket_d.pyd
index f7f10e6..8560a1a 100755
--- a/x86/DLLs/_socket_d.pyd
+++ b/x86/DLLs/_socket_d.pyd
Binary files differ
diff --git a/x86/DLLs/_testcapi.pdb b/x86/DLLs/_testcapi.pdb
index fef5c7e..01be54d 100755
--- a/x86/DLLs/_testcapi.pdb
+++ b/x86/DLLs/_testcapi.pdb
Binary files differ
diff --git a/x86/DLLs/_testcapi.pyd b/x86/DLLs/_testcapi.pyd
index 7246738..5d6aae0 100755
--- a/x86/DLLs/_testcapi.pyd
+++ b/x86/DLLs/_testcapi.pyd
Binary files differ
diff --git a/x86/DLLs/_testcapi_d.pdb b/x86/DLLs/_testcapi_d.pdb
index 1b1346c..1cb437e 100755
--- a/x86/DLLs/_testcapi_d.pdb
+++ b/x86/DLLs/_testcapi_d.pdb
Binary files differ
diff --git a/x86/DLLs/_testcapi_d.pyd b/x86/DLLs/_testcapi_d.pyd
index fa27511..f9fd069 100755
--- a/x86/DLLs/_testcapi_d.pyd
+++ b/x86/DLLs/_testcapi_d.pyd
Binary files differ
diff --git a/x86/DLLs/pyexpat.pdb b/x86/DLLs/pyexpat.pdb
index 071bc9e..8675f9d 100755
--- a/x86/DLLs/pyexpat.pdb
+++ b/x86/DLLs/pyexpat.pdb
Binary files differ
diff --git a/x86/DLLs/pyexpat.pyd b/x86/DLLs/pyexpat.pyd
index 4c528e6..79bfc65 100755
--- a/x86/DLLs/pyexpat.pyd
+++ b/x86/DLLs/pyexpat.pyd
Binary files differ
diff --git a/x86/DLLs/pyexpat_d.pdb b/x86/DLLs/pyexpat_d.pdb
index bbf975e..72cc2fb 100755
--- a/x86/DLLs/pyexpat_d.pdb
+++ b/x86/DLLs/pyexpat_d.pdb
Binary files differ
diff --git a/x86/DLLs/pyexpat_d.pyd b/x86/DLLs/pyexpat_d.pyd
index fe6b0cb..42e23d7 100755
--- a/x86/DLLs/pyexpat_d.pyd
+++ b/x86/DLLs/pyexpat_d.pyd
Binary files differ
diff --git a/x86/DLLs/select.pdb b/x86/DLLs/select.pdb
index 5232bc2..1a2fd98 100755
--- a/x86/DLLs/select.pdb
+++ b/x86/DLLs/select.pdb
Binary files differ
diff --git a/x86/DLLs/select.pyd b/x86/DLLs/select.pyd
index 44b2c72..3f2b915 100755
--- a/x86/DLLs/select.pyd
+++ b/x86/DLLs/select.pyd
Binary files differ
diff --git a/x86/DLLs/select_d.pdb b/x86/DLLs/select_d.pdb
index 7acf871..f77f0a0 100755
--- a/x86/DLLs/select_d.pdb
+++ b/x86/DLLs/select_d.pdb
Binary files differ
diff --git a/x86/DLLs/select_d.pyd b/x86/DLLs/select_d.pyd
index af8defc..f855691 100755
--- a/x86/DLLs/select_d.pyd
+++ b/x86/DLLs/select_d.pyd
Binary files differ
diff --git a/x86/DLLs/unicodedata.pdb b/x86/DLLs/unicodedata.pdb
index 7285bcd..6b826d5 100755
--- a/x86/DLLs/unicodedata.pdb
+++ b/x86/DLLs/unicodedata.pdb
Binary files differ
diff --git a/x86/DLLs/unicodedata.pyd b/x86/DLLs/unicodedata.pyd
index 9424354..8565c8d 100755
--- a/x86/DLLs/unicodedata.pyd
+++ b/x86/DLLs/unicodedata.pyd
Binary files differ
diff --git a/x86/DLLs/unicodedata_d.pdb b/x86/DLLs/unicodedata_d.pdb
index 8351056..f692324 100755
--- a/x86/DLLs/unicodedata_d.pdb
+++ b/x86/DLLs/unicodedata_d.pdb
Binary files differ
diff --git a/x86/DLLs/unicodedata_d.pyd b/x86/DLLs/unicodedata_d.pyd
index 1e80ad6..636d966 100755
--- a/x86/DLLs/unicodedata_d.pyd
+++ b/x86/DLLs/unicodedata_d.pyd
Binary files differ
diff --git a/x86/DLLs/winsound.pdb b/x86/DLLs/winsound.pdb
index 13839fb..0d21b00 100755
--- a/x86/DLLs/winsound.pdb
+++ b/x86/DLLs/winsound.pdb
Binary files differ
diff --git a/x86/DLLs/winsound.pyd b/x86/DLLs/winsound.pyd
index 09bfce5..5cb0d72 100755
--- a/x86/DLLs/winsound.pyd
+++ b/x86/DLLs/winsound.pyd
Binary files differ
diff --git a/x86/DLLs/winsound_d.pdb b/x86/DLLs/winsound_d.pdb
index 4c60865..c297af6 100755
--- a/x86/DLLs/winsound_d.pdb
+++ b/x86/DLLs/winsound_d.pdb
Binary files differ
diff --git a/x86/DLLs/winsound_d.pyd b/x86/DLLs/winsound_d.pyd
index 272ebb1..969dcfe 100755
--- a/x86/DLLs/winsound_d.pyd
+++ b/x86/DLLs/winsound_d.pyd
Binary files differ
diff --git a/x86/Include/fileobject.h b/x86/Include/fileobject.h
index 434605d..1b540f9 100755
--- a/x86/Include/fileobject.h
+++ b/x86/Include/fileobject.h
@@ -70,13 +70,16 @@ size_t Py_UniversalNewlineFread(char *, size_t, FILE *, PyObject *);
*/
int _PyFile_SanitizeMode(char *mode);
-#if defined _MSC_VER && _MSC_VER < 1900
+#if defined _MSC_VER && _MSC_VER >= 1400
/* A routine to check if a file descriptor is valid on Windows. Returns 0
* and sets errno to EBADF if it isn't. This is to avoid Assertions
* from various functions in the Windows CRT beginning with
* Visual Studio 2005
*/
int _PyVerify_fd(int fd);
+#elif defined _MSC_VER && _MSC_VER >= 1200
+/* fdopen doesn't set errno EBADF and crashes for large fd on debug build */
+#define _PyVerify_fd(fd) (_get_osfhandle(fd) >= 0)
#else
#define _PyVerify_fd(A) (1) /* dummy */
#endif
diff --git a/x86/Lib/distutils/command/wininst-9.0-amd64.exe b/x86/Lib/distutils/command/wininst-9.0-amd64.exe
index 94bf4d8..11d8011 100755
--- a/x86/Lib/distutils/command/wininst-9.0-amd64.exe
+++ b/x86/Lib/distutils/command/wininst-9.0-amd64.exe
Binary files differ
diff --git a/x86/Lib/distutils/command/wininst-9.0-amd64.pdb b/x86/Lib/distutils/command/wininst-9.0-amd64.pdb
deleted file mode 100755
index 52b672b..0000000
--- a/x86/Lib/distutils/command/wininst-9.0-amd64.pdb
+++ /dev/null
Binary files differ
diff --git a/x86/Lib/distutils/command/wininst-9.0.exe b/x86/Lib/distutils/command/wininst-9.0.exe
index 52d4050..dadb31d 100755
--- a/x86/Lib/distutils/command/wininst-9.0.exe
+++ b/x86/Lib/distutils/command/wininst-9.0.exe
Binary files differ
diff --git a/x86/Lib/distutils/command/wininst-9.0.pdb b/x86/Lib/distutils/command/wininst-9.0.pdb
deleted file mode 100755
index b6d92cd..0000000
--- a/x86/Lib/distutils/command/wininst-9.0.pdb
+++ /dev/null
Binary files differ
diff --git a/x86/libs/_ctypes.lib b/x86/libs/_ctypes.lib
index 3d9a8b3..3f314be 100755
--- a/x86/libs/_ctypes.lib
+++ b/x86/libs/_ctypes.lib
Binary files differ
diff --git a/x86/libs/_ctypes_test.lib b/x86/libs/_ctypes_test.lib
index 716ede7..d97822e 100755
--- a/x86/libs/_ctypes_test.lib
+++ b/x86/libs/_ctypes_test.lib
Binary files differ
diff --git a/x86/libs/_elementtree.lib b/x86/libs/_elementtree.lib
index df06722..df3838e 100755
--- a/x86/libs/_elementtree.lib
+++ b/x86/libs/_elementtree.lib
Binary files differ
diff --git a/x86/libs/_multiprocessing.lib b/x86/libs/_multiprocessing.lib
index 7ffe93b..7d3e56e 100755
--- a/x86/libs/_multiprocessing.lib
+++ b/x86/libs/_multiprocessing.lib
Binary files differ
diff --git a/x86/libs/_socket.lib b/x86/libs/_socket.lib
index 2ed4603..f051314 100755
--- a/x86/libs/_socket.lib
+++ b/x86/libs/_socket.lib
Binary files differ
diff --git a/x86/libs/_testcapi.lib b/x86/libs/_testcapi.lib
index 01fa37f..3db5d9b 100755
--- a/x86/libs/_testcapi.lib
+++ b/x86/libs/_testcapi.lib
Binary files differ
diff --git a/x86/libs/pyexpat.lib b/x86/libs/pyexpat.lib
index 990d436..2a1d6cb 100755
--- a/x86/libs/pyexpat.lib
+++ b/x86/libs/pyexpat.lib
Binary files differ
diff --git a/x86/libs/python27.lib b/x86/libs/python27.lib
index a37fe68..883fc0a 100755
--- a/x86/libs/python27.lib
+++ b/x86/libs/python27.lib
Binary files differ
diff --git a/x86/libs/python27_d.lib b/x86/libs/python27_d.lib
index d0ee8b5..dfdba84 100755
--- a/x86/libs/python27_d.lib
+++ b/x86/libs/python27_d.lib
Binary files differ
diff --git a/x86/libs/select.lib b/x86/libs/select.lib
index 24a3aa1..30ee160 100755
--- a/x86/libs/select.lib
+++ b/x86/libs/select.lib
Binary files differ
diff --git a/x86/libs/unicodedata.lib b/x86/libs/unicodedata.lib
index b3b584a..f454eec 100755
--- a/x86/libs/unicodedata.lib
+++ b/x86/libs/unicodedata.lib
Binary files differ
diff --git a/x86/libs/winsound.lib b/x86/libs/winsound.lib
index 0fc9bef..c57b494 100755
--- a/x86/libs/winsound.lib
+++ b/x86/libs/winsound.lib
Binary files differ
diff --git a/x86/python.exe b/x86/python.exe
index a1e3b34..52e7896 100755
--- a/x86/python.exe
+++ b/x86/python.exe
Binary files differ
diff --git a/x86/python.pdb b/x86/python.pdb
index c89e82c..9a19744 100755
--- a/x86/python.pdb
+++ b/x86/python.pdb
Binary files differ
diff --git a/x86/python27.dll b/x86/python27.dll
index 032bfe0..dfae973 100755
--- a/x86/python27.dll
+++ b/x86/python27.dll
Binary files differ
diff --git a/x86/python27.pdb b/x86/python27.pdb
index 473c6e7..9d6bef8 100755
--- a/x86/python27.pdb
+++ b/x86/python27.pdb
Binary files differ
diff --git a/x86/python27_d.dll b/x86/python27_d.dll
index b301e78..5d7ab19 100755
--- a/x86/python27_d.dll
+++ b/x86/python27_d.dll
Binary files differ
diff --git a/x86/python27_d.pdb b/x86/python27_d.pdb
index 82c95d0..79fae8e 100755
--- a/x86/python27_d.pdb
+++ b/x86/python27_d.pdb
Binary files differ
diff --git a/x86/python_d.exe b/x86/python_d.exe
index 7d39df1..a0efdf5 100755
--- a/x86/python_d.exe
+++ b/x86/python_d.exe
Binary files differ
diff --git a/x86/pythonw.exe b/x86/pythonw.exe
index 58e4900..df2965d 100755
--- a/x86/pythonw.exe
+++ b/x86/pythonw.exe
Binary files differ
diff --git a/x86/pythonw.pdb b/x86/pythonw.pdb
index 566dba8..532b429 100755
--- a/x86/pythonw.pdb
+++ b/x86/pythonw.pdb
Binary files differ
diff --git a/x86/pythonw_d.exe b/x86/pythonw_d.exe
index 4fb61c4..524508c 100755
--- a/x86/pythonw_d.exe
+++ b/x86/pythonw_d.exe
Binary files differ
diff --git a/x86/w9xpopen.exe b/x86/w9xpopen.exe
index 1eb8366..c6db2e9 100755
--- a/x86/w9xpopen.exe
+++ b/x86/w9xpopen.exe
Binary files differ
diff --git a/x86/w9xpopen.pdb b/x86/w9xpopen.pdb
index 82e9ded..b242d14 100755
--- a/x86/w9xpopen.pdb
+++ b/x86/w9xpopen.pdb
Binary files differ