From 0c5819e04c85660e52e0380f90a1ea3349e1162e Mon Sep 17 00:00:00 2001 From: Bob Wilson Date: Tue, 5 Feb 2013 22:59:42 +0000 Subject: [PATCH] Preprocess Apple llvmCore headers to reflect NDEBUG setting. If an Apple llvmCore build is done without assertions, and a client uses the llvmCore headers with assertions enabled, or vice versa, then things will break because some of the structure sizes in the API are different. Use the unifdef tool to make the headers unconditionally match the way the llvmCore libraries were built. llvm-svn: 174460 --- utils/buildit/build_llvm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/utils/buildit/build_llvm b/utils/buildit/build_llvm index 896ede3e466..c056b9742b9 100755 --- a/utils/buildit/build_llvm +++ b/utils/buildit/build_llvm @@ -234,6 +234,16 @@ RC_ProjectSourceSubversion=`printf "%d" $LLVM_MINOR_VERSION` echo "#define LLVM_VERSION ${RC_ProjectSourceVersion}" > $DEST_DIR$DEST_ROOT/include/llvm/Version.h echo "#define LLVM_MINOR_VERSION ${RC_ProjectSourceSubversion}" >> $DEST_DIR$DEST_ROOT/include/llvm/Version.h +# Run unifdef to preprocess the installed headers to reflect whether this +# was a debug or release build. +for file in `find $DEST_DIR$DEST_ROOT/include -type f -print`; do + if [ "$LLVM_ASSERTIONS" = yes ]; then + unifdef -UNDEBUG -D_DEBUG -o $file $file + else + unifdef -DNDEBUG -U_DEBUG -ULLVM_ENABLE_DUMP -o $file $file + fi +done + # Find the right version of strip to use. STRIP=strip if [ -n "$SDKROOT" ]; then