Skip to content

Commit

Permalink
small changes to the memory allocation interface, ticket:3902
Browse files Browse the repository at this point in the history
  • Loading branch information
adrpo authored and OpenModelica-Hudson committed May 31, 2016
1 parent ad52d27 commit 28420a1
Show file tree
Hide file tree
Showing 40 changed files with 339 additions and 332 deletions.
6 changes: 3 additions & 3 deletions Compiler/runtime/Makefile.common
Expand Up @@ -11,7 +11,7 @@ builddir_inc=$(OMBUILDDIR)/include
builddir_doc=$(OMBUILDDIR)/doc
builddir_share=$(OMBUILDDIR)/share

SimRuntimeCDir = $(top_builddir)/SimulationRuntime/c/util/
SimRuntimeCDir = $(top_builddir)/SimulationRuntime/c/

ifndef OMDEV
configUnix = config.unix.h
Expand Down Expand Up @@ -94,10 +94,10 @@ UnitParserExt_omc.o : unitparserext.cpp unitparser.h
BackendDAEEXT_omc.o : BackendDAEEXT.cpp $(RML_COMPAT) matching.c matchmaker.h matching_cheap.c

# Objects depending on BOOTH
Dynload_omc$(OBJEXT): systemimpl.h errorext.h $(BOOTH) $(SimRuntimeCDir)/read_write.h $(SimRuntimeCDir)/memory_pool.h Dynload.cpp $(RML_COMPAT)
Dynload_omc$(OBJEXT): systemimpl.h errorext.h $(BOOTH) $(SimRuntimeCDir)/util/read_write.h $(SimRuntimeCDir)/gc/omc_gc.h Dynload.cpp $(RML_COMPAT)
Error_omc$(OBJEXT) : errorext.cpp ErrorMessage.hpp $(BOOTH)
System_omc$(OBJEXT) : System_omc.c systemimpl.c omc_config.h errorext.h printimpl.h $(configUnix) $(RML_COMPAT) $(BOOTH)
SimulationResults_omc$(OBJEXT) : SimulationResults.c SimulationResultsCmp.c SimulationResultsCmpTubes.c errorext.h $(SimRuntimeCDir)/read_matlab4.h $(BOOTH)
SimulationResults_omc$(OBJEXT) : SimulationResults.c SimulationResultsCmp.c SimulationResultsCmpTubes.c errorext.h $(SimRuntimeCDir)/util/read_matlab4.h $(BOOTH)
TaskGraphResults_omc$(OBJEXT) : TaskGraphResultsCmp.h TaskGraphResultsCmp.cpp $(BOOTH)
HpcOmBenchmarkExt_omc$(OBJEXT) : HpcOmBenchmarkExt.cpp $(BOOTH)
HpcOmSchedulerExt_omc$(OBJEXT) : TaskGraphResultsCmp.h HpcOmSchedulerExt.cpp $(BOOTH)
Expand Down
45 changes: 23 additions & 22 deletions Makefile.common
Expand Up @@ -28,28 +28,29 @@ INSTALL_LOCALEDIR = ${DESTDIR}${datadir}/locale
.PHONY : interactive omc release all mkbuilddirs fmi test install-dirs susan susan_all susgen sustst install-openturns runtimeCPPinstall CMinpack metis Cdaskr boehm-gc $(MINGW_EXTRA_LIBS)

