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