mescc: Support gnu toolchain: libtcc1.
authorJan Nieuwenhuizen <janneke@gnu.org>
Tue, 19 Jun 2018 18:29:25 +0000 (20:29 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Tue, 19 Jun 2018 18:29:25 +0000 (20:29 +0200)
* lib/libtcc1.c: New file.
* lib/libc+tcc-gcc.c: Remove libtcc1 stubs.

build-aux/build-mes-gcc.sh
lib/gcc.c
lib/libc+tcc-gcc.c
lib/libtcc1.c [new file with mode: 0644]

index 37d411ba595bc909aba8dbfa70c922203abd1f57..6f47e5427ff31c7be1d86e0c4920f04e77fe632e 100755 (executable)
@@ -71,6 +71,7 @@ ARCHDIR=1 NOLINK=1 sh build-aux/cc-mes-gcc.sh lib/libc-mini
 ARCHDIR=1 NOLINK=1 sh build-aux/cc-mes-gcc.sh lib/libc
 ARCHDIR=1 NOLINK=1 sh build-aux/cc-mes-gcc.sh lib/libgetopt
 ARCHDIR=1 NOLINK=1 sh build-aux/cc-mes-gcc.sh lib/libc+tcc
+ARCHDIR=1 NOLINK=1 sh build-aux/cc-mes-gcc.sh lib/libtcc1
 ARCHDIR=1 NOLINK=1 sh build-aux/cc-mes-gcc.sh lib/libc+gnu
 ARCHDIR=1 NOLINK=1 sh build-aux/cc-mes-gcc.sh lib/libg
 
index ef0ac469464a5a1e13a2140d43c720da8dfa1079..8687b352731591568ef217ad2b46304540d04249 100644 (file)
--- a/lib/gcc.c
+++ b/lib/gcc.c
@@ -51,27 +51,6 @@ sleep (unsigned int seconds)
   return nanosleep (&requested_time, &remaining);
 }
 
-// gcc-3.2
-double
-__divdi3 (double a, double b)
-{
-  static int stub = 0;
-  if (__mes_debug () && !stub)
-    eputs ("__divdi3 stub\n");
-  stub = 1;
-  return ((int)a / (int)b);
-}
-
-double
-__moddi3 (double a, double b)
-{
-  static int stub = 0;
-  if (__mes_debug () && !stub)
-    eputs ("__moddi3 stub\n");
-  stub = 1;
-  return ((int) a %(int)b);
-}
-
 // gcc-3.4
 void
 unsetenv (char const *name)
index 02f1f2ffb94e490a7955a0038d6dc643dfec5425..d50e82c3cd4c0ada9485eb6867803127847fb79b 100644 (file)
@@ -74,87 +74,3 @@ setjmp (jmp_buf env)
   env[0].__sp = (int)&env;
   return 0;
 }