mkbuilddirs:
@echo Making build directories under $(OMBUILDDIR)
@if [ "$(APP)" = ".app" ]; then mkdir -p $(builddir_app); fi
@mkdir -p $(builddir_bin)
@mkdir -p $(OMBUILDDIR)/lib/omc/emcc
@mkdir -p $(builddir_lib_omc)
@mkdir -p $(builddir_inc)/c/
@mkdir -p $(builddir_inc)/c/linearization/
@mkdir -p $(builddir_inc)/c/optimization/
@mkdir -p $(builddir_inc)/c/simulation/
@mkdir -p $(builddir_inc)/c/simulation/results/
@mkdir -p $(builddir_inc)/c/simulation/solver/
@mkdir -p $(builddir_inc)/c/simulation/solver/initialization/
@mkdir -p $(builddir_inc)/c/meta/
@mkdir -p $(builddir_inc)/c/meta/gc/
@mkdir -p $(builddir_inc)/c/util/
@mkdir -p $(builddir_inc)/c/fmi1/
@mkdir -p $(builddir_inc)/c/fmi2/
@mkdir -p $(builddir_inc)/scripting-API
@mkdir -p $(builddir_java)
@mkdir -p $(builddir_share)/omc/scripts/OpenTurns/
@mkdir -p $(builddir_doc)/omc/testmodels
@mkdir -p $(builddir_man)/man1/
echo Making build directories under $(OMBUILDDIR)
if [ "$(APP)" = ".app" ]; then mkdir -p $(builddir_app); fi
mkdir -p $(builddir_bin)
mkdir -p $(OMBUILDDIR)/lib/omc/emcc
mkdir -p $(builddir_lib_omc)
mkdir -p $(builddir_inc)/c/
mkdir -p $(builddir_inc)/c/gc/
mkdir -p $(builddir_inc)/c/linearization/
mkdir -p $(builddir_inc)/c/optimization/
mkdir -p $(builddir_inc)/c/simulation/
mkdir -p $(builddir_inc)/c/simulation/results/
mkdir -p $(builddir_inc)/c/simulation/solver/
mkdir -p $(builddir_inc)/c/simulation/solver/initialization/
mkdir -p $(builddir_inc)/c/meta/
mkdir -p $(builddir_inc)/c/meta/
mkdir -p $(builddir_inc)/c/util/
mkdir -p $(builddir_inc)/c/fmi1/
mkdir -p $(builddir_inc)/c/fmi2/
mkdir -p $(builddir_inc)/scripting-API
mkdir -p $(builddir_java)
mkdir -p $(builddir_share)/omc/scripts/OpenTurns/
mkdir -p $(builddir_doc)/omc/testmodels
mkdir -p $(builddir_man)/man1/

release: omc

Expand Down
Expand Up @@ -11,7 +11,7 @@ CC=@CC@
CXX=@CXX@

CFLAGS=@CFLAGS@
CPPFLAGS=@CPPFLAGS@ -I. -I"../../../c" -fPIC
CPPFLAGS=@CPPFLAGS@ -I. -I"../../../c" -I$(OPENMODELICA_INC) -fPIC

EXEEXT=
DLLEXT=.so
Expand Down
Expand Up @@ -8,7 +8,7 @@ OPENMODELICA_BIN=$(TOP_BUILDDIR)/bin/
CC=gcc
CXX=g++
CFLAGS= -fPIC -O3 -Wall
CPPFLAGS=$(CFLAGS) -I. -I"../../../c"
CPPFLAGS=$(CFLAGS) -I. -I"../../../c" -I$(OPENMODELICA_INC)

EXEEXT=.exe
DLLEXT=.dll
Expand Down
24 changes: 13 additions & 11 deletions SimulationRuntime/c/Makefile.common
Expand Up @@ -82,7 +82,7 @@ RUNTIMEMETA_HEADERS = ./meta/meta_modelica_builtin_boxptr.h \
./meta/meta_modelica_mk_box.h \
./meta/meta_modelica_segv.h

RUNTIMEMETAGC_HEADERS = ./meta/gc/mmc_gc.h
RUNTIMEMETAGC_HEADERS = ./gc/omc_gc.h ./gc/memory_pool.h

RUNTIMEUTIL_HEADERS = \
./util/base_array.h \
Expand All @@ -92,7 +92,6 @@ RUNTIMEUTIL_HEADERS = \
./util/index_spec.h \
./util/integer_array.h \
./util/java_interface.h \
./util/memory_pool.h \
./util/modelica.h \
./util/modelica_string.h \
./util/omc_error.h \
Expand Down Expand Up @@ -163,26 +162,29 @@ libOpenModelicaRuntimeC.a: $(BASE_OBJS) Makefile.objs
$(AR) $@ $(BASE_OBJS)
ranlib $@

libOpenModelicaRuntimeC.so: $(BASE_OBJS) Makefile.objs
libOpenModelicaRuntimeC.so: $(BASE_OBJS) $(GCOBJPATH_MINIMAL) Makefile.objs
@rm -f $@
$(CC) -shared -o $@ $(BASE_OBJS) $(LDFLAGS)
$(CC) -shared -o $@ $(BASE_OBJS) $(GCOBJPATH_MINIMAL) $(LDFLAGS)

libOpenModelicaRuntimeC.dylib: $(BASE_OBJS) Makefile.objs
libOpenModelicaRuntimeC.dylib: $(BASE_OBJS) $(GCOBJPATH_MINIMAL) Makefile.objs
@rm -f $@
$(CC) -shared -o $@ $(BASE_OBJS) $(LDFLAGS) -undefined dynamic_lookup -install_name '@rpath/$@'
$(CC) -shared -o $@ $(BASE_OBJS) $(GCOBJPATH_MINIMAL) $(LDFLAGS) -undefined dynamic_lookup -install_name '@rpath/$@'

libOpenModelicaFMIRuntimeC.a: $(FMIOBJSPATH) Makefile.objs
libOpenModelicaFMIRuntimeC.a: $(FMIOBJSPATH) $(GCOBJPATH_MINIMAL) Makefile.objs
@rm -f $@
$(AR) $@ $(FMILIB) $(FMIOBJSPATH)
$(AR) $@ $(FMILIB) $(FMIOBJSPATH) $(GCOBJPATH_MINIMAL)
ranlib $@

libOpenModelicaFMIRuntimeC.so: $(FMIOBJSPATH) Makefile.objs
@rm -f $@
$(CC) -shared -o $@ $(FMIOBJSPATH) $(LDFLAGS)

libOpenModelicaFMIRuntimeC.dylib: $(FMIOBJSPATH) Makefile.objs
libOpenModelicaFMIRuntimeC.dylib: $(FMIOBJSPATH) $(GCOBJPATH_MINIMAL) Makefile.objs
@rm -f $@
$(CC) -shared -o $@ $(FMIOBJSPATH) $(LDFLAGS_SIM) -undefined dynamic_lookup -install_name '@rpath/$@'
$(CC) -shared -o $@ $(FMIOBJSPATH) $(GCOBJPATH_MINIMAL) $(LDFLAGS_SIM) -undefined dynamic_lookup -install_name '@rpath/$@'

$(GCOBJSPATH):%$(OBJ_EXT): %.c $(GCHFILESPATH) $(COMMON_HEADERS)
$(CC) -c $(CFLAGS) -o $@ $<

$(METAOBJSPATH):%$(OBJ_EXT): %.c $(METAHFILESPATH) $(COMMON_HEADERS)
$(CC) -c $(CFLAGS) -o $@ $<
Expand Down Expand Up @@ -231,7 +233,7 @@ bootstrap-dependencies: $(LIBRUNTIME)
cp -p $(RUNTIMESIMSOLVER_HEADERS) $(builddir_inc)/c/simulation/solver/
cp -p $(RUNTIMEINITIALIZATION_HEADERS) $(builddir_inc)/c/simulation/solver/initialization/
cp -p $(RUNTIMEMETA_HEADERS) $(builddir_inc)/c/meta/
cp -p $(RUNTIMEMETAGC_HEADERS) $(builddir_inc)/c/meta/gc/
cp -p $(RUNTIMEMETAGC_HEADERS) $(builddir_inc)/c/gc/
cp -p $(RUNTIMEUTIL_HEADERS) $(builddir_inc)/c/util/

install: bootstrap-dependencies $(LIBSIMULATION) $(LIBFMIRUNTIME) $(ALL_OBJS) sourcedist
Expand Down
34 changes: 23 additions & 11 deletions SimulationRuntime/c/Makefile.objs
Expand Up @@ -4,17 +4,22 @@ META_OBJS = \
meta_modelica_builtin$(OBJ_EXT) \
meta_modelica_segv$(OBJ_EXT) \
realString$(OBJ_EXT) \
meta_modelica$(OBJ_EXT) \
gc/mmc_gc$(OBJ_EXT)
meta_modelica$(OBJ_EXT)

META_HFILES = \
meta_modelica_builtin.h \
meta_modelica_builtin_boxptr.h \
meta_modelica_builtin_boxvar.h \
meta_modelica_segv.h \
meta_modelica.h \
meta_modelica_mk_box.h \
gc/mmc_gc.h
meta_modelica_mk_box.h

#Files for gc folder
GC_OBJS_MINIMAL = memory_pool$(OBJ_EXT)
GC_HFILES_MINIMAL = memory_pool.h

GC_OBJS = omc_gc$(OBJ_EXT) $(GC_OBJS_MINIMAL)
GC_HFILES = omc_gc.h $(GC_HFILES_MINIMAL)

# Files for util functions
ifeq ($(OMC_FMI_RUNTIME),)
Expand All @@ -23,14 +28,14 @@ else
UTIL_OBJS_NO_FMI=
endif

UTIL_OBJS_MINIMAL=base_array$(OBJ_EXT) boolean_array$(OBJ_EXT) omc_error$(OBJ_EXT) division$(OBJ_EXT) generic_array$(OBJ_EXT) index_spec$(OBJ_EXT) integer_array$(OBJ_EXT) list$(OBJ_EXT) memory_pool$(OBJ_EXT) modelica_string$(OBJ_EXT) real_array$(OBJ_EXT) ringbuffer$(OBJ_EXT) string_array$(OBJ_EXT) utility$(OBJ_EXT) varinfo$(OBJ_EXT) ModelicaUtilities$(OBJ_EXT) omc_msvc$(OBJ_EXT) simulation_options$(OBJ_EXT) cJSON$(OBJ_EXT) rational$(OBJ_EXT) modelica_string_lit$(OBJ_EXT) omc_init$(OBJ_EXT) omc_mmap$(OBJ_EXT) $(UTIL_OBJS_NO_FMI)
UTIL_OBJS_MINIMAL=base_array$(OBJ_EXT) boolean_array$(OBJ_EXT) omc_error$(OBJ_EXT) division$(OBJ_EXT) generic_array$(OBJ_EXT) index_spec$(OBJ_EXT) integer_array$(OBJ_EXT) list$(OBJ_EXT) modelica_string$(OBJ_EXT) real_array$(OBJ_EXT) ringbuffer$(OBJ_EXT) string_array$(OBJ_EXT) utility$(OBJ_EXT) varinfo$(OBJ_EXT) ModelicaUtilities$(OBJ_EXT) omc_msvc$(OBJ_EXT) simulation_options$(OBJ_EXT) cJSON$(OBJ_EXT) rational$(OBJ_EXT) modelica_string_lit$(OBJ_EXT) omc_init$(OBJ_EXT) omc_mmap$(OBJ_EXT) $(UTIL_OBJS_NO_FMI)

