unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Angelo Graziosi <angelo.graziosi@alice.it>
Cc: 18302@debbugs.gnu.org
Subject: bug#18302: MSYS2 build issues
Date: Fri, 22 Aug 2014 09:30:19 +0300	[thread overview]
Message-ID: <83egw9aves.fsf@gnu.org> (raw)
In-Reply-To: <53F67389.8020501@alice.it>

> Date: Fri, 22 Aug 2014 00:32:41 +0200
> From: Angelo Graziosi <angelo.graziosi@alice.it>
> 
> I do MSYS2-MinGW64 Emacs trunk builds with the simple steps:
> 
> ./autogen.sh
> 
> ./configure --prefix=/Emacs.app --with-wide-int 
> --build=x86_64-w64-mingw32 --without-imagemagick 
> 'CFLAGS=-I/mingw64/include/noX -Ofast -g0 -pipe' LDFLAGS=-pipe
> 
> make...
> 
> 
> The build needs the
> 
>    CFLAGS=-I/mingw64/include/noX
> 
> definition because of the manner how MSYS2 work. It puts all the stuffs 
> depending on msys2*dll (the equivalent of cygwin1.dll) under /usr. 
> Instead the MinGW34 and MinGW64 applications are under /mingw32 and 
> /mingw64 respectively. Usually, to work with MinGW64 applications, one 
> needs to start the shell-console with mingw64_shell.bat batch file 
> (msys2_shell.bat or mingw32_shell.bat to work with MSYS2 or MinGW32 apps).

Sorry, I don't understand what does this have to do with the issue at
hand.  You are talking about how MSYS2 maps the Posix-like /mingw32
and /mingw64 trees into Windows filesystems.  Fine; but why does this
matter in the context of this discussion?  ISTM that if you want to be
able to produce both MinGW32 and MinGW64 programs on the same machine,
you need 2 separate hierarchies anyway, one for the 32-bit and the
other for 64-bit programs.  IOW, just copy the /usr/include tree into
each of the mingwXX parents, and each respective compiler will find
them automatically, because it always searches for ../include relative
to its binary (you can see that with "gcc -v").  If that doesn't work,
then set C_INCLUDE_PATH in the environment to point to the right
include directory in each case.

Without having this set up correctly, your development environment is
subtly broken.

And if MSYS2 somehow makes this hard or impossible, then it's an MSYS2
bug that should be fixed ASAP.

> So, it is in the "nature" of MSYS2 that it puts things in non-standard 
> directory for MinGW32/64 apps. Probably one can change Emacs configure 
> to avoid these issue but I wonder, given the simple workaround shown 
> above, if this is worth the effort.

As I explained in this discussion, this has nothing to do with Emacs.

No, this is a basic compiler configuration issue: the headers should
be in a place where the compiler can find them, period.  No additional
"-I" switches should be needed to allow the compiler to find the
headers (and the library files) of an installed library/package.

> Instead, it would interesting, to understand why removing the configure 
> option, "--without-imagemagick", with the MinGW64 ImageMagick package 
> installed, configure enables imagemagick support but the build fails 
> with a linker error.. but this is matter for another thread.. I think.

The Windows build currently doesn't support ImageMagick.  That's why
you see those failures.  Patches are welcome to add ImageMagick
support in the same way we support other image libraries on Windows:
i.e. via dynamic load at run time if the library exists and when it is
first used.  See image.c for the details.





  reply	other threads:[~2014-08-22  6:30 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-20  9:54 bug#18302: MSYS2 build issues Karol Ostrovsky
2014-08-20 16:26 ` Eli Zaretskii
2014-08-20 17:04   ` Glenn Morris
2014-08-20 17:20     ` Eli Zaretskii
2014-08-21 10:08       ` Karol Ostrovsky
2014-08-21 14:30         ` Eli Zaretskii
2014-08-21 16:00           ` Glenn Morris
2014-08-21 18:38           ` Ken Brown
2014-08-21 19:22             ` Eli Zaretskii
2014-08-21 19:33               ` Eli Zaretskii
2014-08-21 21:29               ` Ken Brown
2014-08-22  6:10                 ` Eli Zaretskii
2014-08-22 13:04                   ` Ken Brown
2014-08-22 13:33                     ` Eli Zaretskii
2014-08-22 14:18                       ` Karol Ostrovsky
2014-08-23  8:57                         ` Eli Zaretskii
2014-08-25  8:18                           ` Karol Ostrovsky
2014-08-25 14:56                             ` Eli Zaretskii
2017-11-29  1:46                           ` Noam Postavsky
2014-08-21 22:32 ` Angelo Graziosi
2014-08-22  6:30   ` Eli Zaretskii [this message]
2014-08-22 10:55     ` Angelo Graziosi
2014-08-22 13:25       ` Eli Zaretskii

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=83egw9aves.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=18302@debbugs.gnu.org \
    --cc=angelo.graziosi@alice.it \
    /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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).