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