diff -uNr llvm-3.9.0.src.orig/cmake/config-ix.cmake llvm-3.9.0.src/cmake/config-ix.cmake --- llvm-3.9.0.src.orig/cmake/config-ix.cmake 2015-09-21 08:59:14.000000000 -0400 +++ llvm-3.9.0.src/cmake/config-ix.cmake 2015-09-21 09:42:08.000000000 -0400 @@ -323,6 +323,12 @@ set(LLVM_HOST_TRIPLE "${LLVM_INFERRED_HOST_TRIPLE}" CACHE STRING "Host on which LLVM binaries will run") +if( APPLE ) +get_host_osx_version(LLVM_INFERRED_OSX_VERSION) +set(LLVM_HOST_OSX_VERSION "${LLVM_INFERRED_OSX_VERSION}" CACHE STRING + "Host version of Mac OS X") +endif( APPLE ) + # Determine the native architecture. string(TOLOWER "${LLVM_TARGET_ARCH}" LLVM_NATIVE_ARCH) if( LLVM_NATIVE_ARCH STREQUAL "host" ) diff -uNr llvm-3.9.0.src.orig/cmake/modules/GetHostTriple.cmake llvm-3.9.0.src/cmake/modules/GetHostTriple.cmake --- llvm-3.9.0.src.orig/cmake/modules/GetHostTriple.cmake 2015-07-04 14:35:51.000000000 -0400 +++ llvm-3.9.0.src/cmake/modules/GetHostTriple.cmake 2015-09-21 09:42:08.000000000 -0400 @@ -28,3 +28,15 @@ set( ${var} ${value} PARENT_SCOPE ) message(STATUS "Target triple: ${value}") endfunction( get_host_triple var ) + +# Mac OS X only: get the host version +function( get_host_osx_version var ) + if( APPLE ) + execute_process(COMMAND sw_vers -productVersion COMMAND cut -d. -f1-2 + RESULT_VARIABLE TT_RV + OUTPUT_VARIABLE value + OUTPUT_STRIP_TRAILING_WHITESPACE) + set( ${var} ${value} PARENT_SCOPE ) + message(STATUS "Host OS X version: ${value}") + endif ( APPLE ) +endfunction( get_host_osx_version var ) diff -uNr llvm-3.9.0.src.orig/utils/lit/lit/TestRunner.py llvm-3.9.0.src/utils/lit/lit/TestRunner.py --- llvm-3.9.0.src.orig/utils/lit/lit/TestRunner.py 2015-09-21 08:56:28.000000000 -0400 +++ llvm-3.9.0.src/utils/lit/lit/TestRunner.py 2015-09-21 09:42:08.000000000 -0400 @@ -484,11 +484,16 @@ return str(line_number - int(match.group(2))) ln = re.sub('%\(line *([\+-]) *(\d+)\)', replace_line_number, ln) + ln1 = ln.split(' ')[1]; # Collapse lines with trailing '\\'. if script and script[-1][-1] == '\\': script[-1] = script[-1][:-1] + ln - else: + # do not commit this patch + # exception: built-in shell commands and operators + elif ln[1] == '(' or ln[1] == '{' or ln[1] == '!' or ln[1] == '|' or ln1 == 'export' or ln1 == 'env' or ln1 == 'cd' or ln1 == 'pushd' or ln1 == 'set' or ln1 == 'test' or ln1 == 'umask' or ln1 == '%clang_profgen' or 'LLVM_PROFILE_FILE=' in ln1 or 'LLVM_PROFILE_VERBOSE_ERRORS=' in ln1: script.append(ln) + else: + script.append('gtimeout 1m ' +ln) elif command_type == 'XFAIL': test.xfails.extend([s.strip() for s in ln.split(',')]) elif command_type == 'REQUIRES':