all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: j-comm@westvi.com
Cc: emacs-devel@gnu.org
Subject: Re: Hassle I had to work around when compiling 24.4 on Windows
Date: Sun, 26 Oct 2014 20:41:14 +0200	[thread overview]
Message-ID: <83bnoy4qt1.fsf@gnu.org> (raw)
In-Reply-To: <f35f8e969fd096710f8a15bd4902cd67@jfwest.com>

> Date: Sun, 26 Oct 2014 11:08:44 -0700
> From: Joel Bion <j-comm@westvi.com>
> 
> I keep Emacs up to date on both GNU/Linux and Windows machines. 
> Installing the GNU/Linux from source was trivial, as would be expected.
> 
> However, compiling the Windows version from source gave me the following 
> error (at end of email). To work around this quite annoying error, I had 
> to manually edit malloc.h in MinGW/include and have it forcibly define 
> alloca and _alloca as __builtin_alloca. When I do this, things all 
> compile fine and I have a brand-spanking new Emacs 24.4 on my Windows 
> machine that runs as well as my 24.3 build from last year.
> 
> My point: It really, REALLY doesn't feel nice to edit malloc.h!

You shouldn't need to.  There's some snafu at work here, see below.

> In file included from ../src/config.h:1840:0,
>                   from c-ctype.c:18:
> ../src/conf_post.h:49:3: error: #error "alloca not available on this 
> machine"
>   # error "alloca not available on this machine"
>     ^

I don't understand how this happened.  src/conf_post.h around line 49
says:

  #ifndef WINDOWSNT
  /* On AIX 3 this must be included before any other include file.  */
  #include <alloca.h>
  #if ! HAVE_ALLOCA
  # error "alloca not available on this machine"
  #endif
  #endif

So this fragment, including the #error directive, should not be
compiled on Windows, unless WINDOWSNT is not defined in your build.
WINDOWSNT is defined by src/config.h:

  /* Define if compiling for native MS Windows. */
  #define WINDOWSNT 1

which happens because of this snippet in the configure script:

  case $opsys in
  [...]
  mingw32)
      $as_echo "#define DOS_NT /**/" >>confdefs.h

  $as_echo "#define WINDOWSNT 1" >>confdefs.h

So if your configuration was recognized as "mingw32" (and it was,
according to the summary displayed by the configure script), which
means opsys was set to mingw32, how come WINDOWSNT is not defined?
Can you look into config.log and config.h and figure out what went
wrong there?



      reply	other threads:[~2014-10-26 18:41 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-26 18:08 Hassle I had to work around when compiling 24.4 on Windows Joel Bion
2014-10-26 18:41 ` Eli Zaretskii [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83bnoy4qt1.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=j-comm@westvi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.