ifeq ($(OMC_MINIMAL_RUNTIME),)
UTIL_OBJS=$(UTIL_OBJS_MINIMAL) java_interface$(OBJ_EXT) libcsv$(OBJ_EXT) read_csv$(OBJ_EXT) OldModelicaTables$(OBJ_EXT) tinymt64$(OBJ_EXT) write_csv$(OBJ_EXT) rtclock$(OBJ_EXT)
else
UTIL_OBJS=$(UTIL_OBJS_MINIMAL)
endif
UTIL_HFILES=base_array.h boolean_array.h division.h generic_array.h omc_error.h index_spec.h integer_array.h java_interface.h jni.h jni_md.h jni_md_solaris.h jni_md_windows.h list.h memory_pool.h modelica.h modelica_string.h read_write.h write_matlab4.h read_matlab4.h read_csv.h libcsv.h real_array.h ringbuffer.h rtclock.h string_array.h utility.h varinfo.h simulation_options.h tinymt64.h omc_mmap.h cJSON.h modelica_string_lit.h omc_init.h
UTIL_HFILES=base_array.h boolean_array.h division.h generic_array.h omc_error.h index_spec.h integer_array.h java_interface.h jni.h jni_md.h jni_md_solaris.h jni_md_windows.h list.h modelica.h modelica_string.h read_write.h write_matlab4.h read_matlab4.h read_csv.h libcsv.h real_array.h ringbuffer.h rtclock.h string_array.h utility.h varinfo.h simulation_options.h tinymt64.h omc_mmap.h cJSON.h modelica_string_lit.h omc_init.h

# Files for math-support
MATH_OBJS=pivot$(OBJ_EXT)
Expand Down Expand Up @@ -83,6 +88,13 @@ FMIPATH = ./fmi/
FMI_OBJS = FMICommon$(OBJ_EXT) FMI1Common$(OBJ_EXT) FMI1ModelExchange$(OBJ_EXT) FMI1CoSimulation$(OBJ_EXT) FMI2Common$(OBJ_EXT) FMI2ModelExchange$(OBJ_EXT)
FMIOBJSPATH = $(FMI_OBJS:%=$(FMIPATH)%)

GCPATH = ./gc/
GCOBJSPATH = $(GC_OBJS:%=$(GCPATH)%)
GCHFILESPATH = $(GC_HFILES:%=$(GCPATH)%)
GCHFILESPATH_MINIMAL = $(GC_HFILES_MINIMAL:%=$(GCPATH)%)
GCOBJSPATH_MINIMAL = $(GC_OBJS_MINIMAL:%=$(GCPATH)%)


METAPATH = ./meta/
METAOBJSPATH = $(META_OBJS:%=$(METAPATH)%)
METAHFILESPATH = $(META_HFILES:%=$(METAPATH)%)
Expand Down Expand Up @@ -120,7 +132,7 @@ SIMHFILESPATH = $(SIM_HFILES:%=$(SIMPATH)%)
FMIPATH = ./fmi/
FMIOBJSPATH = $(FMI_OBJS:%=$(FMIPATH)%)

ALL_OBJS = $(METAOBJSPATH) $(UTILOBJSPATH) $(MATHOBJSPATH) $(SOLVEROBJSPATH) $(INITIALIZATIONOBJSPATH) $(OPTIMIZATIONOBJSPATH) $(RESULTSOBJSPATH) $(SIMOBJSPATH) $(SIMOBJSPATHC) meta/meta_modelica_catch$(OBJ_EXT)
ALL_OBJS = $(GCOBJSPATH) $(METAOBJSPATH) $(UTILOBJSPATH) $(MATHOBJSPATH) $(SOLVEROBJSPATH) $(INITIALIZATIONOBJSPATH) $(OPTIMIZATIONOBJSPATH) $(RESULTSOBJSPATH) $(SIMOBJSPATH) $(SIMOBJSPATHC) meta/meta_modelica_catch$(OBJ_EXT)

# External solvers needed by FMI for ME
CMINPACK_OBJS = enorm_ hybrj_ dpmpar_ qrfac_ qform_ dogleg_ r1updt_ r1mpyq_
Expand All @@ -131,17 +143,17 @@ LIBF2C_OBJS = i_nint pow_di s_cmp s_copy
endif