-
-unsigned long long
-__udivdi3 (unsigned long long a, unsigned long long b)
-{
-  int ai = a;
-  int bi = b;
-  return ai / bi;
-}
-
-unsigned long long
-__umoddi3 (unsigned long long a, unsigned long long b)
-{
-  int ai = a;
-  int bi = b;
-  return ai % bi;
-}
-
-unsigned long long
-__lshrdi3 (unsigned long long a, int b)
-{
-  return a >> b;
-}
-
-long long
-__ashldi3 (long long a, int b)
-{
-  return a << b;
-}
-
-long long
-__ashrdi3 (long long a, int b)
-{
-  return a >> b;
-}
-
-long double
-__floatundixf (unsigned long long a)
-{
-  static int stub = 0;
-  if (__mes_debug () && !stub)
-    eputs ("__floatundix stub\n");
-  stub = 1;
-  return 0;
-}
-
-unsigned long long
-__fixunsxfdi (double a1)
-{
-  static int stub = 0;
-  if (__mes_debug () && !stub)
-    eputs ("__fixunsxfdi stub\n");
-  stub = 1;
-  return 0;
-}
-
-unsigned long long
-__fixdfdi (double a1)
-{
-  static int stub = 0;
-  if (__mes_debug () && !stub)
-    eputs ("__fixdfdi stub\n");
-  stub = 1;
-  return 0;
-}
-
-unsigned long long
-__fixxfdi (double a1)
-{
-  static int stub = 0;
-  if (__mes_debug () && !stub)
-    eputs ("__fixxfdi stub\n");
-  stub = 1;
-  return 0;
-}
-
-unsigned long long
-__fixsfdi (double a1)
-{
-  static int stub = 0;
-  if (__mes_debug () && !stub)
-    eputs ("__fixsfdi stub\n");
-  stub = 1;
-  return 0;
-}
diff --git a/lib/libtcc1.c b/lib/libtcc1.c
new file mode 100644 (file)
index 0000000..5c1fe9c
--- /dev/null
@@ -0,0 +1,143 @@
+/* -*-comment-start: "//";comment-end:""-*-
+ * Mes --- Maxwell Equations of Software
+ * Copyright © 2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+ *
+ * This file is part of Mes.
+ *
+ * Mes is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or (at
+ * your option) any later version.
+ *
+ * Mes is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mes.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+double
+__divdi3 (double a, double b)
+{
+  static int stub = 0;
+  if (__mes_debug () && !stub)
+    eputs ("__divdi3 stub\n");
+  stub = 1;
+  return ((int)a / (int)b);
+}
+
+double
+__moddi3 (double a, double b)
+{
+  static int stub = 0;
+  if (__mes_debug () && !stub)
+    eputs ("__moddi3 stub\n");
+  stub = 1;
+  return ((int) a %(int)b);
+}
+
+unsigned long long
+__udivdi3 (unsigned long long a, unsigned long long b)
+{
+  static int stub = 0;
+  if (__mes_debug () && !stub)
+    eputs ("__udivdi3 stub\n");
+  stub = 1;
+  int ai = a;
+  int bi = b;
+  return ai / bi;
+}
+
+unsigned long long
+__umoddi3 (unsigned long long a, unsigned long long b)
+{
+  static int stub = 0;
+  if (__mes_debug () && !stub)
+    eputs ("__umoddi3 stub\n");
+  stub = 1;
+  int ai = a;
+  int bi = b;
+  return ai % bi;
+}
+
+unsigned long long
+__lshrdi3 (unsigned long long a, int b)
+{
+  static int stub = 0;
+  if (__mes_debug () && !stub)
+    eputs ("__lshrdi3 stub\n");
+  stub = 1;
+  return a >> b;
+}
+
+long long
+__ashldi3 (long long a, int b)
+{
+  static int stub = 0;
+  if (__mes_debug () && !stub)
+    eputs ("__ashldi3 stub\n");
+  stub = 1;
+  return a << b;
+}
+
+long long
+__ashrdi3 (long long a, int b)
+{
+  static int stub = 0;
+  if (__mes_debug () && !stub)
+    eputs ("__ashrdi3 stub\n");
+  stub = 1;
+  return a >> b;
+}
+
+long double
+__floatundixf (unsigned long long a)
+{
+  static int stub = 0;
+  if (__mes_debug () && !stub)
+    eputs ("__floatundixf stub\n");
+  stub = 1;
+  return 0;
+}
+
+unsigned long long
+__fixunsxfdi (double a1)
+{
+  static int stub = 0;
+  if (__mes_debug () && !stub)
+    eputs ("__fixunsxfdi stub\n");
+  stub = 1;
+  return 0;
+}
+
+unsigned long long
+__fixdfdi (double a1)
+{
+  static int stub = 0;
+  if (__mes_debug () && !stub)
+    eputs ("__fixdfdi stub\n");
+  stub = 1;
+  return 0;
+}
+
+unsigned long long
+__fixxfdi (double a1)
+{
+  static int stub = 0;
+  if (__mes_debug () && !stub)
+    eputs ("__fixxfdi stub\n");
+  stub = 1;
+  return 0;
+}
+
+unsigned long long
+__fixsfdi (double a1)
+{
+  static int stub = 0;
+  if (__mes_debug () && !stub)
+    eputs ("__fixsfdi stub\n");
+  stub = 1;
+  return 0;
+}