####################### # # Licensed to the Apache Software Foundation (ASF) under one or more contributor license # agreements. See the NOTICE file distributed with this work for additional information regarding # copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software distributed under the License # is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express # or implied. See the License for the specific language governing permissions and limitations under # the License. # ####################### # Check128BitCas.cmake # # This will define the following variables # # TS_HAS_128BIT_CAS # TS_NEEDS_MCX16_FOR_CAS # set(CHECK_PROGRAM " int main(void) { __int128_t x = 0; return __sync_bool_compare_and_swap(&x,0,10); } " ) include(CheckCSourceCompiles) check_c_source_compiles("${CHECK_PROGRAM}" TS_HAS_128BIT_CAS) if(NOT TS_HAS_128BIT_CAS) unset(TS_HAS_128BIT_CAS CACHE) set(CMAKE_REQUIRED_FLAGS "-Werror -mcx16") check_c_source_compiles("${CHECK_PROGRAM}" TS_HAS_128BIT_CAS) set(NEED_MCX16 ${TS_HAS_128BIT_CAS}) unset(CMAKE_REQUIRED_FLAGS) endif() set(TS_NEEDS_MCX16_FOR_CAS ${NEED_MCX16} CACHE BOOL "Whether -mcx16 is needed to compile CAS" ) unset(CHECK_PROGRAM) unset(NEEDS_MCX16) mark_as_advanced(TS_HAS_128BIT_CAS TS_NEEDS_MCX16_FOR_CAS)