# Only objects needed for FMI for Modelica Exchange
FMI_ME_OBJS = $(UTILOBJSPATH) $(MATHOBJSPATH) $(SIMOBJSPATHC) $(SOLVEROBJSPATH) $(INITIALIZATIONOBJSPATH) \
FMI_ME_OBJS = $(GCOBJSPATH_MINIMAL) $(UTILOBJSPATH) $(MATHOBJSPATH) $(SIMOBJSPATHC) $(SOLVEROBJSPATH) $(INITIALIZATIONOBJSPATH) \
./meta/meta_modelica_catch$(OBJ_EXT) \
$(CMINPACK_OBJS:%=./external_solvers/%$(OBJ_EXT)) \
$(LAPACK_OBJS:%=./external_solvers/%$(OBJ_EXT)) \
$(BLAS_OBJS:%=./external_solvers/%$(OBJ_EXT)) \
$(LIBF2C_OBJS:%=./external_solvers/%$(OBJ_EXT)) \

ALL_HEADERS = $(METAHFILESPATH) $(UTILHFILESPATH) $(MATHHFILESPATH) $(SOLVERHFILESPATH) $(INITIALIZATIONHFILESPATH) $(OPTIMIZATIONHFILESPATH) $(RESULTSHFILESPATH) $(SIMHFILESPATH)
ALL_PATHS = $(METAPATH) $(FMIPATH) $(UTILPATH) $(MATHPATH) $(SOLVERPATH) $(INITIALIZATIONPATH) $(OPTIMIZATIONPATH) $(RESULTSPATH) $(SIMPATH) linearization/
ALL_HEADERS = $(METAHFILESPATH) $(GCFILESPATH) $(UTILHFILESPATH) $(MATHHFILESPATH) $(SOLVERHFILESPATH) $(INITIALIZATIONHFILESPATH) $(OPTIMIZATIONHFILESPATH) $(RESULTSHFILESPATH) $(SIMHFILESPATH)
ALL_PATHS = $(METAPATH) $(FMIPATH) $(GCPATH) $(UTILPATH) $(MATHPATH) $(SOLVERPATH) $(INITIALIZATIONPATH) $(OPTIMIZATIONPATH) $(RESULTSPATH) $(SIMPATH) linearization/
ALL_PATHS_CLEAN_OBJS = $(ALL_PATHS:%=%*$(OBJ_EXT)) $(ALL_PATHS:%=%*.a) meta/gc/*$(OBJ_EXT)

BASE_OBJS = $(METAOBJSPATH) $(UTILOBJSPATH) meta/meta_modelica_catch$(OBJ_EXT)
BASE_OBJS = $(GCOBJSPATH) $(METAOBJSPATH) $(UTILOBJSPATH) meta/meta_modelica_catch$(OBJ_EXT)

COMMON_HEADERS = util/omc_msvc.h openmodelica.h openmodelica_types.h ModelicaUtilities.h omc_inline.h openmodelica_func.h simulation_data.h
19 changes: 0 additions & 19 deletions SimulationRuntime/c/build_mingw_libs.bat

This file was deleted.

Expand Up @@ -29,10 +29,10 @@
*/


#include "memory_pool.h"
#define OMC_NO_GC_MAPPING
#include "gc/omc_gc.h"
#include <string.h>
#include <pthread.h>
#include <gc.h>

#if defined(__cplusplus)
extern "C" {
Expand Down Expand Up @@ -143,7 +143,7 @@ omc_alloc_interface_t omc_alloc_interface_pooled = {
};

#if defined(OMC_RECORD_ALLOC_WORDS)
#include "meta/gc/mmc_gc.h"
#include "gc/omc_gc.h"

static void* OMC_record_malloc(size_t sz)
{
Expand Down
File renamed without changes.
Expand Up @@ -37,7 +37,7 @@
*
*/

#include "mmc_gc.h"
#include "omc_gc.h"

static mmc_GC_state_type x_mmc_GC_state;
mmc_GC_state_type *mmc_GC_state = &x_mmc_GC_state;
Expand Down

0 comments on commit 28420a1

Please sign in to comment.