User Tools

Site Tools


devel:sis

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
devel:sis [2016/10/03 15:13] danildevel:sis [2017/01/20 10:33] (current) – removed danil
Line 1: Line 1:
-====== Building SIS ====== 
-SIS provides a logic synthesis library ''libsis.a'' that is required for Petrify. The following instructions are for [[https://embedded.eecs.berkeley.edu/Alumni/pchong/sis.html|SIS 1.3 Unofficial Distribution]]. 
  
-===== Generic notes ===== 
-  * GCC compatibility 
-    * Replace ''restrict'' to ''restrict_var'' -- it is a keyword now. 
-  * Windows builds 
-    * Cygwin build is smooth, but it introduces ugly dependency on ''cygwin1.dll'' for compatibility layer. 
-    * MinGW provides a convenient toolchain for cross-compilation and does not introduce unnecessary dependencies. To install MinGW-W64 in Ubuntu so: <code> 
-sudo apt install mingw-w64 
-</code> 
-    * Use ''%%__MINGW32__%%'' macro to distinguish Windows builds. 
-    * Add ''-lwinmm'' to the linker command: <code> 
-ifneq ($(findstring mingw32, $(CC)),) 
-    sis_LDADD = libsis.a -lm -lwinmm 
-else 
-    sis_LDADD = libsis.a -lm 
-endif 
-</code> 
- 
-  * The primary goal is to build ''libsis.a'' library for linking with Petrify without compatibility layer of Cygwin or MSYS2. The following changes and sacrifices had to be made for Windows build: 
-    * As the terminal API is not supported in Windows, all the SIS interactive functionality is excluded from Windows build. 
-    * Memory management is switched to ''malloc'' instead of default ''sbrk''. 
-    * Host name is assigned to //"unknown"// as ''gethostname'' function could not be found even when linked with ''-lws2_32'' option. 
-    * An alternative implementation of signal ''SIGSTOP'' in ''bwd_com.c'' needs ''CloseHandle'' function which however cannot be found at linking. It is commented out which may lead to resource leaks. 
-    * An alternative implementation of ''SIGALRM'' is based on ''timeSetEvent'' function that requires ''-lwinmm'' at linking. 
- 
-===== Cross-compiling for Windows ===== 
-  * 32-bit SIS for Windows:<code> 
-./configure --host=i686-w64-mingw32 
-make 
-</code> 
-  * 64-bit SIS for Windows:<code> 
-./configure --host=x86_64-w64-mingw32 
-make 
-</code> 
- 
-===== Compiling for Linux ===== 
-  * 32-bit SIS for Linux:<code> 
-./configure CFLAGS=-m32 
-make 
-</code> 
-  * 64-bit SIS for Linux:<code> 
-./configure CFLAGS=-m64 
-make 
-</code> 
Copyright © 2014-2024 workcraft.org

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki