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