Upstream-Status: Inappropriate [configuration]

From 9aa4a416f05967320c1aa52bdccfe105a3bf3269 Mon Sep 17 00:00:00 2001
From: Fabio Berton <fabio.berton@ossystems.com.br>
Date: Thu, 4 Feb 2016 09:16:09 -0200
Subject: [PATCH 2/2] Makefile for cross compile TestFloat

Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
---
 TestFloat-3a/build/Linux-Cross-Compile/Makefile   | 321 ++++++++++++++++++++++
 TestFloat-3a/build/Linux-Cross-Compile/platform.h |  45 +++
 2 files changed, 366 insertions(+)
 create mode 100644 TestFloat-3a/build/Linux-Cross-Compile/Makefile
 create mode 100644 TestFloat-3a/build/Linux-Cross-Compile/platform.h

diff --git a/TestFloat-3a/build/Linux-Cross-Compile/Makefile b/TestFloat-3a/build/Linux-Cross-Compile/Makefile
new file mode 100644
index 0000000..a89326a
--- /dev/null
+++ b/TestFloat-3a/build/Linux-Cross-Compile/Makefile
@@ -0,0 +1,321 @@
+
+#=============================================================================
+#
+# This Makefile is part of TestFloat, Release 3a, a package of programs for
+# testing the correctness of floating-point arithmetic complying with the IEEE
+# Standard for Floating-Point, by John R. Hauser.
+#
+# Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
+# California.  All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+#  1. Redistributions of source code must retain the above copyright notice,
+#     this list of conditions, and the following disclaimer.
+#
+#  2. Redistributions in binary form must reproduce the above copyright
+#     notice, this list of conditions, and the following disclaimer in the
+#     documentation and/or other materials provided with the distribution.
+#
+#  3. Neither the name of the University nor the names of its contributors
+#     may be used to endorse or promote products derived from this software
+#     without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+# DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+#=============================================================================
+
+SOURCE_DIR = ../../source
+SUBJ_SOURCE_DIR = $(SOURCE_DIR)/subj-C
+SOFTFLOAT_DIR = ../../../SoftFloat-3a
+SOFTFLOAT_INCLUDE_DIR = $(SOFTFLOAT_DIR)/source/include
+PLATFORM = Linux-Cross-Compile
+
+SOFTFLOAT_H = \
+  $(SOFTFLOAT_INCLUDE_DIR)/softfloat_types.h \
+  $(SOFTFLOAT_INCLUDE_DIR)/softfloat.h
+SOFTFLOAT_LIB = $(SOFTFLOAT_DIR)/build/$(PLATFORM)/softfloat$(LIB)
+
+TESTFLOAT_OPTS = -DEXTFLOAT80 -DFLOAT128 -DLONG_DOUBLE_IS_EXTFLOAT80 -fgnu89-inline
+
+DELETE = rm -f
+C_INCLUDES = \
+  -I. -I$(SUBJ_SOURCE_DIR) -I$(SOURCE_DIR) -I$(SOFTFLOAT_INCLUDE_DIR)
+COMPILE_C = \
+  ${CC} -c -Werror-implicit-function-declaration $(TESTFLOAT_OPTS) \
+    $(C_INCLUDES) -O2 -o $@
+COMPILE_SLOWFLOAT_C = \
+  ${CC} -c -Werror-implicit-function-declaration $(TESTFLOAT_OPTS) \
+    $(C_INCLUDES) -O3 -o $@
+MAKELIB = ${AR} crs $@
+LINK = ${CC} -o $@ ${LDFLAGS}
+OTHER_LIBS = -lm
+
+OBJ = .o
+LIB = .a
+EXE =
+
+.PHONY: all
+all: \
+  testsoftfloat$(EXE) \
+  timesoftfloat$(EXE) \
+  testfloat_gen$(EXE) \
+  testfloat_ver$(EXE) \
+  testfloat$(EXE) \
+
+OBJS_GENCASES = \
+  genCases_ui32$(OBJ) \
+  genCases_ui64$(OBJ) \
+  genCases_i32$(OBJ) \
+  genCases_i64$(OBJ) \
+  genCases_f32$(OBJ) \
+  genCases_f64$(OBJ) \
+  genCases_extF80$(OBJ) \
+  genCases_f128$(OBJ) \
+
+OBJS_WRITECASE = \
+  writeCase_a_ui32$(OBJ) \
+  writeCase_a_ui64$(OBJ) \
+  writeCase_a_f32$(OBJ) \
+  writeCase_ab_f32$(OBJ) \
+  writeCase_abc_f32$(OBJ) \
+  writeCase_a_f64$(OBJ) \
+  writeCase_ab_f64$(OBJ) \
+  writeCase_abc_f64$(OBJ) \
+  writeCase_a_extF80M$(OBJ) \
+  writeCase_ab_extF80M$(OBJ) \
+  writeCase_abc_extF80M$(OBJ) \
+  writeCase_a_f128M$(OBJ) \
+  writeCase_ab_f128M$(OBJ) \
+  writeCase_abc_f128M$(OBJ) \
+  writeCase_z_bool$(OBJ) \
+  writeCase_z_ui32$(OBJ) \
+  writeCase_z_ui64$(OBJ) \
+  writeCase_z_f32$(OBJ) \
+  writeCase_z_f64$(OBJ) \
+  writeCase_z_extF80M$(OBJ) \
+  writeCase_z_f128M$(OBJ) \
+
+OBJS_TEST = \
+  test_a_ui32_z_f32$(OBJ) \
+  test_a_ui32_z_f64$(OBJ) \
+  test_a_ui32_z_extF80$(OBJ) \
+  test_a_ui32_z_f128$(OBJ) \
+  test_a_ui64_z_f32$(OBJ) \
+  test_a_ui64_z_f64$(OBJ) \
+  test_a_ui64_z_extF80$(OBJ) \
+  test_a_ui64_z_f128$(OBJ) \
+  test_a_i32_z_f32$(OBJ) \
+  test_a_i32_z_f64$(OBJ) \
+  test_a_i32_z_extF80$(OBJ) \
+  test_a_i32_z_f128$(OBJ) \
+  test_a_i64_z_f32$(OBJ) \
+  test_a_i64_z_f64$(OBJ) \
+  test_a_i64_z_extF80$(OBJ) \
+  test_a_i64_z_f128$(OBJ) \
+  test_a_f32_z_ui32_rx$(OBJ) \
+  test_a_f32_z_ui64_rx$(OBJ) \
+  test_a_f32_z_i32_rx$(OBJ) \
+  test_a_f32_z_i64_rx$(OBJ) \
+  test_a_f32_z_ui32_x$(OBJ) \
+  test_a_f32_z_ui64_x$(OBJ) \
+  test_a_f32_z_i32_x$(OBJ) \
+  test_a_f32_z_i64_x$(OBJ) \
+  test_a_f32_z_f64$(OBJ) \
+  test_a_f32_z_extF80$(OBJ) \
+  test_a_f32_z_f128$(OBJ) \
+  test_az_f32$(OBJ) \
+  test_az_f32_rx$(OBJ) \
+  test_abz_f32$(OBJ) \
+  test_abcz_f32$(OBJ) \
+  test_ab_f32_z_bool$(OBJ) \
+  test_a_f64_z_ui32_rx$(OBJ) \
+  test_a_f64_z_ui64_rx$(OBJ) \
+  test_a_f64_z_i32_rx$(OBJ) \
+  test_a_f64_z_i64_rx$(OBJ) \
+  test_a_f64_z_ui32_x$(OBJ) \
+  test_a_f64_z_ui64_x$(OBJ) \
+  test_a_f64_z_i32_x$(OBJ) \
+  test_a_f64_z_i64_x$(OBJ) \
+  test_a_f64_z_f32$(OBJ) \
+  test_a_f64_z_extF80$(OBJ) \
+  test_a_f64_z_f128$(OBJ) \
+  test_az_f64$(OBJ) \
+  test_az_f64_rx$(OBJ) \
+  test_abz_f64$(OBJ) \
+  test_abcz_f64$(OBJ) \
+  test_ab_f64_z_bool$(OBJ) \
+  test_a_extF80_z_ui32_rx$(OBJ) \
+  test_a_extF80_z_ui64_rx$(OBJ) \
+  test_a_extF80_z_i32_rx$(OBJ) \
+  test_a_extF80_z_i64_rx$(OBJ) \
+  test_a_extF80_z_ui32_x$(OBJ) \
+  test_a_extF80_z_ui64_x$(OBJ) \
+  test_a_extF80_z_i32_x$(OBJ) \
+  test_a_extF80_z_i64_x$(OBJ) \
+  test_a_extF80_z_f32$(OBJ) \
+  test_a_extF80_z_f64$(OBJ) \
+  test_a_extF80_z_f128$(OBJ) \
+  test_az_extF80$(OBJ) \
+  test_az_extF80_rx$(OBJ) \
+  test_abz_extF80$(OBJ) \
+  test_ab_extF80_z_bool$(OBJ) \
+  test_a_f128_z_ui32_rx$(OBJ) \
+  test_a_f128_z_ui64_rx$(OBJ) \
+  test_a_f128_z_i32_rx$(OBJ) \
+  test_a_f128_z_i64_rx$(OBJ) \
+  test_a_f128_z_ui32_x$(OBJ) \
+  test_a_f128_z_ui64_x$(OBJ) \
+  test_a_f128_z_i32_x$(OBJ) \
+  test_a_f128_z_i64_x$(OBJ) \
+  test_a_f128_z_f32$(OBJ) \
+  test_a_f128_z_f64$(OBJ) \
+  test_a_f128_z_extF80$(OBJ) \
+  test_az_f128$(OBJ) \
+  test_az_f128_rx$(OBJ) \
+  test_abz_f128$(OBJ) \
+  test_abcz_f128$(OBJ) \
+  test_ab_f128_z_bool$(OBJ) \
+
+OBJS_LIB = \
+  uint128$(OBJ) \
+  fail$(OBJ) \
+  functions_common$(OBJ) \
+  functionInfos$(OBJ) \
+  standardFunctionInfos$(OBJ) \
+  random$(OBJ) \
+  genCases_common$(OBJ) \
+  $(OBJS_GENCASES) \
+  genCases_writeTestsTotal$(OBJ) \
+  verCases_common$(OBJ) \
+  verCases_writeFunctionName$(OBJ) \
+  readHex$(OBJ) \
+  writeHex$(OBJ) \
+  $(OBJS_WRITECASE) \
+  testLoops_common$(OBJ) \
+  $(OBJS_TEST) \
+
+uint128$(OBJ): $(SOURCE_DIR)/uint128.h
+fail$(OBJ): $(SOURCE_DIR)/fail.h
+functions_common$(OBJ): $(SOFTFLOAT_H) $(SOURCE_DIR)/functions.h
+functionInfos$(OBJ): $(SOURCE_DIR)/functions.h
+standardFunctionInfos$(OBJ): $(SOURCE_DIR)/functions.h
+random$(OBJ): $(SOURCE_DIR)/random.h
+genCases_common$(OBJ): $(SOURCE_DIR)/fail.h $(SOURCE_DIR)/genCases.h
+$(OBJS_GENCASES): \
+  $(SOURCE_DIR)/random.h $(SOFTFLOAT_H) $(SOURCE_DIR)/genCases.h
+genCases_f128$(OBJ): $(SOURCE_DIR)/uint128.h
+genCases_writeTestsTotal$(OBJ): $(SOURCE_DIR)/genCases.h
+verCases_common$(OBJ): $(SOURCE_DIR)/verCases.h
+verCases_writeFunctionName$(OBJ): $(SOURCE_DIR)/verCases.h
+readHex$(OBJ): $(SOURCE_DIR)/readHex.h
+writeHex$(OBJ): $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h
+$(OBJS_WRITECASE): \
+  $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h $(SOURCE_DIR)/writeCase.h
+testLoops_common$(OBJ): $(SOURCE_DIR)/testLoops.h
+$(OBJS_TEST): \
+  $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/genCases.h \
+  $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h $(SOURCE_DIR)/testLoops.h
+$(OBJS_LIB): %$(OBJ): platform.h $(SOURCE_DIR)/%.c
+	$(COMPILE_C) $(SOURCE_DIR)/$*.c
+testfloat$(LIB): $(OBJS_LIB)
+	$(MAKELIB) $^
+
+OBJS_TESTSOFTFLOAT = slowfloat$(OBJ) testsoftfloat$(OBJ)
+
+slowfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/slowfloat.h $(SOURCE_DIR)/slowfloat.c
+	$(COMPILE_SLOWFLOAT_C) $(SOURCE_DIR)/slowfloat.c
+testsoftfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/slowfloat.h $(SOURCE_DIR)/functions.h \
+  $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h \
+  $(SOURCE_DIR)/testLoops.h $(SOURCE_DIR)/testsoftfloat.c
+	$(COMPILE_C) $(SOURCE_DIR)/testsoftfloat.c
+
+testsoftfloat$(EXE): $(OBJS_TESTSOFTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^ $(OTHER_LIBS)
+
+OBJS_TIMESOFTFLOAT = timesoftfloat$(OBJ)
+
+timesoftfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/timesoftfloat.c
+	$(COMPILE_C) $(SOURCE_DIR)/timesoftfloat.c
+
+timesoftfloat$(EXE): $(OBJS_TIMESOFTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^ $(OTHER_LIBS)
+
+OBJS_TESTFLOAT_GEN = genLoops$(OBJ) testfloat_gen$(OBJ)
+
+genLoops$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/writeHex.h $(SOURCE_DIR)/genLoops.h \
+  $(SOURCE_DIR)/genLoops.c
+	$(COMPILE_C) $(SOURCE_DIR)/genLoops.c
+testfloat_gen$(OBJ): \
+  $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) $(SOURCE_DIR)/functions.h \
+  $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/genLoops.h \
+  $(SOURCE_DIR)/testfloat_gen.c
+	$(COMPILE_C) $(SOURCE_DIR)/testfloat_gen.c
+
+testfloat_gen$(EXE): $(OBJS_TESTFLOAT_GEN) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^ $(OTHER_LIBS)
+
+OBJS_TESTFLOAT_VER = verLoops$(OBJ) testfloat_ver$(OBJ)
+
+verLoops$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/readHex.h $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h \
+  $(SOURCE_DIR)/verLoops.h $(SOURCE_DIR)/verLoops.c
+	$(COMPILE_C) $(SOURCE_DIR)/verLoops.c
+testfloat_ver$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/verCases.h \
+  $(SOURCE_DIR)/writeCase.h $(SOURCE_DIR)/verLoops.h \
+  $(SOURCE_DIR)/testfloat_ver.c
+	$(COMPILE_C) $(SOURCE_DIR)/testfloat_ver.c
+
+testfloat_ver$(EXE): $(OBJS_TESTFLOAT_VER) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^ $(OTHER_LIBS)
+
+OBJS_TESTFLOAT = subjfloat$(OBJ) subjfloat_functions$(OBJ) testfloat$(OBJ)
+
+subjfloat$(OBJ): \
+  platform.h $(SOFTFLOAT_H) $(SUBJ_SOURCE_DIR)/subjfloat_config.h \
+  $(SOURCE_DIR)/subjfloat.h $(SUBJ_SOURCE_DIR)/subjfloat.c
+	$(COMPILE_C) $(SUBJ_SOURCE_DIR)/subjfloat.c
+subjfloat_functions$(OBJ): \
+  platform.h $(SUBJ_SOURCE_DIR)/subjfloat_config.h $(SOURCE_DIR)/subjfloat.h \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/subjfloat_functions.c
+	$(COMPILE_C) $(SOURCE_DIR)/subjfloat_functions.c
+testfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SUBJ_SOURCE_DIR)/subjfloat_config.h $(SOURCE_DIR)/subjfloat.h \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/verCases.h \
+  $(SOURCE_DIR)/testLoops.h $(SOURCE_DIR)/testfloat.c
+	$(COMPILE_C) $(SOURCE_DIR)/testfloat.c
+
+testfloat$(EXE): $(OBJS_TESTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^ $(OTHER_LIBS)
+
+.PHONY: clean
+clean:
+	$(DELETE) $(OBJS_LIB) testfloat$(LIB)
+	$(DELETE) $(OBJS_TESTSOFTFLOAT) testsoftfloat$(EXE)
+	$(DELETE) $(OBJS_TIMESOFTFLOAT) timesoftfloat$(EXE)
+	$(DELETE) $(OBJS_TESTFLOAT_GEN) testfloat_gen$(EXE)
+	$(DELETE) $(OBJS_TESTFLOAT_VER) testfloat_ver$(EXE)
+	$(DELETE) $(OBJS_TESTFLOAT) testfloat$(EXE)
+
diff --git a/TestFloat-3a/build/Linux-Cross-Compile/platform.h b/TestFloat-3a/build/Linux-Cross-Compile/platform.h
new file mode 100644
index 0000000..09e63a0
--- /dev/null
+++ b/TestFloat-3a/build/Linux-Cross-Compile/platform.h
@@ -0,0 +1,45 @@
+
+/*============================================================================
+
+This C header file is part of TestFloat, Release 3a, a package of programs for
+testing the correctness of floating-point arithmetic complying with the IEEE
+Standard for Floating-Point, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+    this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions, and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+    be used to endorse or promote products derived from this software without
+    specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+/*----------------------------------------------------------------------------
+*----------------------------------------------------------------------------*/
+#define LITTLEENDIAN 1
+
+/*----------------------------------------------------------------------------
+*----------------------------------------------------------------------------*/
+#define INLINE extern inline
+
-- 
2.1.4

