Hi<div><div>My gcc version is 4.6.1 and my bison version is 2.4.1. </div><div>When do make in Disksim main folder. There will be two main problems need to fix. <br><div>1 Some math library can not be found due to library dependency on math library.</div>
<div><br></div><div>Solution Search LDFLAGS in each Makefile and put -lm at the end of LDFLAGS or link sequence.</div><div>Change src/Makefile</div><div>LDFLAGS = <b>-lm -L</b>.  -ldisksim $(DISKMODEL_LDFLAGS) $(MEMSMODEL_LDFLAGS) \</div>
<div>                            $(LIBPARAM_LDFLAGS) $(LIBDDBG_LDFLAGS) </div><div>to</div><div>LDFLAGS = -ldisksim $(DISKMODEL_LDFLAGS) $(MEMSMODEL_LDFLAGS) \</div><div>                            $(LIBPARAM_LDFLAGS) $(LIBDDBG_LDFLAGS) <b>-lm -L. </b> </div>
<div><br></div><div>Change memsmodel/Maefile</div><div>$(CC) -o $@ mems_seektest.o <b>$(LDFLAGS)</b> $(CFLAGS) -lmems_internals</div><div>to</div><div>$(CC) -o $@ mems_seektest.o $(CFLAGS) -lmems_internals <b>$(LDFLAGS)</b></div>
<div><b><br></b></div><div><div>2 src/disksim_iosim.c:712:4: error: duplicate case value<div>disksim_iosim.c:712:4: error: previously used here</div><div>Due to StaticAssert (sizeof(ioreq_event) <= DISKSIM_EVENT_SIZE);</div>
<div>Where<b> #define StaticAssert(c) switch (c) case 0: case (c): </b></div><div>What is the meaning of this StaticAssert.  </div><div>I do not understand the meaning of this assert. If c is 0, because there is no break, it will still go to case(c). If c is not 0, it directly go to case(c). </div>
<div>It sounds to me this is totally no use. </div><div>So just comment it. Then everything works fine and compile successful. </div><div><br></div><div>Is this actually a code bug?</div><div>Hopes developer can fix this in Makefile and disksim_iosim.c if this is a code bug. </div>
-- <br>Qingpeng Niu<br>Department of Computer Science and Engineering at OSU <br>
</div></div></div></div>