#3169 closed defect (fixed)
Under Mac OS X, FMU binaries directory should be darwin64, not x86_64-apple-darwin13.2.0
| Reported by: | Owned by: | Martin Sjölund | |
|---|---|---|---|
| Priority: | normal | Milestone: | 1.9.2 |
| Component: | FMI | Version: | trunk |
| Keywords: | Cc: |
Description
Under Mac OS X, using the OpenModelica svn head from 20-Feb-2015, when exporting the BouncingBall fmu using openmodelica/testsuite/openmodelica/fmi/ModelExchange/2.0/BouncingBall.mos, the fmu is created with binaries/x86_64-apple-darwin13.2.0. According to the FMI-2.0 standard, it should be binaries/darwin64.
Here's how to reproduce:
bash-3.2$ mkdir /tmp/test
bash-3.2$ cd /tmp/test
bash-3.2$ uname -a
Darwin eallmac23.local 13.4.0 Darwin Kernel Version 13.4.0: Wed Dec 17 19:05:52 PST 2014; root:xnu-2422.115\
.10~1/RELEASE_X86_64 x86_64
bash-3.2$ cp ~/src/openmodelica/testsuite/openmodelica/fmi/ModelExchange/2.0/BouncingBall.mos .
bash-3.2$ omc BouncingBall.mos
true
""
"SimCode: The model BouncingBallFMI20 has been translated to FMU"
"Warning: The initial conditions are not fully specified. Use +d=initialization for more information.
"
"BouncingBallFMI20_me_FMU.mo"
""
true
""
record SimulationResult
resultFile = "",
simulationOptions = "startTime = 0.0, stopTime = 3.0, numberOfIntervals = 500, tolerance = 1e-06, metho\
d = 'dassl', fileNamePrefix = 'BouncingBallFMI20_me_FMU', options = '', outputFormat = 'mat', variableFilte\
r = '.*', cflags = '', simflags = ''",
messages = "Simulation execution failed for model: BouncingBallFMI20_me_FMU
module = FMILIB, log level = FATAL: Could not change to the DLL directory /private/tmp/test/binaries/darwin\
64/
module = FMILIB, log level = FATAL: The FMU contains no binary for this platform.
assert | debug | Loading of FMU dynamic link library failed with status : UNEXPECTED
assert | info | simulation terminated by an assertion at initialization
Limited backtrace at point of segmentation fault
/bin/sh: line 1: 43206 Segmentation fault: 11 ( \"/private/tmp/test/BouncingBallFMI20_me_FMU\" )
",
timeFrontend = 0.057755745,
timeBackend = 0.015780989,
timeSimCode = 0.01223577,
timeTemplates = 0.030908571,
timeCompile = 0.462934843
end SimulationResult;
"Warning: The initial conditions are not fully specified. Use +d=initialization for more information.
"
bash-3.2$ fmuCheck.darwin64 BouncingBallFMI20.fmu
[INFO][FMUCHK] FMI compliance checker Test [FMILibrary: Test] build date: Jan 5 2015
[INFO][FMUCHK] Called with following options:
[INFO][FMUCHK] fmuCheck.darwin64 BouncingBallFMI20.fmu
[INFO][FMUCHK] Will process FMU BouncingBallFMI20.fmu
[INFO][FMILIB] XML specifies FMI standard version 2.0
[INFO][FMUCHK] Model name: BouncingBallFMI20
[INFO][FMUCHK] Model GUID: {8c4e810f-3df3-4a00-8276-176fa3c9f9e0}
[INFO][FMUCHK] Model version:
[INFO][FMUCHK] FMU kind: ModelExchange
[INFO][FMUCHK] The FMU contains:
0 constants
2 parameters
2 discrete variables
4 continuous variables
0 inputs
0 outputs
6 local variables
0 independent variables
0 calculated parameters
7 real variables
0 integer variables
0 enumeration variables
1 boolean variables
0 string variables
[INFO][FMUCHK] Printing output file header
"time"
[INFO][FMUCHK] Model identifier for ModelExchange: BouncingBallFMI20
[FATAL][FMILIB] Could not change to the DLL directory /private/tmp/fmucktmpCpXJnr/binaries/darwin64/
[FATAL][FMILIB] The FMU contains no binary for this platform.
[FATAL][FMUCHK] Could not create the DLL loading mechanism(C-API) for ME.
FMU check summary:
FMU reported:
0 warning(s) and error(s)
Checker reported:
0 Warning(s)
3 Error(s)
3 Fatal error(s) occurred during processing
bash-3.2$ mkdir tmp
bash-3.2$ cd tmp
bash-3.2$ unzip ../BouncingBallFMI20.fmu
Archive: ../BouncingBallFMI20.fmu
creating: binaries/
creating: binaries/x86_64-apple-darwin13.4.0/
inflating: binaries/x86_64-apple-darwin13.4.0/BouncingBallFMI20.dylib
extracting: binaries/x86_64-apple-darwin13.4.0/BouncingBallFMI20_FMU.libs
inflating: modelDescription.xml
creating: sources/
inflating: sources/BouncingBallFMI20.c
inflating: sources/BouncingBallFMI20_01exo.c
inflating: sources/BouncingBallFMI20_02nls.c
inflating: sources/BouncingBallFMI20_03lsy.c
inflating: sources/BouncingBallFMI20_04set.c
inflating: sources/BouncingBallFMI20_05evt.c
inflating: sources/BouncingBallFMI20_06inz.c
inflating: sources/BouncingBallFMI20_07dly.c
inflating: sources/BouncingBallFMI20_08bnd.c
inflating: sources/BouncingBallFMI20_09alg.c
inflating: sources/BouncingBallFMI20_10asr.c
inflating: sources/BouncingBallFMI20_11mix.c
extracting: sources/BouncingBallFMI20_11mix.h
inflating: sources/BouncingBallFMI20_12jac.c
inflating: sources/BouncingBallFMI20_12jac.h
inflating: sources/BouncingBallFMI20_13opt.c
inflating: sources/BouncingBallFMI20_13opt.h
inflating: sources/BouncingBallFMI20_14lnz.c
inflating: sources/BouncingBallFMI20_FMU.c
extracting: sources/BouncingBallFMI20_FMU.libs
inflating: sources/BouncingBallFMI20_FMU.makefile
inflating: sources/BouncingBallFMI20_functions.c
inflating: sources/BouncingBallFMI20_functions.h
extracting: sources/BouncingBallFMI20_includes.h
inflating: sources/BouncingBallFMI20_info.c
inflating: sources/BouncingBallFMI20_init.c
inflating: sources/BouncingBallFMI20_literals.h
inflating: sources/BouncingBallFMI20_model.h
inflating: sources/BouncingBallFMI20_records.c
inflating: sources/modelDescription.xml
bash-3.2$ mv binaries/x86_64-apple-darwin13.4.0/ binaries/darwin64
bash-3.2$ zip -r ../BouncingBallFMI20.fmu *
updating: binaries/ (stored 0%)
updating: modelDescription.xml (deflated 73%)
updating: sources/ (stored 0%)
updating: sources/BouncingBallFMI20.c (deflated 76%)
updating: sources/BouncingBallFMI20_01exo.c (deflated 61%)
updating: sources/BouncingBallFMI20_02nls.c (deflated 59%)
updating: sources/BouncingBallFMI20_03lsy.c (deflated 63%)
updating: sources/BouncingBallFMI20_04set.c (deflated 59%)
updating: sources/BouncingBallFMI20_05evt.c (deflated 66%)
updating: sources/BouncingBallFMI20_06inz.c (deflated 72%)
updating: sources/BouncingBallFMI20_07dly.c (deflated 59%)
updating: sources/BouncingBallFMI20_08bnd.c (deflated 69%)
updating: sources/BouncingBallFMI20_09alg.c (deflated 59%)
updating: sources/BouncingBallFMI20_10asr.c (deflated 58%)
updating: sources/BouncingBallFMI20_11mix.c (deflated 61%)
updating: sources/BouncingBallFMI20_11mix.h (stored 0%)
updating: sources/BouncingBallFMI20_12jac.c (deflated 77%)
updating: sources/BouncingBallFMI20_12jac.h (deflated 84%)
updating: sources/BouncingBallFMI20_13opt.c (deflated 62%)
updating: sources/BouncingBallFMI20_13opt.h (deflated 54%)
updating: sources/BouncingBallFMI20_14lnz.c (deflated 62%)
updating: sources/BouncingBallFMI20_FMU.c (deflated 81%)
updating: sources/BouncingBallFMI20_FMU.libs (stored 0%)
updating: sources/BouncingBallFMI20_FMU.makefile (deflated 66%)
updating: sources/BouncingBallFMI20_functions.c (deflated 46%)
updating: sources/BouncingBallFMI20_functions.h (deflated 48%)
updating: sources/BouncingBallFMI20_includes.h (stored 0%)
updating: sources/BouncingBallFMI20_info.c (deflated 88%)
updating: sources/BouncingBallFMI20_init.c (deflated 81%)
updating: sources/BouncingBallFMI20_literals.h (deflated 59%)
updating: sources/BouncingBallFMI20_model.h (deflated 80%)
updating: sources/BouncingBallFMI20_records.c (deflated 24%)
updating: sources/modelDescription.xml (deflated 73%)
adding: binaries/darwin64/ (stored 0%)
adding: binaries/darwin64/BouncingBallFMI20.dylib (deflated 72%)
adding: binaries/darwin64/BouncingBallFMI20_FMU.libs (stored 0%)
bash-3.2$ cd ..
bash-3.2$ fmuCheck.darwin64 BouncingBallFMI20.fmu
bash-3.2$ fmuCheck.darwin64 BouncingBallFMI20.fmu
[INFO][FMUCHK] FMI compliance checker Test [FMILibrary: Test] build date: Jan 5 2015
[INFO][FMUCHK] Called with following options:
[INFO][FMUCHK] fmuCheck.darwin64 BouncingBallFMI20.fmu
[INFO][FMUCHK] Will process FMU BouncingBallFMI20.fmu
[INFO][FMILIB] XML specifies FMI standard version 2.0
[INFO][FMUCHK] Model name: BouncingBallFMI20
[INFO][FMUCHK] Model GUID: {8c4e810f-3df3-4a00-8276-176fa3c9f9e0}
[INFO][FMUCHK] Model version:
[INFO][FMUCHK] FMU kind: ModelExchange
[INFO][FMUCHK] The FMU contains:
0 constants
2 parameters
2 discrete variables
4 continuous variables
0 inputs
0 outputs
6 local variables
0 independent variables
0 calculated parameters
7 real variables
0 integer variables
0 enumeration variables
...
0.996
0.998
1
[INFO][FMUCHK] Simulation finished successfully at time 1
Segmentation fault: 11
bash-3.2$
Note that the BouncingBall segfaults under MacOS.
Running with a debug version of fmuCheck yields:
[INFO][FMUCHK] FMI compliance checker Test [FMILibrary: Test] build date: Feb 19 2015 [INFO][FMUCHK] Called with following options: [INFO][FMUCHK] /Users/cxh/src/fmi/FMUChecker-2.0.1/build/fmuCheck.darwin64 BouncingBallFMI20.fmu [INFO][FMUCHK] Will process FMU BouncingBallFMI20.fmu [INFO][FMILIB] XML specifies FMI standard version 2.0 Assertion failed: (index < a->size), function jm_vector_get_itemp_char, file /Users/cxh/src/fmi/FMUChecker-\ 2.0.1/FMIL/src/Util/include/JM/jm_vector.h, line 352.
I'll submit a separate bug for this that refers to this bug
Change History (5)
comment:1 by , 11 years ago
comment:2 by , 11 years ago
We changed from using uname to $host (in autoconf), and so the openmodelica spec changed, and darwin64 no longer detected...
r24672 should fix this.
comment:3 by , 11 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → accepted |
comment:4 by , 11 years ago
| Milestone: | Future → 1.9.2 |
|---|---|
| Resolution: | → fixed |
| Status: | accepted → closed |
comment:5 by , 11 years ago
This bug is back. The fmu contains binaries/x86_64-darwin13.4.0/ instead of binaries/darwin64/
To replicate:
HeatConductor.mo contains:
model HeatConductor "Test model for QSS"
extends Modelica.Icons.Example;
Modelica.Blocks.Interfaces.RealInput TOut "Outside temperature"
annotation (Placement(transformation(extent={{-140,-20},{-100,20}})));
Modelica.Blocks.Interfaces.RealOutput TSur "Surface temperature"
annotation (Placement(transformation(extent={{100,70},{120,90}})));
Real x "State";
initial equation
x=273.15;
equation
der(x) = TOut-x;
TSur = x;
annotation (uses(Modelica(version="3.2.1")), Diagram(coordinateSystem(
preserveAspectRatio=false, extent={{-100,-100},{100,100}}), graphics));
end HeatConductor;
HeatConductor.mos contains:
loadModel(Modelica, {"3.2.1"});
getErrorString();
loadFile("HeatConductor.mo"); getErrorString();
OpenModelica.Scripting.translateModelFMU(
className=HeatConductor,
version="2.0");
getErrorString();
Create a fmu:
bash-3.2$ omc --version 1.9.3+dev (r25132) bash-3.2$ omc HeatConductor.mos true "" true "" "SimCode: The model HeatConductor has been translated to FMU" "" bash-3.2$ mkdir tmp bash-3.2$ cd tmp bash-3.2$ ls -l ../HeatConductor.fmu -rw-r--r-- 1 cxh staff 55637 Mar 18 20:32 ../HeatConductor.fmu bash-3.2$ unzip ../HeatConductor.fmu Archive: ../HeatConductor.fmu creating: binaries/ creating: binaries/x86_64-darwin13.4.0/ inflating: binaries/x86_64-darwin13.4.0/HeatConductor.dylib extracting: binaries/x86_64-darwin13.4.0/HeatConductor_FMU.libs ...
binaries/x86_64-darwin13.4.0/ should be binaries/darwin64/

We are progressing towards more sensible names.
will be allowed in FMI 2.0.1 according to current discussions. See https://trac.modelica.org/fmi/ticket/302#comment:16
Then it would be possible to distinguish e.g. iMac from iPad.