arch_check.h revision 8117
13115SN/A/* 24780SN/A * Copyright (c) 2006-2007 The Regents of The University of Michigan 33115SN/A * All rights reserved. 43115SN/A * 53115SN/A * Redistribution and use in source and binary forms, with or without 63115SN/A * modification, are permitted provided that the following conditions are 73115SN/A * met: redistributions of source code must retain the above copyright 83115SN/A * notice, this list of conditions and the following disclaimer; 93115SN/A * redistributions in binary form must reproduce the above copyright 103115SN/A * notice, this list of conditions and the following disclaimer in the 113115SN/A * documentation and/or other materials provided with the distribution; 123115SN/A * neither the name of the copyright holders nor the names of its 133115SN/A * contributors may be used to endorse or promote products derived from 143115SN/A * this software without specific prior written permission. 153115SN/A * 163115SN/A * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 173115SN/A * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 183115SN/A * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 193115SN/A * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 203115SN/A * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 213115SN/A * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 223115SN/A * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 233115SN/A * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 243115SN/A * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 253115SN/A * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 263115SN/A * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 273115SN/A * 283115SN/A * Authors: Gabe Black 293115SN/A */ 303115SN/A 318113Sgblack@eecs.umich.edu#if defined __STATETRACE_ALPHA__ 328113Sgblack@eecs.umich.edu #if !defined __alpha__ 338113Sgblack@eecs.umich.edu #error "Alpha toolchain required." 348113Sgblack@eecs.umich.edu #endif 358113Sgblack@eecs.umich.edu#elif defined __STATETRACE_AMD64__ 368113Sgblack@eecs.umich.edu #if !defined __amd64__ 378113Sgblack@eecs.umich.edu #error "Amd64 toolchain required." 388113Sgblack@eecs.umich.edu #endif 398113Sgblack@eecs.umich.edu#elif defined __STATETRACE_ARM__ 408113Sgblack@eecs.umich.edu #if !defined __arm__ 418113Sgblack@eecs.umich.edu #error "Arm toolchain required." 428113Sgblack@eecs.umich.edu #endif 438113Sgblack@eecs.umich.edu#elif defined __STATETRACE_HPPA__ 448113Sgblack@eecs.umich.edu #if !defined __hppa__ 458113Sgblack@eecs.umich.edu #error "Hppa toolchain required." 468113Sgblack@eecs.umich.edu #endif 478117Sgblack@eecs.umich.edu#elif defined __STATETRACE_I686__ 488113Sgblack@eecs.umich.edu #if !(defined __i386__ || defined __i486__ || \ 498116Sgblack@eecs.umich.edu defined __i586__ || defined __i686__) 508117Sgblack@eecs.umich.edu #error "I686 toolchain required." 518113Sgblack@eecs.umich.edu #endif 528113Sgblack@eecs.umich.edu#elif defined __STATETRACE_IA64__ 538113Sgblack@eecs.umich.edu #if !defined __ia64__ 548113Sgblack@eecs.umich.edu #error "IA64 toolchain required." 558113Sgblack@eecs.umich.edu #endif 568113Sgblack@eecs.umich.edu#elif defined __STATETRACE_MIPS__ 578113Sgblack@eecs.umich.edu #if !defined __mips__ 588113Sgblack@eecs.umich.edu #error "Mips toolchain required." 598113Sgblack@eecs.umich.edu #endif 608113Sgblack@eecs.umich.edu#elif defined __STATETRACE_POWERPC__ 618113Sgblack@eecs.umich.edu #if !defined __powerpc__ 628113Sgblack@eecs.umich.edu #error "PowerPC toolchain required." 638113Sgblack@eecs.umich.edu #endif 648113Sgblack@eecs.umich.edu#elif defined __STATETRACE_SPARC__ 658113Sgblack@eecs.umich.edu #if !defined __sparc__ 668113Sgblack@eecs.umich.edu #error "Sparc toolchain required." 678113Sgblack@eecs.umich.edu #endif 688113Sgblack@eecs.umich.edu#elif defined __STATETRACE_SH__ 698113Sgblack@eecs.umich.edu #if !defined __sh__ 708113Sgblack@eecs.umich.edu #error "SuperH toolchain required." 718113Sgblack@eecs.umich.edu #endif 728113Sgblack@eecs.umich.edu#elif defined __STATETRACE__S390__ 738113Sgblack@eecs.umich.edu #if !defined __s390__ 748113Sgblack@eecs.umich.edu #error "System/390 toolchain required." 758113Sgblack@eecs.umich.edu #endif 763115SN/A#else 778113Sgblack@eecs.umich.edu #error "Couldn't determine architecture." 783115SN/A#endif 79