emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Building the igc branch on MS-Windows


From: Eli Zaretskii
Subject: Building the igc branch on MS-Windows
Date: Wed, 24 Apr 2024 18:06:30 +0300

I took a stab on this.

MPS doesn't support MinGW on MS-Windows OOTB, so I needed to create a
new platform configuration for it.  That took awhile, but eventually
the build worked and all the tests passed.

For the first build, I configured without tree-sitter, without native
compilation, and without wide-ints.  So this is supposed to be the
simplest 32-bit configuration possible.

Building Emacs, I has a few relatively simple problems to get it to
compile without any warnings and errors (see my commit a few minutes
ago), but then bootstrap-emacs aborts in pbootstrap phase due to
assertion violation inside MPS:

  Loading d:/gnu/git/emacs/feature/lisp/faces.el (source)...

  poolamc.c:1291: Emacs fatal error: assertion failed: p == clientLimit

  Backtrace:
  012aa172
  012aa205
  01122089
  011b25a7
  0127eae0
  01331a29
  Makefile:1011: recipe for target `bootstrap-emacs.pdmp' failed

and I have no idea where to go from here.  (I'll later try to install
a debug version of libmps and step with GDB through the code which
hits the assertion violation, but I doubt that I will be any wiser
after that, as the significance of what the function
amcSegScanNailedRange, which hits the assertion, does evades me.)

One thing that might be related is that I configured MPS with
MPS_PF_ALIGN = 4, because a build with align of 8 would sometimes fail
some of the tests.

Did someone try a 32-bit build on GNU/Linux?  Maybe the above isn't
Windows-specific, but has something to do with 32-bit builds?

Two other relevant issues, which _are_ specific to Windows:

  . Emacs on MS-Windows has its own implementation of malloc (see
    w32heap.c).  I don't think this should be a problem, as MPS
    advertises itself as being capable of coexisting with malloc and
    other allocators, but I thought I'd mention it anyway.
  . Emacs on MS-Windows uses an emulation of mmap, and the related
    code in buffer.c, for allocation of buffer text.  Most other
    builds of Emacs don't use mmap, so maybe there's some code not
    executed on any other platform where this branch was built and
    tested.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]