On 11/08/2020 09:37, David Matthews wrote:
> 
> Secure OSs:  There is now support for OpenBSD and SELinux in enforcing mode. 
> There was a problem with these operating systems because they forbid the
> creation of memory areas with both execute and write permissions.  In order to
> create and garbage collect ML code the RTS needs to be able to write to the
> code areas and it also needs to be executed.  The work-around is to use memory
> mapped files and create two separate regions mapped to the same file.

I have problems building that version b95a85ead3ae on Windows with MinGW:

"""
In file included from osmemwin.cpp:34:
osmem.h:97:5: error: 'Bitmap' does not name a type
   97 |     Bitmap pageMap;
      |     ^~~~~~
osmemwin.cpp: In member function 'bool OSMem::Initialise(OSMem::_MemUsage, size_
t, void**)':
osmemwin.cpp:76:10: error: 'pageMap' was not declared in this scope
   76 |     if (!pageMap.Create(space / pageSize))
      |          ^~~~~~~
osmemwin.cpp:84:5: error: 'pageMap' was not declared in this scope
   84 |     pageMap.SetBit(space / pageSize - 1);
      |     ^~~~~~~
osmemwin.cpp: In member function 'void* OSMem::AllocateDataArea(size_t&)':
osmemwin.cpp:97:16: error: 'pageMap' was not declared in this scope; did you mea
n 'pages'?
   97 |         while (pageMap.TestBit(lastAllocated - 1)) // Skip the wholly al
located area.
      |                ^~~~~~~
      |                pages
osmemwin.cpp:99:26: error: 'pageMap' was not declared in this scope; did you mea
n 'pages'?
   99 |         uintptr_t free = pageMap.FindFree(0, lastAllocated, pages);
      |                          ^~~~~~~
      |                          pages
osmemwin.cpp: In member function 'bool OSMem::FreeDataArea(void*, size_t)':
osmemwin.cpp:118:9: error: 'pageMap' was not declared in this scope; did you mea
n 'pages'?
  118 |         pageMap.ClearBits(offset, pages);
      |         ^~~~~~~
      |         pages
osmemwin.cpp: In member function 'void* OSMem::AllocateCodeArea(size_t&, void*&)
':
osmemwin.cpp:134:16: error: 'pageMap' was not declared in this scope; did you me
an 'pages'?
  134 |         while (pageMap.TestBit(lastAllocated - 1)) // Skip the wholly al
located area.
      |                ^~~~~~~
      |                pages
osmemwin.cpp:136:26: error: 'pageMap' was not declared in this scope; did you me
an 'pages'?
  136 |         uintptr_t free = pageMap.FindFree(0, lastAllocated, pages);
      |                          ^~~~~~~
      |                          pages
osmemwin.cpp: In member function 'bool OSMem::FreeCodeArea(void*, void*, size_t)
':
osmemwin.cpp:160:9: error: 'pageMap' was not declared in this scope; did you mea
n 'pages'?
  160 |         pageMap.ClearBits(offset, pages);
      |         ^~~~~~~
      |         pages
make[3]: *** [Makefile:800: osmemwin.lo] Error 1
make[3]: Leaving directory '/d/cygwin64/home/wenzelm/lib/polyml/polyml-git/libpo
lyml'
make[2]: *** [Makefile:840: all-recursive] Error 1
make[2]: Leaving directory '/d/cygwin64/home/wenzelm/lib/polyml/polyml-git/libpo
lyml'
make[1]: *** [Makefile:729: all-recursive] Error 1
make[1]: Leaving directory '/d/cygwin64/home/wenzelm/lib/polyml/polyml-git'
make: *** [Makefile:488: all] Error 2
Build failed
*** Error
"""

(See also
https://isabelle.sketis.net/repos/isabelle/file/9e5862223442/Admin/polyml/INSTALL-MinGW)


        Makarius
_______________________________________________
polyml mailing list
polyml@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

Reply via email to