From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Joel Bion Newsgroups: gmane.emacs.devel Subject: Hassle I had to work around when compiling 24.4 on Windows Date: Sun, 26 Oct 2014 11:08:44 -0700 Organization: West Valley, LLC Message-ID: Reply-To: j-comm@westvi.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1414346943 32497 80.91.229.3 (26 Oct 2014 18:09:03 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 26 Oct 2014 18:09:03 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Oct 26 19:08:58 2014 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1XiSFO-0005qn-0j for ged-emacs-devel@m.gmane.org; Sun, 26 Oct 2014 19:08:58 +0100 Original-Received: from localhost ([::1]:57850 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XiSFN-00085Z-DC for ged-emacs-devel@m.gmane.org; Sun, 26 Oct 2014 14:08:57 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:33652) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XiSFG-000859-3E for emacs-devel@gnu.org; Sun, 26 Oct 2014 14:08:55 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XiSFA-0005pF-Tc for emacs-devel@gnu.org; Sun, 26 Oct 2014 14:08:49 -0400 Original-Received: from jfroot.com ([173.11.83.161]:58417) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XiSFA-0005p9-JL for emacs-devel@gnu.org; Sun, 26 Oct 2014 14:08:44 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by jfroot.com (Postfix) with ESMTP id 2B734C0616 for ; Sun, 26 Oct 2014 11:08:47 -0700 (PDT) X-Virus-Scanned: amavisd-new at jfroot.com Original-Received: from jfroot.com ([127.0.0.1]) by localhost (jfroot.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id swJjTP59YoYl for ; Sun, 26 Oct 2014 11:08:44 -0700 (PDT) Original-Received: from jfroot.com (jfroot.com [173.11.83.161]) by jfroot.com (Postfix) with ESMTPA id 9A661C05F2 for ; Sun, 26 Oct 2014 11:08:44 -0700 (PDT) Mail-Reply-To: j-comm@westvi.com X-Sender: j-comm@westvi.com User-Agent: Roundcube Webmail/1.0.3 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 173.11.83.161 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:175871 Archived-At: 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! My question: What am I doing wrong that requires me to do this? And if this is required, shouldn't a pointer to doing this be in the INSTALL file in the nt subdirectory? Thanks for any thoughts, Joel ... checking for alloca... yes ... Configured for `i686-pc-mingw32'. Where should the build process find the source code? . What compiler should emacs be built with? gcc -std=gnu99 -g3 -O 2 -gdwarf-2 Should Emacs use the GNU version of malloc? yes Should Emacs use a relocating allocator for buffers? yes Should Emacs use mmap(2) for buffer allocation? no What window system should Emacs use? w32 What toolkit should Emacs use? none Where do we find X Windows header files? NONE Where do we find X Windows libraries? NONE Does Emacs use -lXaw3d? no Does Emacs use -lXpm? no Does Emacs use -ljpeg? no Does Emacs use -ltiff? no Does Emacs use a gif library? no Does Emacs use a png library? no Does Emacs use -lrsvg-2? no Does Emacs use imagemagick? no Does Emacs support sound? yes Does Emacs use -lgpm? no Does Emacs use -ldbus? no Does Emacs use -lgconf? no Does Emacs use GSettings? no Does Emacs use a file notification library? yes (w32) Does Emacs use access control lists? yes Does Emacs use -lselinux? no Does Emacs use -lgnutls? no Does Emacs use -lxml2? no Does Emacs use -lfreetype? no Does Emacs use -lm17n-flt? no Does Emacs use -lotf? no Does Emacs use -lxft? no Does Emacs directly use zlib? no Does Emacs use toolkit scroll bars? yes checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating lib/Makefile config.status: creating lib-src/Makefile config.status: creating oldXMenu/Makefile config.status: creating doc/emacs/Makefile config.status: creating doc/misc/Makefile config.status: creating doc/lispintro/Makefile config.status: creating doc/lispref/Makefile config.status: creating src/Makefile config.status: creating lwlib/Makefile config.status: creating lisp/Makefile config.status: creating leim/Makefile config.status: creating nextstep/Makefile config.status: creating nt/Makefile config.status: creating admin/unidata/Makefile config.status: creating admin/grammars/Makefile config.status: creating src/config.h config.status: executing depfiles commands config.status: executing src/epaths.h commands config.status: executing src/.gdbinit commands User@User-PC /c/usrlocal/emacssrc/emacs-24.4 $ make [ -r "src/config.in" ] || ( cd . && autoheader ) cd nt && make all \ CC='gcc -std=gnu99' CFLAGS='-g3 -O2 -gdwarf-2' CPPFLAGS='-mtune=penti um4 -DUSE_CRT_DLL=1 -I /c/usrlocal/emacssrc/emacs-24.4/nt/inc' \ LDFLAGS='' MAKE='make' make[1]: Entering directory `/c/usrlocal/emacssrc/emacs-24.4/nt' windres -I . -O coff -o emacs.res ./emacs.rc gcc -std=gnu99 -mtune=pentium4 -I. -I. -mtune=pentium4 -DUSE_CRT_DLL=1 - I /c/usrlocal/emacssrc/emacs-24.4/nt/inc -g3 -O2 -gdwarf-2 ./runemacs.c emacs.re s -mwindows \ -o runemacs.exe gcc -std=gnu99 -mtune=pentium4 -I. -I. -mtune=pentium4 -DUSE_CRT_DLL=1 - I /c/usrlocal/emacssrc/emacs-24.4/nt/inc -g3 -O2 -gdwarf-2 ./addpm.c -lole32 -lu uid -o addpm.exe gcc -std=gnu99 -mtune=pentium4 -I. -I. -mtune=pentium4 -DUSE_CRT_DLL=1 - I /c/usrlocal/emacssrc/emacs-24.4/nt/inc -g3 -O2 -gdwarf-2 ./cmdproxy.c -o cmdpr oxy.exe gcc -std=gnu99 -mtune=pentium4 -I. -I. -mtune=pentium4 -DUSE_CRT_DLL=1 - I /c/usrlocal/emacssrc/emacs-24.4/nt/inc -g3 -O2 -gdwarf-2 ./ddeclient.c -o ddec lient.exe gcc -std=gnu99 -mtune=pentium4 -I. -I. -mtune=pentium4 -DUSE_CRT_DLL=1 - I /c/usrlocal/emacssrc/emacs-24.4/nt/inc -g3 -O2 -gdwarf-2 ./addsection.c -o add section.exe make[1]: Leaving directory `/c/usrlocal/emacssrc/emacs-24.4/nt' cd lib && make all \ CC='gcc -std=gnu99' CFLAGS='-g3 -O2 -gdwarf-2' CPPFLAGS='-mtune=penti um4 -DUSE_CRT_DLL=1 -I /c/usrlocal/emacssrc/emacs-24.4/nt/inc' \ LDFLAGS='' MAKE='make' make[1]: Entering directory `/c/usrlocal/emacssrc/emacs-24.4/lib' rm -f alloca.h-t alloca.h && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat ./alloca.in.h; \ } > alloca.h-t && \ mv -f alloca.h-t alloca.h rm -f byteswap.h-t byteswap.h && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat ./byteswap.in.h; \ } > byteswap.h-t && \ mv -f byteswap.h-t byteswap.h rm -f errno.h-t errno.h && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|include_next|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \ -e 's|@''PRAGMA_COLUMNS''@||g' \ -e 's|@''NEXT_ERRNO_H''@||g' \ -e 's|@''EMULTIHOP_HIDDEN''@|0|g' \ -e 's|@''EMULTIHOP_VALUE''@||g' \ -e 's|@''ENOLINK_HIDDEN''@|0|g' \ -e 's|@''ENOLINK_VALUE''@||g' \ -e 's|@''EOVERFLOW_HIDDEN''@|0|g' \ -e 's|@''EOVERFLOW_VALUE''@||g' \ < ./errno.in.h; \ } > errno.h-t && \ mv errno.h-t errno.h rm -f execinfo.h-t execinfo.h && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat ./execinfo.in.h; \ } > execinfo.h-t && \ mv execinfo.h-t execinfo.h rm -f arg-nonnull.h-t arg-nonnull.h && \ sed -n -e '/GL_ARG_NONNULL/,$p' \ < ../build-aux/snippet/arg-nonnull.h \ > arg-nonnull.h-t && \ mv arg-nonnull.h-t arg-nonnull.h rm -f getopt.h-t getopt.h && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_GETOPT_H''@|0|g' \ -e 's|@''INCLUDE_NEXT''@|include_next|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \ -e 's|@''PRAGMA_COLUMNS''@||g' \ -e 's|@''NEXT_GETOPT_H''@||g' \ -e '/definition of _GL_ARG_NONNULL/r arg-nonnull.h' \ < ./getopt.in.h; \ } > getopt.h-t && \ mv -f getopt.h-t getopt.h rm -f c++defs.h-t c++defs.h && \ sed -n -e '/_GL_CXXDEFS/,$p' \ < ../build-aux/snippet/c++defs.h \ > c++defs.h-t && \ mv c++defs.h-t c++defs.h rm -f warn-on-use.h-t warn-on-use.h && \ sed -n -e '/^.ifndef/,$p' \ < ../build-aux/snippet/warn-on-use.h \ > warn-on-use.h-t && \ mv warn-on-use.h-t warn-on-use.h make all-am make[2]: Entering directory `/c/usrlocal/emacssrc/emacs-24.4/lib' gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../lib -I../src -I../src -mtune=pentium4 -DUSE_CRT_DLL=1 -I /c/usrlocal/emacssrc/emacs-24.4/nt/inc -g3 -O2 -gdwarf- 2 -MT c-ctype.o -MD -MP -MF .deps/c-ctype.Tpo -c -o c-ctype.o c-ctype.c 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" ^ make[2]: *** [c-ctype.o] Error 1 make[2]: Leaving directory `/c/usrlocal/emacssrc/emacs-24.4/lib' make[1]: *** [all] Error 2 make[1]: Leaving directory `/c/usrlocal/emacssrc/emacs-24.4/lib' make: *** [lib] Error 2 User@User-PC /c/usrlocal/emacssrc/emacs-24.4 $