From 9518660d894ff1695ba84f7fe060f50bc643d701 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Fri, 15 Nov 2019 06:34:42 +0100 Subject: grt: split grt-cbinding into grt-cstdio.c and grt-cgnatrts.c --- src/grt/Makefile.inc | 13 +++-- src/grt/grt-cbinding.c | 127 ------------------------------------------------- src/grt/grt-cgnatrts.c | 57 ++++++++++++++++++++++ src/grt/grt-cstdio.c | 89 ++++++++++++++++++++++++++++++++++ 4 files changed, 155 insertions(+), 131 deletions(-) delete mode 100644 src/grt/grt-cbinding.c create mode 100644 src/grt/grt-cgnatrts.c create mode 100644 src/grt/grt-cstdio.c (limited to 'src') diff --git a/src/grt/Makefile.inc b/src/grt/Makefile.inc index dd28b21bd..abea76a45 100644 --- a/src/grt/Makefile.inc +++ b/src/grt/Makefile.inc @@ -70,9 +70,8 @@ endif GRT_FST_OBJS := fstapi.o lz4.o fastlz.o # Additionnal object files (C or asm files). -GRT_BASE_C_OBJS:=$(GRT_TARGET_OBJS) grt-cbinding.o +GRT_BASE_C_OBJS:=$(GRT_TARGET_OBJS) grt-cstdio.o grt-cgnatrts.o GRT_ADD_OBJS:=$(GRT_BASE_C_OBJS) grt-cvpi.o grt-cdynload.o $(GRT_FST_OBJS) -GRT_ADD_SHOBJS:=$(patsubst %, pic/%, $(GRT_ADD_OBJS)) # Source files create by grt. GRT_SRC_DEPS:=grt-backtraces-impl.ads @@ -152,10 +151,16 @@ pic/times.o : $(GRTSRCDIR)/config/times.c clock.o : $(GRTSRCDIR)/config/clock.c $(GRT_C_COMPILE) -grt-cbinding.o: $(GRTSRCDIR)/grt-cbinding.c +grt-cstdio.o: $(GRTSRCDIR)/grt-cstdio.c $(GRT_C_COMPILE) -pic/grt-cbinding.o: $(GRTSRCDIR)/grt-cbinding.c +pic/grt-cstdio.o: $(GRTSRCDIR)/grt-cstdio.c + $(GRT_C_COMPILE_PIC) + +grt-cgnatrts.o: $(GRTSRCDIR)/grt-cgnatrts.c + $(GRT_C_COMPILE) + +pic/grt-cgnatrts.o: $(GRTSRCDIR)/grt-cgnatrts.c $(GRT_C_COMPILE_PIC) grt-cvpi.o: $(GRTSRCDIR)/grt-cvpi.c diff --git a/src/grt/grt-cbinding.c b/src/grt/grt-cbinding.c deleted file mode 100644 index 0b4490bbd..000000000 --- a/src/grt/grt-cbinding.c +++ /dev/null @@ -1,127 +0,0 @@ -/* GRT C bindings. - Copyright (C) 2002, 2003, 2004, 2005 Tristan Gingold. - - GHDL 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 2, or (at your option) any later - version. - - GHDL 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 GCC; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. -*/ -#include -#include -#include - -FILE * -__ghdl_get_stdout (void) -{ - return stdout; -} - -FILE * -__ghdl_get_stdin (void) -{ - return stdin; -} - -FILE * -__ghdl_get_stderr (void) -{ - return stderr; -} - -int -__ghdl_snprintf_g (char *buf, unsigned int len, double val) -{ - snprintf (buf, len, "%g", val); - return strlen (buf); -} - -void -__ghdl_snprintf_fmtf (char *buf, unsigned int len, - const char *format, double v) -{ - snprintf (buf, len, format, v); -} - -void -__ghdl_fprintf_g (FILE *stream, double val) -{ - fprintf (stream, "%g", val); -} - -void -__ghdl_fprintf_clock (FILE *stream, int a, int b) -{ - fprintf (stream, "%3d.%03d", a, b); -} - -#ifndef getc_unlocked -int -getc_unlocked (FILE *stream) -{ - return getc (stream); -} -#endif - -#ifndef putc_unlocked -int -putc_unlocked (int c, FILE *stream) -{ - return putc (c, stream); -} -#endif - -#ifndef feof_unlocked -int -feof_unlocked (FILE *stream) -{ - return feof (stream); -} -#endif - -#ifndef WITH_GNAT_RUN_TIME -void -__gnat_last_chance_handler (void) -{ - abort (); -} - -void * -__gnat_malloc (size_t size) -{ - void *res; - res = malloc (size); - return res; -} - -void -__gnat_free (void *ptr) -{ - free (ptr); -} - -void * -__gnat_realloc (void *ptr, size_t size) -{ - return realloc (ptr, size); -} - -/* Unused imported symbols with gcc 8.1. */ -int __gnat_binder_ss_count = 0; -size_t __gnat_default_ss_size = 0; -void *__gnat_default_ss_pool = NULL; - -void -system__secondary_stack__ss_stackIP (void *t, size_t size) -{ -} -#endif diff --git a/src/grt/grt-cgnatrts.c b/src/grt/grt-cgnatrts.c new file mode 100644 index 000000000..63f72d742 --- /dev/null +++ b/src/grt/grt-cgnatrts.c @@ -0,0 +1,57 @@ +/* GRT replacements for GNAT rts. + Copyright (C) 2002, 2003, 2004, 2005 Tristan Gingold. + + GHDL 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 2, or (at your option) any later + version. + + GHDL 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 GCC; see the file COPYING. If not, write to the Free + Software Foundation, 59 Temple Place - Suite 330, Boston, MA + 02111-1307, USA. +*/ +#include + +#ifndef WITH_GNAT_RUN_TIME +void +__gnat_last_chance_handler (void) +{ + abort (); +} + +void * +__gnat_malloc (size_t size) +{ + void *res; + res = malloc (size); + return res; +} + +void +__gnat_free (void *ptr) +{ + free (ptr); +} + +void * +__gnat_realloc (void *ptr, size_t size) +{ + return realloc (ptr, size); +} + +/* Unused imported symbols with gcc 8.1. */ +int __gnat_binder_ss_count = 0; +size_t __gnat_default_ss_size = 0; +void *__gnat_default_ss_pool = NULL; + +void +system__secondary_stack__ss_stackIP (void *t, size_t size) +{ +} +#endif diff --git a/src/grt/grt-cstdio.c b/src/grt/grt-cstdio.c new file mode 100644 index 000000000..31d58be07 --- /dev/null +++ b/src/grt/grt-cstdio.c @@ -0,0 +1,89 @@ +/* GRT C bindings for stdio + Copyright (C) 2002, 2003, 2004, 2005 Tristan Gingold. + + GHDL 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 2, or (at your option) any later + version. + + GHDL 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 GCC; see the file COPYING. If not, write to the Free + Software Foundation, 59 Temple Place - Suite 330, Boston, MA + 02111-1307, USA. +*/ +#include +#include +#include + +FILE * +__ghdl_get_stdout (void) +{ + return stdout; +} + +FILE * +__ghdl_get_stdin (void) +{ + return stdin; +} + +FILE * +__ghdl_get_stderr (void) +{ + return stderr; +} + +int +__ghdl_snprintf_g (char *buf, unsigned int len, double val) +{ + snprintf (buf, len, "%g", val); + return strlen (buf); +} + +void +__ghdl_snprintf_fmtf (char *buf, unsigned int len, + const char *format, double v) +{ + snprintf (buf, len, format, v); +} + +void +__ghdl_fprintf_g (FILE *stream, double val) +{ + fprintf (stream, "%g", val); +} + +void +__ghdl_fprintf_clock (FILE *stream, int a, int b) +{ + fprintf (stream, "%3d.%03d", a, b); +} + +#ifndef getc_unlocked +int +getc_unlocked (FILE *stream) +{ + return getc (stream); +} +#endif + +#ifndef putc_unlocked +int +putc_unlocked (int c, FILE *stream) +{ + return putc (c, stream); +} +#endif + +#ifndef feof_unlocked +int +feof_unlocked (FILE *stream) +{ + return feof (stream); +} +#endif -- cgit v1.2.3