From d4adf84a668874c645bb2846378ba0ede422bcd8 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Thu, 21 Jul 2022 06:00:08 +0200 Subject: Makefile.in: allow build of ghdl_mcode with sundials enabled --- Makefile.in | 2 +- src/ghdldrv/ghdlrun.adb | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/Makefile.in b/Makefile.in index bf3068736..918dcc29f 100644 --- a/Makefile.in +++ b/Makefile.in @@ -209,7 +209,7 @@ GHDL_MCODE_INCFLAGS=$(GHDL_COMMON_INCFLAGS) -aI$(srcdir)/src/ghdldrv -aI$(srcdir ghdl_mcode$(EXEEXT): GRT_FLAGS+=-DWITH_GNAT_RUN_TIME ghdl_mcode$(EXEEXT): $(GRT_ADD_OBJS) $(GRT_SRC_DEPS) $(ORTHO_DEPS) \ memsegs_c.o version.ads force - $(GNATMAKE) -o $@ -gnat12 $(GHDL_MCODE_INCFLAGS) $(GNATFLAGS) -gnatw.A ghdl_jit.adb $(GNAT_BARGS) -largs memsegs_c.o $(GRT_ADD_OBJS) $(LDFLAGS) $(subst @,$(GRTSRCDIR),$(GRT_EXTRA_LIB) $(GRT_EXEC_OPTS)) -shared-libgcc + $(GNATMAKE) -o $@ -gnat12 $(GHDL_MCODE_INCFLAGS) $(GNATFLAGS) -gnatw.A ghdl_jit.adb $(GNAT_BARGS) -largs memsegs_c.o $(GRT_ADD_OBJS) $(LDFLAGS) $(subst @,$(GRTSRCDIR),$(GRT_EXTRA_LIB) $(GRT_EXEC_OPTS)) $(sundials_ldflags) -shared-libgcc memsegs_c.o: $(srcdir)/src/ortho/mcode/memsegs_c.c $(CC) -c $(COVERAGE_FLAGS) $(CFLAGS) -o $@ $< diff --git a/src/ghdldrv/ghdlrun.adb b/src/ghdldrv/ghdlrun.adb index 2adc63130..bfa095307 100644 --- a/src/ghdldrv/ghdlrun.adb +++ b/src/ghdldrv/ghdlrun.adb @@ -61,6 +61,7 @@ with Grt.Names; with Grt.Std_Logic_1164; with Grt.Errors; with Grt.Backtraces.Jit; +with Grt.Analog_Solver; with Ghdlcomp; use Ghdlcomp; with Foreigns; @@ -112,6 +113,30 @@ package body Ghdlrun is Info : Translation.Foreign_Info_Type; Ortho : O_Dnode); + subtype F64_C_Arr_Ptr is Grt.Analog_Solver.F64_C_Arr_Ptr; + + procedure Residues (T : Grt.Types.Ghdl_F64; + Y : F64_C_Arr_Ptr; + Yp : F64_C_Arr_Ptr; + Res : F64_C_Arr_Ptr); + pragma Export (C, Residues, "grt__analog_solver__residues"); + + procedure Set_Quantities_Values (Y : F64_C_Arr_Ptr; Yp: F64_C_Arr_Ptr); + pragma Export (C, Set_Quantities_Values, "grt__analog_solver__set_values"); + + procedure Residues (T : Grt.Types.Ghdl_F64; + Y : F64_C_Arr_Ptr; + Yp : F64_C_Arr_Ptr; + Res : F64_C_Arr_Ptr) is + begin + raise Program_Error; + end Residues; + + procedure Set_Quantities_Values (Y : F64_C_Arr_Ptr; Yp: F64_C_Arr_Ptr) is + begin + raise Program_Error; + end Set_Quantities_Values; + procedure Compile_Init (Analyze_Only : Boolean) is begin Common_Compile_Init (Analyze_Only); -- cgit v1.2.3