1From 3503f7f3845caba454949fdf8408e85ca4fdb943 Mon Sep 17 00:00:00 2001 2From: Zong Li <zong.li@sifive.com> 3Date: Wed, 6 May 2020 01:25:55 -0700 4Subject: [PATCH] Makefile for cross compile TestFloat 3e 5 6This commit adds a Makefile for cross compile on TestFloat 73e version. Almost implementation is based on meta-oe porting 8from Fabio Berton <fabio.berton@ossystems.com.br>. 9 10Signed-off-by: Zong Li <zongbox@gmail.com> 11--- 12 TestFloat-3e/build/Linux-Cross-Compile/Makefile | 353 ++++++++++++++++++++++ 13 TestFloat-3e/build/Linux-Cross-Compile/platform.h | 48 +++ 14 2 files changed, 401 insertions(+) 15 create mode 100644 TestFloat-3e/build/Linux-Cross-Compile/Makefile 16 create mode 100644 TestFloat-3e/build/Linux-Cross-Compile/platform.h 17 18diff --git a/TestFloat-3e/build/Linux-Cross-Compile/Makefile b/TestFloat-3e/build/Linux-Cross-Compile/Makefile 19new file mode 100644 20index 0000000..d82b9ed 21--- /dev/null 22+++ b/TestFloat-3e/build/Linux-Cross-Compile/Makefile 23@@ -0,0 +1,353 @@ 24+ 25+#============================================================================= 26+# 27+# This Makefile template is part of TestFloat, Release 3b, a package of 28+# programs for testing the correctness of floating-point arithmetic complying 29+# with the IEEE Standard for Floating-Point, by John R. Hauser. 30+# 31+# Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University 32+# of California. All rights reserved. 33+# 34+# Redistribution and use in source and binary forms, with or without 35+# modification, are permitted provided that the following conditions are met: 36+# 37+# 1. Redistributions of source code must retain the above copyright notice, 38+# this list of conditions, and the following disclaimer. 39+# 40+# 2. Redistributions in binary form must reproduce the above copyright 41+# notice, this list of conditions, and the following disclaimer in the 42+# documentation and/or other materials provided with the distribution. 43+# 44+# 3. Neither the name of the University nor the names of its contributors 45+# may be used to endorse or promote products derived from this software 46+# without specific prior written permission. 47+# 48+# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY 49+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 50+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE 51+# DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY 52+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 53+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 54+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 55+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 56+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 57+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 58+# 59+#============================================================================= 60+ 61+SOURCE_DIR ?= ../../source 62+SOFTFLOAT_DIR ?= ../../../SoftFloat-3e 63+PLATFORM ?= Linux-Cross-Compile 64+ 65+SUBJ_SOURCE_DIR = $(SOURCE_DIR)/subj-C 66+SOFTFLOAT_INCLUDE_DIR = $(SOFTFLOAT_DIR)/source/include 67+ 68+SOFTFLOAT_H = \ 69+ $(SOFTFLOAT_INCLUDE_DIR)/softfloat_types.h \ 70+ $(SOFTFLOAT_INCLUDE_DIR)/softfloat.h 71+SOFTFLOAT_LIB = $(SOFTFLOAT_DIR)/build/$(PLATFORM)/softfloat$(LIB) 72+ 73+TESTFLOAT_OPTS ?= -DFLOAT16 -DFLOAT64 -DEXTFLOAT80 -DFLOAT128 -DFLOAT_ROUND_ODD 74+ 75+DELETE = rm -f 76+C_INCLUDES = \ 77+ -I. -I$(SUBJ_SOURCE_DIR) -I$(SOURCE_DIR) -I$(SOFTFLOAT_INCLUDE_DIR) 78+COMPILE_C = \ 79+ ${CC} -c -Werror-implicit-function-declaration \ 80+ $(TESTFLOAT_OPTS) $(C_INCLUDES) -O2 -o $@ 81+COMPILE_SLOWFLOAT_C = \ 82+ ${CC} -c -Werror-implicit-function-declaration \ 83+ $(TESTFLOAT_OPTS) $(C_INCLUDES) -O3 -o $@ 84+MAKELIB = ${AR} crs $@ 85+LINK = ${CC} -o $@ ${LDFLAGS} 86+OTHER_LIBS = -lm 87+ 88+OBJ = .o 89+LIB = .a 90+EXE = 91+ 92+.PHONY: all 93+all: \ 94+ testsoftfloat$(EXE) \ 95+ timesoftfloat$(EXE) \ 96+ testfloat_gen$(EXE) \ 97+ testfloat_ver$(EXE) \ 98+ testfloat$(EXE) \ 99+ 100+OBJS_GENCASES = \ 101+ genCases_ui32$(OBJ) \ 102+ genCases_ui64$(OBJ) \ 103+ genCases_i32$(OBJ) \ 104+ genCases_i64$(OBJ) \ 105+ genCases_f16$(OBJ) \ 106+ genCases_f32$(OBJ) \ 107+ genCases_f64$(OBJ) \ 108+ genCases_extF80$(OBJ) \ 109+ genCases_f128$(OBJ) \ 110+ 111+OBJS_WRITECASE = \ 112+ writeCase_a_ui32$(OBJ) \ 113+ writeCase_a_ui64$(OBJ) \ 114+ writeCase_a_f16$(OBJ) \ 115+ writeCase_ab_f16$(OBJ) \ 116+ writeCase_abc_f16$(OBJ) \ 117+ writeCase_a_f32$(OBJ) \ 118+ writeCase_ab_f32$(OBJ) \ 119+ writeCase_abc_f32$(OBJ) \ 120+ writeCase_a_f64$(OBJ) \ 121+ writeCase_ab_f64$(OBJ) \ 122+ writeCase_abc_f64$(OBJ) \ 123+ writeCase_a_extF80M$(OBJ) \ 124+ writeCase_ab_extF80M$(OBJ) \ 125+ writeCase_a_f128M$(OBJ) \ 126+ writeCase_ab_f128M$(OBJ) \ 127+ writeCase_abc_f128M$(OBJ) \ 128+ writeCase_z_bool$(OBJ) \ 129+ writeCase_z_ui32$(OBJ) \ 130+ writeCase_z_ui64$(OBJ) \ 131+ writeCase_z_f16$(OBJ) \ 132+ writeCase_z_f32$(OBJ) \ 133+ writeCase_z_f64$(OBJ) \ 134+ writeCase_z_extF80M$(OBJ) \ 135+ writeCase_z_f128M$(OBJ) \ 136+ 137+OBJS_TEST = \ 138+ test_a_ui32_z_f16$(OBJ) \ 139+ test_a_ui32_z_f32$(OBJ) \ 140+ test_a_ui32_z_f64$(OBJ) \ 141+ test_a_ui32_z_extF80$(OBJ) \ 142+ test_a_ui32_z_f128$(OBJ) \ 143+ test_a_ui64_z_f16$(OBJ) \ 144+ test_a_ui64_z_f32$(OBJ) \ 145+ test_a_ui64_z_f64$(OBJ) \ 146+ test_a_ui64_z_extF80$(OBJ) \ 147+ test_a_ui64_z_f128$(OBJ) \ 148+ test_a_i32_z_f16$(OBJ) \ 149+ test_a_i32_z_f32$(OBJ) \ 150+ test_a_i32_z_f64$(OBJ) \ 151+ test_a_i32_z_extF80$(OBJ) \ 152+ test_a_i32_z_f128$(OBJ) \ 153+ test_a_i64_z_f16$(OBJ) \ 154+ test_a_i64_z_f32$(OBJ) \ 155+ test_a_i64_z_f64$(OBJ) \ 156+ test_a_i64_z_extF80$(OBJ) \ 157+ test_a_i64_z_f128$(OBJ) \ 158+ test_a_f16_z_ui32_rx$(OBJ) \ 159+ test_a_f16_z_ui64_rx$(OBJ) \ 160+ test_a_f16_z_i32_rx$(OBJ) \ 161+ test_a_f16_z_i64_rx$(OBJ) \ 162+ test_a_f16_z_ui32_x$(OBJ) \ 163+ test_a_f16_z_ui64_x$(OBJ) \ 164+ test_a_f16_z_i32_x$(OBJ) \ 165+ test_a_f16_z_i64_x$(OBJ) \ 166+ test_a_f16_z_f32$(OBJ) \ 167+ test_a_f16_z_f64$(OBJ) \ 168+ test_a_f16_z_extF80$(OBJ) \ 169+ test_a_f16_z_f128$(OBJ) \ 170+ test_az_f16$(OBJ) \ 171+ test_az_f16_rx$(OBJ) \ 172+ test_abz_f16$(OBJ) \ 173+ test_abcz_f16$(OBJ) \ 174+ test_ab_f16_z_bool$(OBJ) \ 175+ test_a_f32_z_ui32_rx$(OBJ) \ 176+ test_a_f32_z_ui64_rx$(OBJ) \ 177+ test_a_f32_z_i32_rx$(OBJ) \ 178+ test_a_f32_z_i64_rx$(OBJ) \ 179+ test_a_f32_z_ui32_x$(OBJ) \ 180+ test_a_f32_z_ui64_x$(OBJ) \ 181+ test_a_f32_z_i32_x$(OBJ) \ 182+ test_a_f32_z_i64_x$(OBJ) \ 183+ test_a_f32_z_f16$(OBJ) \ 184+ test_a_f32_z_f64$(OBJ) \ 185+ test_a_f32_z_extF80$(OBJ) \ 186+ test_a_f32_z_f128$(OBJ) \ 187+ test_az_f32$(OBJ) \ 188+ test_az_f32_rx$(OBJ) \ 189+ test_abz_f32$(OBJ) \ 190+ test_abcz_f32$(OBJ) \ 191+ test_ab_f32_z_bool$(OBJ) \ 192+ test_a_f64_z_ui32_rx$(OBJ) \ 193+ test_a_f64_z_ui64_rx$(OBJ) \ 194+ test_a_f64_z_i32_rx$(OBJ) \ 195+ test_a_f64_z_i64_rx$(OBJ) \ 196+ test_a_f64_z_ui32_x$(OBJ) \ 197+ test_a_f64_z_ui64_x$(OBJ) \ 198+ test_a_f64_z_i32_x$(OBJ) \ 199+ test_a_f64_z_i64_x$(OBJ) \ 200+ test_a_f64_z_f16$(OBJ) \ 201+ test_a_f64_z_f32$(OBJ) \ 202+ test_a_f64_z_extF80$(OBJ) \ 203+ test_a_f64_z_f128$(OBJ) \ 204+ test_az_f64$(OBJ) \ 205+ test_az_f64_rx$(OBJ) \ 206+ test_abz_f64$(OBJ) \ 207+ test_abcz_f64$(OBJ) \ 208+ test_ab_f64_z_bool$(OBJ) \ 209+ test_a_extF80_z_ui32_rx$(OBJ) \ 210+ test_a_extF80_z_ui64_rx$(OBJ) \ 211+ test_a_extF80_z_i32_rx$(OBJ) \ 212+ test_a_extF80_z_i64_rx$(OBJ) \ 213+ test_a_extF80_z_ui32_x$(OBJ) \ 214+ test_a_extF80_z_ui64_x$(OBJ) \ 215+ test_a_extF80_z_i32_x$(OBJ) \ 216+ test_a_extF80_z_i64_x$(OBJ) \ 217+ test_a_extF80_z_f16$(OBJ) \ 218+ test_a_extF80_z_f32$(OBJ) \ 219+ test_a_extF80_z_f64$(OBJ) \ 220+ test_a_extF80_z_f128$(OBJ) \ 221+ test_az_extF80$(OBJ) \ 222+ test_az_extF80_rx$(OBJ) \ 223+ test_abz_extF80$(OBJ) \ 224+ test_ab_extF80_z_bool$(OBJ) \ 225+ test_a_f128_z_ui32_rx$(OBJ) \ 226+ test_a_f128_z_ui64_rx$(OBJ) \ 227+ test_a_f128_z_i32_rx$(OBJ) \ 228+ test_a_f128_z_i64_rx$(OBJ) \ 229+ test_a_f128_z_ui32_x$(OBJ) \ 230+ test_a_f128_z_ui64_x$(OBJ) \ 231+ test_a_f128_z_i32_x$(OBJ) \ 232+ test_a_f128_z_i64_x$(OBJ) \ 233+ test_a_f128_z_f16$(OBJ) \ 234+ test_a_f128_z_f32$(OBJ) \ 235+ test_a_f128_z_f64$(OBJ) \ 236+ test_a_f128_z_extF80$(OBJ) \ 237+ test_az_f128$(OBJ) \ 238+ test_az_f128_rx$(OBJ) \ 239+ test_abz_f128$(OBJ) \ 240+ test_abcz_f128$(OBJ) \ 241+ test_ab_f128_z_bool$(OBJ) \ 242+ 243+OBJS_LIB = \ 244+ uint128_inline$(OBJ) \ 245+ uint128$(OBJ) \ 246+ fail$(OBJ) \ 247+ functions_common$(OBJ) \ 248+ functionInfos$(OBJ) \ 249+ standardFunctionInfos$(OBJ) \ 250+ random$(OBJ) \ 251+ genCases_common$(OBJ) \ 252+ $(OBJS_GENCASES) \ 253+ genCases_writeTestsTotal$(OBJ) \ 254+ verCases_inline$(OBJ) \ 255+ verCases_common$(OBJ) \ 256+ verCases_writeFunctionName$(OBJ) \ 257+ readHex$(OBJ) \ 258+ writeHex$(OBJ) \ 259+ $(OBJS_WRITECASE) \ 260+ testLoops_common$(OBJ) \ 261+ $(OBJS_TEST) \ 262+ 263+uint128$(OBJ): $(SOURCE_DIR)/uint128.h 264+fail$(OBJ): $(SOURCE_DIR)/fail.h 265+functions_common$(OBJ): $(SOFTFLOAT_H) $(SOURCE_DIR)/functions.h 266+functionInfos$(OBJ): $(SOURCE_DIR)/functions.h 267+standardFunctionInfos$(OBJ): $(SOURCE_DIR)/functions.h 268+random$(OBJ): $(SOURCE_DIR)/random.h 269+genCases_common$(OBJ): $(SOURCE_DIR)/fail.h $(SOURCE_DIR)/genCases.h 270+$(OBJS_GENCASES): \ 271+ $(SOURCE_DIR)/random.h $(SOFTFLOAT_H) $(SOURCE_DIR)/genCases.h 272+genCases_f128$(OBJ): $(SOURCE_DIR)/uint128.h 273+genCases_writeTestsTotal$(OBJ): $(SOURCE_DIR)/genCases.h 274+verCases_common$(OBJ): $(SOURCE_DIR)/verCases.h 275+verCases_writeFunctionName$(OBJ): $(SOURCE_DIR)/verCases.h 276+readHex$(OBJ): $(SOURCE_DIR)/readHex.h 277+writeHex$(OBJ): $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h 278+$(OBJS_WRITECASE): \ 279+ $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h $(SOURCE_DIR)/writeCase.h 280+testLoops_common$(OBJ): $(SOURCE_DIR)/testLoops.h 281+$(OBJS_TEST): \ 282+ $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/genCases.h \ 283+ $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h $(SOURCE_DIR)/testLoops.h 284+$(OBJS_LIB): %$(OBJ): platform.h $(SOURCE_DIR)/%.c 285+ $(COMPILE_C) $(SOURCE_DIR)/$*.c 286+testfloat$(LIB): $(OBJS_LIB) 287+ $(MAKELIB) $^ 288+ 289+OBJS_TESTSOFTFLOAT = slowfloat$(OBJ) testsoftfloat$(OBJ) 290+ 291+slowfloat$(OBJ): \ 292+ platform.h $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) \ 293+ $(SOURCE_DIR)/slowfloat.h $(SOURCE_DIR)/slowfloat.c 294+ $(COMPILE_SLOWFLOAT_C) $(SOURCE_DIR)/slowfloat.c 295+testsoftfloat$(OBJ): \ 296+ platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \ 297+ $(SOURCE_DIR)/slowfloat.h $(SOURCE_DIR)/functions.h \ 298+ $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h \ 299+ $(SOURCE_DIR)/testLoops.h $(SOURCE_DIR)/testsoftfloat.c 300+ $(COMPILE_C) $(SOURCE_DIR)/testsoftfloat.c 301+ 302+testsoftfloat$(EXE): $(OBJS_TESTSOFTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB) 303+ $(LINK) $^ $(OTHER_LIBS) 304+ 305+OBJS_TIMESOFTFLOAT = timesoftfloat$(OBJ) 306+ 307+timesoftfloat$(OBJ): \ 308+ platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \ 309+ $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/timesoftfloat.c 310+ $(COMPILE_C) $(SOURCE_DIR)/timesoftfloat.c 311+ 312+timesoftfloat$(EXE): $(OBJS_TIMESOFTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB) 313+ $(LINK) $^ $(OTHER_LIBS) 314+ 315+OBJS_TESTFLOAT_GEN = genLoops$(OBJ) testfloat_gen$(OBJ) 316+ 317+genLoops$(OBJ): \ 318+ platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \ 319+ $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/writeHex.h $(SOURCE_DIR)/genLoops.h \ 320+ $(SOURCE_DIR)/genLoops.c 321+ $(COMPILE_C) $(SOURCE_DIR)/genLoops.c 322+testfloat_gen$(OBJ): \ 323+ $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) $(SOURCE_DIR)/functions.h \ 324+ $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/genLoops.h \ 325+ $(SOURCE_DIR)/testfloat_gen.c 326+ $(COMPILE_C) $(SOURCE_DIR)/testfloat_gen.c 327+ 328+testfloat_gen$(EXE): $(OBJS_TESTFLOAT_GEN) testfloat$(LIB) $(SOFTFLOAT_LIB) 329+ $(LINK) $^ $(OTHER_LIBS) 330+ 331+OBJS_TESTFLOAT_VER = verLoops$(OBJ) testfloat_ver$(OBJ) 332+ 333+verLoops$(OBJ): \ 334+ platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \ 335+ $(SOURCE_DIR)/readHex.h $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h \ 336+ $(SOURCE_DIR)/verLoops.h $(SOURCE_DIR)/verLoops.c 337+ $(COMPILE_C) $(SOURCE_DIR)/verLoops.c 338+testfloat_ver$(OBJ): \ 339+ platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \ 340+ $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/verCases.h \ 341+ $(SOURCE_DIR)/writeCase.h $(SOURCE_DIR)/verLoops.h \ 342+ $(SOURCE_DIR)/testfloat_ver.c 343+ $(COMPILE_C) $(SOURCE_DIR)/testfloat_ver.c 344+ 345+testfloat_ver$(EXE): $(OBJS_TESTFLOAT_VER) testfloat$(LIB) $(SOFTFLOAT_LIB) 346+ $(LINK) $^ $(OTHER_LIBS) 347+ 348+OBJS_TESTFLOAT = subjfloat$(OBJ) subjfloat_functions$(OBJ) testfloat$(OBJ) 349+ 350+subjfloat$(OBJ): \ 351+ platform.h $(SOFTFLOAT_H) $(SUBJ_SOURCE_DIR)/subjfloat_config.h \ 352+ $(SOURCE_DIR)/subjfloat.h $(SUBJ_SOURCE_DIR)/subjfloat.c 353+ $(COMPILE_C) $(SUBJ_SOURCE_DIR)/subjfloat.c 354+subjfloat_functions$(OBJ): \ 355+ platform.h $(SUBJ_SOURCE_DIR)/subjfloat_config.h $(SOURCE_DIR)/subjfloat.h \ 356+ $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/subjfloat_functions.c 357+ $(COMPILE_C) $(SOURCE_DIR)/subjfloat_functions.c 358+testfloat$(OBJ): \ 359+ platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \ 360+ $(SUBJ_SOURCE_DIR)/subjfloat_config.h $(SOURCE_DIR)/subjfloat.h \ 361+ $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/verCases.h \ 362+ $(SOURCE_DIR)/testLoops.h $(SOURCE_DIR)/testfloat.c 363+ $(COMPILE_C) $(SOURCE_DIR)/testfloat.c 364+ 365+testfloat$(EXE): $(OBJS_TESTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB) 366+ $(LINK) $^ $(OTHER_LIBS) 367+ 368+.PHONY: clean 369+clean: 370+ $(DELETE) $(OBJS_LIB) testfloat$(LIB) 371+ $(DELETE) $(OBJS_TESTSOFTFLOAT) testsoftfloat$(EXE) 372+ $(DELETE) $(OBJS_TIMESOFTFLOAT) timesoftfloat$(EXE) 373+ $(DELETE) $(OBJS_TESTFLOAT_GEN) testfloat_gen$(EXE) 374+ $(DELETE) $(OBJS_TESTFLOAT_VER) testfloat_ver$(EXE) 375+ $(DELETE) $(OBJS_TESTFLOAT) testfloat$(EXE) 376+ 377diff --git a/TestFloat-3e/build/Linux-Cross-Compile/platform.h b/TestFloat-3e/build/Linux-Cross-Compile/platform.h 378new file mode 100644 379index 0000000..487a43b 380--- /dev/null 381+++ b/TestFloat-3e/build/Linux-Cross-Compile/platform.h 382@@ -0,0 +1,48 @@ 383+ 384+/*============================================================================ 385+ 386+This C header template is part of TestFloat, Release 3e, a package of programs 387+for testing the correctness of floating-point arithmetic complying with the 388+IEEE Standard for Floating-Point, by John R. Hauser. 389+ 390+Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of 391+California. All rights reserved. 392+ 393+Redistribution and use in source and binary forms, with or without 394+modification, are permitted provided that the following conditions are met: 395+ 396+ 1. Redistributions of source code must retain the above copyright notice, 397+ this list of conditions, and the following disclaimer. 398+ 399+ 2. Redistributions in binary form must reproduce the above copyright notice, 400+ this list of conditions, and the following disclaimer in the documentation 401+ and/or other materials provided with the distribution. 402+ 403+ 3. Neither the name of the University nor the names of its contributors may 404+ be used to endorse or promote products derived from this software without 405+ specific prior written permission. 406+ 407+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY 408+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 409+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE 410+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY 411+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 412+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 413+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 414+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 415+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 416+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 417+ 418+=============================================================================*/ 419+ 420+/*---------------------------------------------------------------------------- 421+*----------------------------------------------------------------------------*/ 422+#define LITTLEENDIAN 1 423+ 424+/*---------------------------------------------------------------------------- 425+*----------------------------------------------------------------------------*/ 426+#ifdef __GNUC_STDC_INLINE__ 427+#define INLINE inline 428+#else 429+#define INLINE extern inline 430+#endif 431-- 4322.7.4 433 434