Commit 2ade088e authored by Kenton Varda's avatar Kenton Varda

Extend super-test to include 32-bit build. Fix a bug uncovered by 32-bit Clang.

parent e21b854d
...@@ -305,7 +305,10 @@ private: ...@@ -305,7 +305,10 @@ private:
std::map<kj::StringPtr, kj::Own<Node>> builtinDecls; std::map<kj::StringPtr, kj::Own<Node>> builtinDecls;
// Map of built-in declarations, like "Int32" and "List", which make up the global scope. // Map of built-in declarations, like "Int32" and "List", which make up the global scope.
mutable uint64_t nextBogusId = 1000; mutable uint32_t nextBogusId = 1000;
// Counter for assigning bogus IDs to nodes whose real ID is a duplicate. 32-bit so that we
// can atomically increment it on 32-bit machines. It will never overflow since that would
// require compiling at least 2^32 nodes in one process.
}; };
// ======================================================================================= // =======================================================================================
......
...@@ -191,9 +191,44 @@ echo "Testing --with-external-capnp" ...@@ -191,9 +191,44 @@ echo "Testing --with-external-capnp"
echo "=========================================================================" echo "========================================================================="
doit make distclean doit make distclean
doit ./configure --prefix="$STAGING" --with-external-capnp CAPNP=$STAGING/bin/capnp doit ./configure --prefix="$STAGING" --disable-shared \
--with-external-capnp CAPNP=$STAGING/bin/capnp
doit make -j6 check doit make -j6 check
doit make distclean
# Test 32-bit build now while we have $STAGING available for cross-compiling.
if [ "x`uname -m`" = "xx86_64" ]; then
echo "========================================================================="
echo "Testing 32-bit build"
echo "========================================================================="
if [[ "`uname`" =~ CYGWIN ]]; then
# It's just not possible to run cygwin32 binaries from within cygwin64.
# Build as if we are cross-compiling, using the capnp we installed to $STAGING.
doit ./configure --prefix="$STAGING" --disable-shared --host=i686-pc-cygwin \
--with-external-capnp CAPNP=$STAGING/bin/capnp
doit make -j6 capnp-test.exe
# Expect a cygwin32 sshd to be listening at localhost port 2222, and use it
# to run the tests.
doit scp -P 2222 capnp-test.exe localhost:~/tmp-capnp-test.exe
doit ssh -p 2222 localhost './tmp-capnp-test.exe && rm tmp-capnp-test.exe'
doit make distclean
elif [ "x${CXX:-g++}" != "xg++-4.8" ]; then
doit ./configure CXX="${CXX:-g++} -m32" --disable-shared
doit make -j6 check
doit make distclean
fi
fi
echo "========================================================================="
echo "Testing c++ uninstall"
echo "========================================================================="
doit ./configure --prefix="$STAGING"
doit make uninstall doit make uninstall
echo "=========================================================================" echo "========================================================================="
...@@ -208,13 +243,13 @@ echo "=========================================================================" ...@@ -208,13 +243,13 @@ echo "========================================================================="
echo "Testing with -fno-rtti and -fno-exceptions" echo "Testing with -fno-rtti and -fno-exceptions"
echo "=========================================================================" echo "========================================================================="
doit ./configure CXXFLAGS=-fno-rtti doit ./configure --disable-shared CXXFLAGS=-fno-rtti
doit make -j6 check doit make -j6 check
doit make distclean doit make distclean
doit ./configure CXXFLAGS=-fno-exceptions doit ./configure --disable-shared CXXFLAGS=-fno-exceptions
doit make -j6 check doit make -j6 check
doit make distclean doit make distclean
doit ./configure CXXFLAGS="-fno-rtti -fno-exceptions" doit ./configure --disable-shared CXXFLAGS="-fno-rtti -fno-exceptions"
doit make -j6 check doit make -j6 check
doit make maintainer-clean doit make maintainer-clean
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment