From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.bugs Subject: bug#9772: OSX breakage Date: Tue, 29 Nov 2011 01:28:30 -0800 Organization: UCLA Computer Science Department Message-ID: <4ED4A5BE.80008@cs.ucla.edu> References: <4ED3AA79.8060605@lassnig.net> <838vn06swa.fsf@gnu.org> <4ED3DA30.1050006@cs.ucla.edu> <871usrh69t.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1322558968 20436 80.91.229.12 (29 Nov 2011 09:29:28 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Tue, 29 Nov 2011 09:29:28 +0000 (UTC) Cc: mario@lassnig.net, 9772@debbugs.gnu.org, 9960@debbugs.gnu.org, 10155@debbugs.gnu.org To: Chong Yidong Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Nov 29 10:29:17 2011 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RVK04-0002NF-JS for geb-bug-gnu-emacs@m.gmane.org; Tue, 29 Nov 2011 10:29:17 +0100 Original-Received: from localhost ([::1]:37762 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RVK04-0003jr-4o for geb-bug-gnu-emacs@m.gmane.org; Tue, 29 Nov 2011 04:29:16 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:53842) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RVJzw-0003gV-VZ for bug-gnu-emacs@gnu.org; Tue, 29 Nov 2011 04:29:13 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RVJzs-0006Av-5W for bug-gnu-emacs@gnu.org; Tue, 29 Nov 2011 04:29:08 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:43535) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RVJzs-0006Aj-27 for bug-gnu-emacs@gnu.org; Tue, 29 Nov 2011 04:29:04 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1RVK1m-0007q5-SY for bug-gnu-emacs@gnu.org; Tue, 29 Nov 2011 04:31:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Paul Eggert Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 29 Nov 2011 09:31:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 9772 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 9772-submit@debbugs.gnu.org id=B9772.132255904030096 (code B ref 9772); Tue, 29 Nov 2011 09:31:02 +0000 Original-Received: (at 9772) by debbugs.gnu.org; 29 Nov 2011 09:30:40 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RVK1O-0007pF-SK for submit@debbugs.gnu.org; Tue, 29 Nov 2011 04:30:40 -0500 Original-Received: from smtp.cs.ucla.edu ([131.179.128.62]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RVK1H-0007ov-Hg; Tue, 29 Nov 2011 04:30:35 -0500 Original-Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id D3A47A60003; Tue, 29 Nov 2011 01:28:31 -0800 (PST) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Original-Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jwplGHafoRhy; Tue, 29 Nov 2011 01:28:28 -0800 (PST) Original-Received: from [192.168.1.10] (pool-71-189-109-235.lsanca.fios.verizon.net [71.189.109.235]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 18218A60001; Tue, 29 Nov 2011 01:28:28 -0800 (PST) User-Agent: Mozilla/5.0 (X11; Linux i686; rv:8.0) Gecko/20111124 Thunderbird/8.0 In-Reply-To: <871usrh69t.fsf@gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Tue, 29 Nov 2011 04:31:02 -0500 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:54402 Archived-At: On 11/28/11 21:00, Chong Yidong wrote: > As Eli pointed out in the discussion on bug#10155, there is already cod= e > in lib/unistd.in.h that apparently ought to handle this, but itsn't > working. Here's a proposed patch to fix that, by having Emacs use Gnulib's environ module. This syncs from Gnulib, and so it also brings in the patches for Bug#9772 and Bug#9960. (It is possible to pull out just the environ fix by hand, but that's an error-prone process and I'd rather avoid it.) I have tested this on Fedora 15, but not on OSX nor on Windows. # Begin patch =3D=3D=3D modified file '.bzrignore' --- .bzrignore 2011-09-29 14:19:11 +0000 +++ .bzrignore 2011-10-17 01:22:19 +0000 @@ -53,6 +53,7 @@ lib/c++defs.h lib/getopt.h lib/inttypes.h +lib/stdalign.h lib/stdbool.h lib/stdio.h lib/stdint.h =3D=3D=3D modified file 'ChangeLog' --- ChangeLog 2011-11-27 18:33:17 +0000 +++ ChangeLog 2011-11-29 09:17:01 +0000 @@ -1,3 +1,25 @@ +2011-11-29 Paul Eggert + + Use Gnulib environ module. + * Makefile.in (GNULIB_MODULES): Add environ. + * m4/environ.m4: New file, from gnulib. + + Use Gnulib stdalign module (Bug#9772, Bug#9960). + This should improve portability of macros like alignof and DECL_ALIGN. + * lib/stdalign.in.h, m4/stdalign.m4: New files, from gnulib. + * .bzrignore: Add lib/stdalign.h. + * Makefile.in (GNULIB_MODULES): Add stdalign. + * config.bat: Do not set NO_DECL_ALIGN; no longer needed. + Copy lib/stdalign.in.h to lib/stdalign.in-h as needed. + * configure.in (HAVE_ATTRIBUTE_ALIGNED): Remove the code that + fiddles with this, as gnulib now does this for us. + * doc/misc/texinfo.tex, lib/gettext.h, lib/gnulib.mk: + * lib/md5.c, lib/sha1.c, lib/sha256.c, lib/sha512.c: + * lib/sigprocmask.c, lib/stdlib.in.h: + * m4/dup2.m4, m4/getopt.m4, m4/gl-comp.m4, m4/gnulib-common.m4: + * m4/include_next.m4, m4/pthread_sigmask.m4, m4/stdlib_h.m4: + * m4/unistd_h.m4: Merge from gnulib. + 2011-11-27 Jan Dj=C3=A4rv =20 * configure.in: Check for gtk_window_set_has_resize_grip. =3D=3D=3D modified file 'Makefile.in' --- Makefile.in 2011-11-22 01:56:49 +0000 +++ Makefile.in 2011-11-29 09:17:01 +0000 @@ -334,10 +334,10 @@ GNULIB_MODULES =3D \ alloca-opt \ careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoast= r \ - dup2 \ + dup2 environ \ filemode getloadavg getopt-gnu ignore-value intprops lstat \ mktime pthread_sigmask readlink \ - socklen stdarg stdio strftime strtoimax strtoumax symlink sys_stat + socklen stdalign stdarg stdio strftime strtoimax strtoumax symlink sys= _stat GNULIB_TOOL_FLAGS =3D \ --avoid=3Dmsvc-inval --avoid=3Dmsvc-nothrow --avoid=3Dpathmax \ --avoid=3Draise --avoid=3Dthreadlib \ =3D=3D=3D modified file 'config.bat' --- config.bat 2011-10-31 17:49:10 +0000 +++ config.bat 2011-11-01 05:03:56 +0000 @@ -163,22 +163,6 @@ if exist ..\autogen\config.in sed -f ../msdos/sed2x.inp < ..\autogen\con= fig.in > config.tmp :src4 sed -f ../msdos/sed2v2.inp config.h2 -Rem See if DECL_ALIGN can be supported with this GCC -rm -f junk.c junk.o junk junk.exe -echo struct { int i; char *p; } __attribute__((__aligned__(8))) foo; >j= unk.c -rem Two percent signs because it is a special character for COMMAND.COM/= CMD -rem Filter thru Sed because "&" is special for CMD.EXE -echo int main(void) { return (unsigned long)"&"foo %% 8; } | sed "s/.&./= \&/" >>junk.c -gcc -o junk junk.c -if not exist junk.exe coff2exe junk -junk -If Not ErrorLevel 1 Goto alignOk -Echo WARNING: Your GCC does not support 8-byte aligned variables. -Echo WARNING: Therefore Emacs cannot support buffers larger than 128MB. -rem The following line disables DECL_ALIGN which in turn disables USE_LS= B_TAG -rem For details see lisp.h where it defines USE_LSB_TAG -echo #define NO_DECL_ALIGN >>config.h2 -:alignOk Rem See if they have libxml2 later than v2.2.0 installed Echo Checking whether libxml2 v2.2.1 or later is installed ... rm -f junk.c junk.o junk junk.exe @@ -283,6 +267,7 @@ If Exist build-aux\snippet\c++defs.h update build-aux/snippet/c++defs.h = build-aux/snippet/cxxdefs.h If Exist alloca.in.h update alloca.in.h alloca.in-h If Exist getopt.in.h update getopt.in.h getopt.in-h +If Exist stdalign.in.h update stdalign.in.h stdalign.in-h If Exist stdbool.in.h update stdbool.in.h stdbool.in-h If Exist signal.in.h update signal.in.h signal.in-h If Exist stddef.in.h update stddef.in.h stddef.in-h @@ -346,4 +331,3 @@ set djgpp_ver=3D set sys_malloc=3D set libxml=3D - =3D=3D=3D modified file 'configure.in' --- configure.in 2011-11-27 18:33:17 +0000 +++ configure.in 2011-11-28 16:07:26 +0000 @@ -1350,19 +1350,6 @@ dnl Check for endianness. AC_C_BIGENDIAN =20 -AC_CACHE_CHECK([for __attribute__ ((__aligned__ (expr)))], - [emacs_cv_attribute_aligned], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[char __attribute__ ((__aligned__ (1 << 3))) c;]], - [[]])], - [emacs_cv_attribute_aligned=3Dyes], - [emacs_cv_attribute_aligned=3Dno])]) -if test $emacs_cv_attribute_aligned =3D yes; then - AC_DEFINE([HAVE_ATTRIBUTE_ALIGNED], 1, - [Define to 1 if GCC-style __attribute__ ((__aligned__ (expr))) works= .]) -fi - dnl check for Make feature AC_PROG_MAKE_SET =20 =3D=3D=3D modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2011-11-25 13:26:30 +0000 +++ doc/misc/ChangeLog 2011-11-29 09:17:01 +0000 @@ -1,3 +1,7 @@ +2011-11-29 Paul Eggert + + * texinfo.tex: Merge from gnulib. + 2011-11-24 Glenn Morris =20 * gnus.texi, smtpmail.texi: Fix case of "GnuTLS". =3D=3D=3D modified file 'doc/misc/texinfo.tex' --- doc/misc/texinfo.tex 2011-09-26 21:30:18 +0000 +++ doc/misc/texinfo.tex 2011-11-29 09:17:01 +0000 @@ -3,7 +3,7 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2011-09-23.09} +\def\texinfoversion{2011-11-09.15} % % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, @@ -116,6 +116,7 @@ % Set up fixed words for English if not already set. \ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi \ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi +\ifx\putworderror\undefined \gdef\putworderror{error}\fi \ifx\putwordfile\undefined \gdef\putwordfile{file}\fi \ifx\putwordin\undefined \gdef\putwordin{in}\fi \ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Inde= x is empty)}\fi @@ -1194,29 +1195,31 @@ \def\imagewidth{#2}\setbox0 =3D \hbox{\ignorespaces #2}% \def\imageheight{#3}\setbox2 =3D \hbox{\ignorespaces #3}% % - % pdftex (and the PDF format) support .png, .jpg, .pdf (among - % others). Let's try in that order. + % pdftex (and the PDF format) support .pdf, .png, .jpg (among + % others). Let's try in that order, PDF first since if + % someone has a scalable image, presumably better to use that than a + % bitmap. \let\pdfimgext=3D\empty \begingroup - \openin 1 #1.png \ifeof 1 - \openin 1 #1.jpg \ifeof 1 - \openin 1 #1.jpeg \ifeof 1 - \openin 1 #1.JPG \ifeof 1 - \openin 1 #1.pdf \ifeof 1 - \openin 1 #1.PDF \ifeof 1 + \openin 1 #1.pdf \ifeof 1 + \openin 1 #1.PDF \ifeof 1 + \openin 1 #1.png \ifeof 1 + \openin 1 #1.jpg \ifeof 1 + \openin 1 #1.jpeg \ifeof 1 + \openin 1 #1.JPG \ifeof 1 \errhelp =3D \nopdfimagehelp \errmessage{Could not find image file #1 for pdf}% - \else \gdef\pdfimgext{PDF}% + \else \gdef\pdfimgext{JPG}% \fi - \else \gdef\pdfimgext{pdf}% + \else \gdef\pdfimgext{jpeg}% \fi - \else \gdef\pdfimgext{JPG}% + \else \gdef\pdfimgext{jpg}% \fi - \else \gdef\pdfimgext{jpeg}% + \else \gdef\pdfimgext{png}% \fi - \else \gdef\pdfimgext{jpg}% + \else \gdef\pdfimgext{PDF}% \fi - \else \gdef\pdfimgext{png}% + \else \gdef\pdfimgext{pdf}% \fi \closein 1 \endgroup @@ -2372,7 +2375,9 @@ \else\ifx\next-% \else\ifx\next.% \else\ptexslash - \fi\fi\fi} + \fi\fi\fi + \aftersmartic +} =20 % like \smartslanted except unconditionally uses \ttsl, and no ic. % @var is set to this for defun arguments. @@ -2382,9 +2387,15 @@ % ttsl for book titles, do we? \def\cite#1{{\sl #1}\futurelet\next\smartitaliccorrection} =20 +\def\aftersmartic{} +\def\var#1{% + \let\saveaftersmartic =3D \aftersmartic + \def\aftersmartic{\null\let\aftersmartic=3D\saveaftersmartic}% + \smartslanted{#1}% +} + \let\i=3D\smartitalic \let\slanted=3D\smartslanted -\def\var#1{\smartslanted{#1}} \let\dfn=3D\smartslanted \let\emph=3D\smartitalic =20 @@ -2480,7 +2491,7 @@ \plainfrenchspacing #1% }% - \null + \null % reset spacefactor to 1000 } =20 % We *must* turn on hyphenation at `-' and `_' in @code. @@ -2762,6 +2773,7 @@ \ifx\temp\empty \else \space ({\unsepspaces \ignorespaces \temp \unskip})% \fi + \null % reset \spacefactor=3D1000 } =20 % @abbr for "Comput. J." and the like. @@ -2774,6 +2786,7 @@ \ifx\temp\empty \else \space ({\unsepspaces \ignorespaces \temp \unskip})% \fi + \null % reset \spacefactor=3D1000 } =20 % @asis just yields its argument. Used with @table, for example. @@ -2979,7 +2992,7 @@ {\tentt \global\dimen0 =3D 3em}% Width of the box. \dimen2 =3D .55pt % Thickness of rules % The text. (`r' is open on the right, `e' somewhat less so on the left.= ) -\setbox0 =3D \hbox{\kern-.75pt \reducedsf error\kern-1.5pt} +\setbox0 =3D \hbox{\kern-.75pt \reducedsf \putworderror\kern-1.5pt} % \setbox\errorbox=3D\hbox to \dimen0{\hfil \hsize =3D \dimen0 \advance\hsize by -5.8pt % Space to left+right. @@ -8103,7 +8116,7 @@ % space to prevent strange expansion errors.) \def\supereject{\par\penalty -20000\footnoteno =3D0 } =20 -% @footnotestyle is meaningful for info output only. +% @footnotestyle is meaningful for Info output only. \let\footnotestyle=3D\comment =20 {\catcode `\@=3D11 @@ -8166,6 +8179,8 @@ % expands into a box, it must come within the paragraph, lest it % provide a place where TeX can split the footnote. \footstrut + % + % Invoke rest of plain TeX footnote routine. \futurelet\next\fo@t } }%end \catcode `\@=3D11 =3D=3D=3D modified file 'lib/gettext.h' --- lib/gettext.h 2011-02-15 04:53:29 +0000 +++ lib/gettext.h 2011-10-27 19:51:26 +0000 @@ -185,7 +185,7 @@ #include =20 #define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS \ - (((__GNUC__ >=3D 3 || __GNUG__ >=3D 2) && !__STRICT_ANSI__) \ + (((__GNUC__ >=3D 3 || __GNUG__ >=3D 2) && !defined __STRICT_ANSI__) \ /* || __STDC_VERSION__ >=3D 199901L */ ) =20 #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS =3D=3D=3D modified file 'lib/gnulib.mk' --- lib/gnulib.mk 2011-09-26 21:30:18 +0000 +++ lib/gnulib.mk 2011-11-29 09:17:01 +0000 @@ -21,7 +21,7 @@ # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. -# Reproduce by: gnulib-tool --import --dir=3D. --lib=3Dlibgnu --source-b= ase=3Dlib --m4-base=3Dm4 --doc-base=3Ddoc --tests-base=3Dtests --aux-dir=3D= build-aux --avoid=3Dmsvc-inval --avoid=3Dmsvc-nothrow --avoid=3Dpathmax -= -avoid=3Draise --avoid=3Dthreadlib --makefile-name=3Dgnulib.mk --conditio= nal-dependencies --no-libtool --macro-prefix=3Dgl --no-vc-files alloca-op= t careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr= dup2 filemode getloadavg getopt-gnu ignore-value intprops lstat mktime p= thread_sigmask readlink socklen stdarg stdio strftime strtoimax strtoumax= symlink sys_stat +# Reproduce by: gnulib-tool --import --dir=3D. --lib=3Dlibgnu --source-b= ase=3Dlib --m4-base=3Dm4 --doc-base=3Ddoc --tests-base=3Dtests --aux-dir=3D= build-aux --avoid=3Dmsvc-inval --avoid=3Dmsvc-nothrow --avoid=3Dpathmax -= -avoid=3Draise --avoid=3Dthreadlib --makefile-name=3Dgnulib.mk --conditio= nal-dependencies --no-libtool --macro-prefix=3Dgl --no-vc-files alloca-op= t careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr= dup2 environ filemode getloadavg getopt-gnu ignore-value intprops lstat = mktime pthread_sigmask readlink socklen stdalign stdarg stdio strftime st= rtoimax strtoumax symlink sys_stat =20 =20 MOSTLYCLEANFILES +=3D core *.stackdump @@ -421,6 +421,29 @@ =20 ## end gnulib module stat =20 +## begin gnulib module stdalign + +BUILT_SOURCES +=3D $(STDALIGN_H) + +# We need the following in order to create when the system +# doesn't have one that works. +if GL_GENERATE_STDALIGN_H +stdalign.h: stdalign.in.h $(top_builddir)/config.status + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + cat $(srcdir)/stdalign.in.h; \ + } > $@-t && \ + mv $@-t $@ +else +stdalign.h: $(top_builddir)/config.status + rm -f $@ +endif +MOSTLYCLEANFILES +=3D stdalign.h stdalign.h-t + +EXTRA_DIST +=3D stdalign.in.h + +## end gnulib module stdalign + ## begin gnulib module stdarg =20 BUILT_SOURCES +=3D $(STDARG_H) @@ -710,7 +733,9 @@ -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \ -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \ -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \ + -e 's/@''GNULIB_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \ -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \ + -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \ -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \ -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \ -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \ @@ -736,7 +761,9 @@ -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \ -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \ + -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \ -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \ + -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \ -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ @@ -754,6 +781,7 @@ -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ + -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ @@ -1004,7 +1032,7 @@ -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \ -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \ -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \ - -e 's/@''GNULIB_UNISTD_H_GETOPT''@/$(GNULIB_UNISTD_H_GETOPT)/g' \ + -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_UNISTD_H_GETOPT)/= g' \ -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOC= KING)/g' \ -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g'= \ -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \ =3D=3D=3D modified file 'lib/md5.c' --- lib/md5.c 2011-02-19 07:28:29 +0000 +++ lib/md5.c 2011-10-17 01:22:19 +0000 @@ -24,7 +24,8 @@ =20 #include "md5.h" =20 -#include +#include +#include #include #include #include @@ -254,8 +255,7 @@ if (len >=3D 64) { #if !_STRING_ARCH_unaligned -# define alignof(type) offsetof (struct { char c; type x; }, x) -# define UNALIGNED_P(p) (((size_t) p) % alignof (uint32_t) !=3D 0) +# define UNALIGNED_P(p) ((uintptr_t) (p) % alignof (uint32_t) !=3D 0) if (UNALIGNED_P (buffer)) while (len > 64) { =3D=3D=3D modified file 'lib/sha1.c' --- lib/sha1.c 2011-05-24 08:12:52 +0000 +++ lib/sha1.c 2011-10-17 01:22:19 +0000 @@ -26,7 +26,8 @@ =20 #include "sha1.h" =20 -#include +#include +#include #include #include =20 @@ -241,8 +242,7 @@ if (len >=3D 64) { #if !_STRING_ARCH_unaligned -# define alignof(type) offsetof (struct { char c; type x; }, x) -# define UNALIGNED_P(p) (((size_t) p) % alignof (uint32_t) !=3D 0) +# define UNALIGNED_P(p) ((uintptr_t) (p) % alignof (uint32_t) !=3D 0) if (UNALIGNED_P (buffer)) while (len > 64) { =3D=3D=3D modified file 'lib/sha256.c' --- lib/sha256.c 2011-11-20 03:48:53 +0000 +++ lib/sha256.c 2011-11-29 09:17:01 +0000 @@ -24,7 +24,8 @@ =20 #include "sha256.h" =20 -#include +#include +#include #include #include =20 @@ -51,7 +52,7 @@ =20 /* Takes a pointer to a 256 bit block of data (eight 32 bit ints) and - initializes it to the start constants of the SHA256 algorithm. This + intializes it to the start constants of the SHA256 algorithm. This must be called before using hash in the call to sha256_hash */ void @@ -373,8 +374,7 @@ if (len >=3D 64) { #if !_STRING_ARCH_unaligned -# define alignof(type) offsetof (struct { char c; type x; }, x) -# define UNALIGNED_P(p) (((size_t) p) % alignof (uint32_t) !=3D 0) +# define UNALIGNED_P(p) ((uintptr_t) (p) % alignof (uint32_t) !=3D 0) if (UNALIGNED_P (buffer)) while (len > 64) { =3D=3D=3D modified file 'lib/sha512.c' --- lib/sha512.c 2011-11-20 03:48:53 +0000 +++ lib/sha512.c 2011-11-29 09:17:01 +0000 @@ -24,7 +24,8 @@ =20 #include "sha512.h" =20 -#include +#include +#include #include #include =20 @@ -58,7 +59,7 @@ =20 /* Takes a pointer to a 512 bit block of data (eight 64 bit ints) and - initializes it to the start constants of the SHA512 algorithm. This + intializes it to the start constants of the SHA512 algorithm. This must be called before using hash in the call to sha512_hash */ void @@ -381,8 +382,7 @@ if (len >=3D 128) { #if !_STRING_ARCH_unaligned -# define alignof(type) offsetof (struct { char c; type x; }, x) -# define UNALIGNED_P(p) (((size_t) p) % alignof (u64) !=3D 0) +# define UNALIGNED_P(p) ((uintptr_t) (p) % alignof (u64) !=3D 0) if (UNALIGNED_P (buffer)) while (len > 128) { =3D=3D=3D modified file 'lib/sigprocmask.c' --- lib/sigprocmask.c 2011-10-07 21:15:00 +0000 +++ lib/sigprocmask.c 2011-11-29 09:17:01 +0000 @@ -344,5 +344,6 @@ else if (handler !=3D SIG_IGN) (*handler) (SIGPIPE); } + return 0; } #endif =3D=3D=3D added file 'lib/stdalign.in.h' --- lib/stdalign.in.h 1970-01-01 00:00:00 +0000 +++ lib/stdalign.in.h 2011-11-07 05:56:04 +0000 @@ -0,0 +1,89 @@ +/* A substitute for ISO C 1x . + + Copyright 2011 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundatio= n, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *= / + +/* Written by Paul Eggert and Bruno Haible. */ + +#ifndef _GL_STDALIGN_H +#define _GL_STDALIGN_H + +/* ISO C1X for platforms that lack it. + + References: + ISO C1X + sections 6.5.3.4, 6.7.5, 7.15. + C++0X + section 18.10. */ + +/* alignof (TYPE), also known as _Alignof (TYPE), yields the alignment + requirement of a structure member (i.e., slot or field) that is of + type TYPE, as an integer constant expression. + + This differs from GCC's __alignof__ operator, which can yield a + better-performing alignment for an object of that type. For + example, on x86 with GCC, __alignof__ (double) and __alignof__ + (long long) are 8, whereas alignof (double) and alignof (long long) + are 4 unless the option '-malign-double' is used. + + The result cannot be used as a value for an 'enum' constant, if you + want to be portable to HP-UX 10.20 cc and AIX 3.2.5 xlc. */ +#include +#if defined __cplusplus + template struct __alignof_helper { char __a; __t __b; }; +# define _Alignof(type) offsetof (__alignof_helper, __b) +#else +# define _Alignof(type) offsetof (struct { char __a; type __b; }, __b) +#endif +#define alignof _Alignof +#define __alignof_is_defined 1 + +/* alignas (A), also known as _Alignas (A), aligns a variable or type + to the alignment A, where A is an integer constant expression. For + example: + + int alignas (8) foo; + struct s { int a; int alignas (8) bar; }; + + aligns the address of FOO and the offset of BAR to be multiples of 8. + + A should be a power of two that is at least the type's alignment + and at most the implementation's alignment limit. This limit is + 2**28 on typical GNUish hosts, and 2**13 on MSVC. To be portable + to MSVC through at least version 10.0, A should be an integer + constant, as MSVC does not support expressions such as 1 << 3. + To be portable to Sun C 5.11, do not align auto variables to + anything stricter than their default alignment. + + The following draft C1X requirements are not supported here: + + - If A is zero, alignas has no effect. + - alignas can be used multiple times; the strictest one wins. + - alignas (TYPE) is equivalent to alignas (alignof (TYPE)). + + */ + +#if __GNUC__ || __IBMC__ || __IBMCPP__ || 0x5110 <=3D __SUNPRO_C +# define _Alignas(a) __attribute__ ((__aligned__ (a))) +#elif 1300 <=3D _MSC_VER +# define _Alignas(a) __declspec (align (a)) +#endif +#ifdef _Alignas +# define alignas _Alignas +# define __alignas_is_defined 1 +#endif + +#endif /* _GL_STDALIGN_H */ =3D=3D=3D modified file 'lib/stdlib.in.h' --- lib/stdlib.in.h 2011-07-24 22:15:47 +0000 +++ lib/stdlib.in.h 2011-11-29 09:17:01 +0000 @@ -247,7 +247,7 @@ #elif defined GNULIB_POSIXCHECK # undef grantpt # if HAVE_RAW_DECL_GRANTPT -_GL_WARN_ON_USE (ptsname, "grantpt is not portable - " +_GL_WARN_ON_USE (grantpt, "grantpt is not portable - " "use gnulib module grantpt for portability"); # endif #endif @@ -423,6 +423,22 @@ # endif #endif =20 +#if @GNULIB_POSIX_OPENPT@ +/* Return an FD open to the master side of a pseudo-terminal. Flags sho= uld + include O_RDWR, and may also include O_NOCTTY. */ +# if !@HAVE_POSIX_OPENPT@ +_GL_FUNCDECL_SYS (posix_openpt, int, (int flags)); +# endif +_GL_CXXALIAS_SYS (posix_openpt, int, (int flags)); +_GL_CXXALIASWARN (posix_openpt); +#elif defined GNULIB_POSIXCHECK +# undef posix_openpt +# if HAVE_RAW_DECL_POSIX_OPENPT +_GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - " + "use gnulib module posix_openpt for portability"); +# endif +#endif + #if @GNULIB_PTSNAME@ /* Return the pathname of the pseudo-terminal slave associated with the master FD is open on, or NULL on errors. */ @@ -439,6 +455,32 @@ # endif #endif =20 +#if @GNULIB_PTSNAME_R@ +/* Set the pathname of the pseudo-terminal slave associated with + the master FD is open on and return 0, or set errno and return + non-zero on errors. */ +# if @REPLACE_PTSNAME_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef ptsname_r +# define ptsname_r rpl_ptsname_r +# endif +_GL_FUNCDECL_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); +_GL_CXXALIAS_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); +# else +# if !@HAVE_PTSNAME_R@ +_GL_FUNCDECL_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); +# endif +_GL_CXXALIAS_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); +# endif +_GL_CXXALIASWARN (ptsname_r); +#elif defined GNULIB_POSIXCHECK +# undef ptsname_r +# if HAVE_RAW_DECL_PTSNAME_R +_GL_WARN_ON_USE (ptsname_r, "ptsname_r is not portable - " + "use gnulib module ptsname_r for portability"); +# endif +#endif + #if @GNULIB_PUTENV@ # if @REPLACE_PUTENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) =3D=3D=3D modified file 'm4/dup2.m4' --- m4/dup2.m4 2011-09-26 21:30:18 +0000 +++ m4/dup2.m4 2011-11-29 09:17:01 +0000 @@ -1,4 +1,4 @@ -#serial 16 +#serial 17 dnl Copyright (C) 2002, 2005, 2007, 2009-2011 Free Software Foundation, = Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -67,7 +67,9 @@ m4_ifdef([gl_FUNC_FCHDIR], [ gl_TEST_FCHDIR if test $HAVE_FCHDIR =3D 0; then - REPLACE_DUP2=3D1 + if test $HAVE_DUP2 =3D 1; then + REPLACE_DUP2=3D1 + fi fi ]) ]) =3D=3D=3D added file 'm4/environ.m4' --- m4/environ.m4 1970-01-01 00:00:00 +0000 +++ m4/environ.m4 2011-11-29 09:17:01 +0000 @@ -0,0 +1,47 @@ +# environ.m4 serial 6 +dnl Copyright (C) 2001-2004, 2006-2011 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN_ONCE([gl_ENVIRON], +[ + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + dnl Persuade glibc to declare environ. + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + + AC_CHECK_HEADERS_ONCE([unistd.h]) + gt_CHECK_VAR_DECL( + [#if HAVE_UNISTD_H + #include + #endif + /* mingw, BeOS, Haiku declare environ in , not in . */ + #include + ], + [environ]) + if test $gt_cv_var_environ_declaration !=3D yes; then + HAVE_DECL_ENVIRON=3D0 + fi +]) + +# Check if a variable is properly declared. +# gt_CHECK_VAR_DECL(includes,variable) +AC_DEFUN([gt_CHECK_VAR_DECL], +[ + define([gt_cv_var], [gt_cv_var_]$2[_declaration]) + AC_MSG_CHECKING([if $2 is properly declared]) + AC_CACHE_VAL([gt_cv_var], [ + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[$1 + extern struct { int foo; } $2;]], + [[$2.foo =3D 1;]])], + [gt_cv_var=3Dno], + [gt_cv_var=3Dyes])]) + AC_MSG_RESULT([$gt_cv_var]) + if test $gt_cv_var =3D yes; then + AC_DEFINE([HAVE_]m4_translit($2, [a-z], [A-Z])[_DECL], 1, + [Define if you have the declaration of $2.]) + fi + undefine([gt_cv_var]) +]) =3D=3D=3D modified file 'm4/getopt.m4' --- m4/getopt.m4 2011-07-24 22:15:47 +0000 +++ m4/getopt.m4 2011-11-29 09:17:01 +0000 @@ -1,4 +1,4 @@ -# getopt.m4 serial 38 +# getopt.m4 serial 39 dnl Copyright (C) 2002-2006, 2008-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -25,8 +25,6 @@ if test $REPLACE_GETOPT =3D 1; then dnl Arrange for getopt.h to be created. gl_GETOPT_SUBSTITUTE_HEADER - dnl Arrange for unistd.h to include getopt.h. - GNULIB_UNISTD_H_GETOPT=3D1 fi ]) =20 =3D=3D=3D modified file 'm4/gl-comp.m4' --- m4/gl-comp.m4 2011-10-07 21:15:00 +0000 +++ m4/gl-comp.m4 2011-11-29 09:17:01 +0000 @@ -48,6 +48,7 @@ # Code from module dosname: # Code from module dtoastr: # Code from module dup2: + # Code from module environ: # Code from module extensions: AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) # Code from module filemode: @@ -76,6 +77,7 @@ # Code from module socklen: # Code from module ssize_t: # Code from module stat: + # Code from module stdalign: # Code from module stdarg: dnl Some compilers (e.g., AIX 5.3 cc) need to be in c99 mode dnl for the builtin va_copy to work. With Autoconf 2.60 or later, @@ -130,6 +132,8 @@ gl_PREREQ_DUP2 fi gl_UNISTD_MODULE_INDICATOR([dup2]) +gl_ENVIRON +gl_UNISTD_MODULE_INDICATOR([environ]) gl_FILEMODE gl_GETLOADAVG if test $HAVE_GETLOADAVG =3D 0; then @@ -142,14 +146,20 @@ AC_LIBOBJ([getopt]) AC_LIBOBJ([getopt1]) gl_PREREQ_GETOPT + dnl Arrange for unistd.h to include getopt.h. + GNULIB_GL_UNISTD_H_GETOPT=3D1 fi +AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT]) gl_MODULE_INDICATOR_FOR_TESTS([getopt-gnu]) gl_FUNC_GETOPT_POSIX if test $REPLACE_GETOPT =3D 1; then AC_LIBOBJ([getopt]) AC_LIBOBJ([getopt1]) gl_PREREQ_GETOPT + dnl Arrange for unistd.h to include getopt.h. + GNULIB_GL_UNISTD_H_GETOPT=3D1 fi +AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT]) AC_REQUIRE([AC_C_INLINE]) gl_INTTYPES_INCOMPLETE gl_FUNC_LSTAT @@ -180,6 +190,7 @@ gl_SIGNAL_H gl_TYPE_SOCKLEN_T gt_TYPE_SSIZE_T +gl_STDALIGN_H gl_STDARG_H AM_STDBOOL_H gl_STDDEF_H @@ -311,18 +322,18 @@ if test $HAVE_READLINK =3D 0 || test $REPLACE_READLINK =3D 1; then func_gl_gnulib_m4code_stat fi - if test $ac_cv_func_strtoimax =3D no; then - func_gl_gnulib_m4code_verify - fi if test $ac_cv_func_strtoimax =3D no && test $ac_cv_type_long_long_int= =3D yes; then func_gl_gnulib_m4code_strtoll fi - if test $ac_cv_func_strtoumax =3D no; then + if test $ac_cv_func_strtoimax =3D no; then func_gl_gnulib_m4code_verify fi if test $ac_cv_func_strtoumax =3D no && test $ac_cv_type_unsigned_long= _long_int =3D yes; then func_gl_gnulib_m4code_strtoull fi + if test $ac_cv_func_strtoumax =3D no; then + func_gl_gnulib_m4code_verify + fi m4_pattern_allow([^gl_GNULIB_ENABLED_]) AM_CONDITIONAL([gl_GNULIB_ENABLED_dosname], [$gl_gnulib_enabled_dosnam= e]) AM_CONDITIONAL([gl_GNULIB_ENABLED_be453cec5eecf5731a274f2de7f2db36], [= $gl_gnulib_enabled_be453cec5eecf5731a274f2de7f2db36]) @@ -513,6 +524,7 @@ lib/signal.in.h lib/sigprocmask.c lib/stat.c + lib/stdalign.in.h lib/stdarg.in.h lib/stdbool.in.h lib/stddef.in.h @@ -538,6 +550,7 @@ m4/alloca.m4 m4/c-strtod.m4 m4/dup2.m4 + m4/environ.m4 m4/extensions.m4 m4/filemode.m4 m4/getloadavg.m4 @@ -563,6 +576,7 @@ m4/ssize_t.m4 m4/st_dm_mode.m4 m4/stat.m4 + m4/stdalign.m4 m4/stdarg.m4 m4/stdbool.m4 m4/stddef_h.m4 =3D=3D=3D modified file 'm4/gnulib-common.m4' --- m4/gnulib-common.m4 2011-10-07 21:15:00 +0000 +++ m4/gnulib-common.m4 2011-11-29 09:17:01 +0000 @@ -18,7 +18,7 @@ # if (3 <=3D __GNUC__ || (__GNUC__ =3D=3D 2 && 8 <=3D __GNUC_MINOR__) \ || 0x5110 <=3D __SUNPRO_C) # define _Noreturn __attribute__ ((__noreturn__)) -# elif 1200 <=3D _MSC_VER +# elif defined _MSC_VER && 1200 <=3D _MSC_VER # define _Noreturn __declspec (noreturn) # else # define _Noreturn =3D=3D=3D modified file 'm4/include_next.m4' --- m4/include_next.m4 2011-09-26 21:30:18 +0000 +++ m4/include_next.m4 2011-10-27 19:51:26 +0000 @@ -1,4 +1,4 @@ -# include_next.m4 serial 22 +# include_next.m4 serial 23 dnl Copyright (C) 2006-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -219,12 +219,17 @@ gl_dirsep_regex=3D'[/\\]' ;; *) - gl_dirsep_regex=3D'/' + gl_dirsep_regex=3D'\/' ;; esac + dnl A sed expression that turns a string into a basic reg= ular + dnl expression, for use within "/.../". + gl_make_literal_regex_sed=3D's,[]$^\\.*/[],\\&,g' changequote([,]) - gl_absolute_header_sed=3D'\|'"${gl_dirsep_regex}"']m4_def= n([gl_HEADER_NAME])[|{ - s|.*"\(.*'"${gl_dirsep_regex}"']m4_defn([gl_HEADER_NA= ME])[\)".*|\1| + gl_header_literal_regex=3D`echo ']m4_defn([gl_HEADER_NAME= ])[' \ + | sed -e "$gl_make_literal_regex= _sed"` + gl_absolute_header_sed=3D"/${gl_dirsep_regex}${gl_header_= literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_rege= x}"'\)".*/\1/ changequote(,)dnl s|^/[^/]|//&| changequote([,])dnl =3D=3D=3D modified file 'm4/pthread_sigmask.m4' --- m4/pthread_sigmask.m4 2011-09-03 23:08:32 +0000 +++ m4/pthread_sigmask.m4 2011-10-17 01:22:19 +0000 @@ -1,4 +1,4 @@ -# pthread_sigmask.m4 serial 12 +# pthread_sigmask.m4 serial 13 dnl Copyright (C) 2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -6,6 +6,8 @@ =20 AC_DEFUN([gl_FUNC_PTHREAD_SIGMASK], [ + AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) + AC_CHECK_FUNCS_ONCE([pthread_sigmask]) LIB_PTHREAD_SIGMASK=3D =20 =3D=3D=3D added file 'm4/stdalign.m4' --- m4/stdalign.m4 1970-01-01 00:00:00 +0000 +++ m4/stdalign.m4 2011-10-27 19:39:30 +0000 @@ -0,0 +1,22 @@ +# Check for stdalign.h that conforms to C1x. + +dnl Copyright 2011 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# Prepare for substituting if it is not supported. + +AC_DEFUN([gl_STDALIGN_H], +[ + AC_CHECK_HEADERS_ONCE([stdalign.h]) + + if test $ac_cv_header_stdalign_h =3D yes; then + STDALIGN_H=3D'' + else + STDALIGN_H=3D'stdalign.h' + fi + + AC_SUBST([STDALIGN_H]) + AM_CONDITIONAL([GL_GENERATE_STDALIGN_H], [test -n "$STDALIGN_H"]) +]) =3D=3D=3D modified file 'm4/stdlib_h.m4' --- m4/stdlib_h.m4 2011-02-25 07:36:37 +0000 +++ m4/stdlib_h.m4 2011-11-29 09:17:01 +0000 @@ -1,4 +1,4 @@ -# stdlib_h.m4 serial 37 +# stdlib_h.m4 serial 39 dnl Copyright (C) 2007-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -19,10 +19,10 @@ #if HAVE_RANDOM_H # include #endif - ]], [_Exit atoll canonicalize_file_name getloadavg getsubopt grantpt= mkdtemp - mkostemp mkostemps mkstemp mkstemps ptsname random_r initstat_r sran= dom_r - setstate_r realpath rpmatch setenv strtod strtoll strtoull unlockpt - unsetenv]) + ]], [_Exit atoll canonicalize_file_name getloadavg getsubopt grantpt + initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps posix_openpt + ptsname ptsname_r random_r realpath rpmatch setenv setstate_r srando= m_r + strtod strtoll strtoull unlockpt unsetenv]) ]) =20 AC_DEFUN([gl_STDLIB_MODULE_INDICATOR], @@ -50,7 +50,9 @@ GNULIB_MKOSTEMPS=3D0; AC_SUBST([GNULIB_MKOSTEMPS]) GNULIB_MKSTEMP=3D0; AC_SUBST([GNULIB_MKSTEMP]) GNULIB_MKSTEMPS=3D0; AC_SUBST([GNULIB_MKSTEMPS]) + GNULIB_POSIX_OPENPT=3D0; AC_SUBST([GNULIB_POSIX_OPENPT]) GNULIB_PTSNAME=3D0; AC_SUBST([GNULIB_PTSNAME]) + GNULIB_PTSNAME_R=3D0; AC_SUBST([GNULIB_PTSNAME_R]) GNULIB_PUTENV=3D0; AC_SUBST([GNULIB_PUTENV]) GNULIB_RANDOM_R=3D0; AC_SUBST([GNULIB_RANDOM_R]) GNULIB_REALLOC_POSIX=3D0; AC_SUBST([GNULIB_REALLOC_POSIX]) @@ -76,7 +78,9 @@ HAVE_MKOSTEMPS=3D1; AC_SUBST([HAVE_MKOSTEMPS]) HAVE_MKSTEMP=3D1; AC_SUBST([HAVE_MKSTEMP]) HAVE_MKSTEMPS=3D1; AC_SUBST([HAVE_MKSTEMPS]) + HAVE_POSIX_OPENPT=3D1; AC_SUBST([HAVE_POSIX_OPENPT]) HAVE_PTSNAME=3D1; AC_SUBST([HAVE_PTSNAME]) + HAVE_PTSNAME_R=3D1; AC_SUBST([HAVE_PTSNAME_R]) HAVE_RANDOM_H=3D1; AC_SUBST([HAVE_RANDOM_H]) HAVE_RANDOM_R=3D1; AC_SUBST([HAVE_RANDOM_R]) HAVE_REALPATH=3D1; AC_SUBST([HAVE_REALPATH]) @@ -95,6 +99,7 @@ REPLACE_MALLOC=3D0; AC_SUBST([REPLACE_MALLOC]) REPLACE_MBTOWC=3D0; AC_SUBST([REPLACE_MBTOWC]) REPLACE_MKSTEMP=3D0; AC_SUBST([REPLACE_MKSTEMP]) + REPLACE_PTSNAME_R=3D0; AC_SUBST([REPLACE_PTSNAME_R]) REPLACE_PUTENV=3D0; AC_SUBST([REPLACE_PUTENV]) REPLACE_REALLOC=3D0; AC_SUBST([REPLACE_REALLOC]) REPLACE_REALPATH=3D0; AC_SUBST([REPLACE_REALPATH]) =3D=3D=3D modified file 'm4/unistd_h.m4' --- m4/unistd_h.m4 2011-09-26 21:30:18 +0000 +++ m4/unistd_h.m4 2011-11-29 09:17:01 +0000 @@ -1,4 +1,4 @@ -# unistd_h.m4 serial 61 +# unistd_h.m4 serial 62 dnl Copyright (C) 2006-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -98,7 +98,6 @@ GNULIB_SYMLINK=3D0; AC_SUBST([GNULIB_SYMLINK]) GNULIB_SYMLINKAT=3D0; AC_SUBST([GNULIB_SYMLINKAT]) GNULIB_TTYNAME_R=3D0; AC_SUBST([GNULIB_TTYNAME_R]) - GNULIB_UNISTD_H_GETOPT=3D0; AC_SUBST([GNULIB_UNISTD_H_GETOPT]) GNULIB_UNISTD_H_NONBLOCKING=3D0; AC_SUBST([GNULIB_UNISTD_H_NONBLOCKING= ]) GNULIB_UNISTD_H_SIGPIPE=3D0; AC_SUBST([GNULIB_UNISTD_H_SIGPIPE]) GNULIB_UNLINK=3D0; AC_SUBST([GNULIB_UNLINK]) =3D=3D=3D modified file 'msdos/ChangeLog' --- msdos/ChangeLog 2011-10-31 17:37:39 +0000 +++ msdos/ChangeLog 2011-11-08 06:35:37 +0000 @@ -1,3 +1,10 @@ +2011-11-08 Paul Eggert + + Use Gnulib stdalign module (Bug#9772, Bug#9960). + * sed2v2.inp (HAVE_ATTRIBUTE_ALIGNED): Remove edit. + * sedlibmk.inp (STDALIGN_H, @GL_GENERATE_STDALIGN_H_TRUE@) + (GL_GENERATE_STDALIGN_H_FALSE): New edits. + 2011-10-31 Eli Zaretskii =20 * sed3v2.inp (insrcdir): Comment out definition. =3D=3D=3D modified file 'msdos/sed2v2.inp' --- msdos/sed2v2.inp 2011-10-31 02:25:01 +0000 +++ msdos/sed2v2.inp 2011-11-01 05:03:56 +0000 @@ -35,7 +35,6 @@ /^#undef HAVE_FREXP *$/s/^.*$/#define HAVE_FREXP 1/ /^#undef HAVE_FMOD *$/s/^.*$/#define HAVE_FMOD 1/ /^#undef HAVE_RINT *$/s/^.*$/#define HAVE_RINT 1/ -/^#undef HAVE_ATTRIBUTE_ALIGNED *$/s/^.*$/#define HAVE_ATTRIBUTE_ALIGNED= 1/ /^#undef HAVE_C99_STRTOLD *$/s/^.*$/#define HAVE_C99_STRTOLD 1/ /^#undef HAVE_CBRT *$/s/^.*$/#define HAVE_CBRT 1/ /^#undef HAVE_DIFFTIME *$/s/^.*$/#define HAVE_DIFFTIME 1/ @@ -119,4 +118,3 @@ # might be defined in sys/config.h we include at the top of config.h. /^#undef BSTRING/s|#undef|# undef| /^#undef .*$/s|^.*$|/* & */| - =3D=3D=3D modified file 'msdos/sedlibmk.inp' --- msdos/sedlibmk.inp 2011-09-29 12:00:18 +0000 +++ msdos/sedlibmk.inp 2011-10-17 01:22:19 +0000 @@ -27,7 +27,7 @@ # otherwise edit them to zero: # # /^REPLACE_CALLOC *=3D/s/@REPLACE_CALLOC@/0/ -#=20 +# # . If the module is a header or adds headers, edit the corresponding # variable to either an empty value or to the name of the header. # Examples: @@ -547,6 +547,7 @@ /^SIZE_T_SUFFIX *=3D/s/@SIZE_T_SUFFIX@/u/ /^ALLOCA_H *=3D/s/@[^@\n]*@/alloca.h/ /^STDBOOL_H *=3D/s/@[^@\n]*@// +/^STDALIGN_H *=3D/s/@[^@\n]*@/stdalign.h/ /^STDARG_H *=3D/s/@[^@\n]*@// /^STDDEF_H *=3D/s/@[^@\n]*@// /^STDINT_H *=3D/s/@[^@\n]*@/stdint.h/ @@ -600,6 +601,8 @@ s/^@GL_GENERATE_ALLOCA_H_FALSE@/\#/ s/^@GL_GENERATE_STDBOOL_H_TRUE@/\#/ s/^@GL_GENERATE_STDBOOL_H_FALSE@// +s/^@GL_GENERATE_STDALIGN_H_TRUE@// +s/^@GL_GENERATE_STDALIGN_H_FALSE@/\#/ s/^@GL_GENERATE_STDARG_H_TRUE@/\#/ s/^@GL_GENERATE_STDARG_H_FALSE@/\#/ s/^@GL_GENERATE_STDDEF_H_TRUE@/\#/ =3D=3D=3D modified file 'nt/ChangeLog' --- nt/ChangeLog 2011-11-27 18:52:53 +0000 +++ nt/ChangeLog 2011-11-28 16:07:26 +0000 @@ -1,3 +1,8 @@ +2011-11-28 Paul Eggert + + Use Gnulib stdalign module (Bug#9772, Bug#9960). + * config.nt (HAVE_ATTRIBUTE_ALIGNED): Remove. + 2011-11-27 Fabrice Popineau (tiny chang= e) =20 * inc/stdint.h (uint32_t, uint64_t) [_WIN64]: New typedefs. =3D=3D=3D modified file 'nt/config.nt' --- nt/config.nt 2011-11-27 18:52:53 +0000 +++ nt/config.nt 2011-11-28 16:07:26 +0000 @@ -278,13 +278,6 @@ =20 /* Preprocessor macros needed for gnulib imports. */ =20 -/* Define to 1 if GCC-style __attribute__ ((__aligned__ (expr))) works. = */ -#ifdef __GNUC__ -#define HAVE_ATTRIBUTE_ALIGNED 1 -#else -#undef HAVE_ATTRIBUTE_ALIGNED -#endif - /* Define to 1 if strtold conforms to C99. */ #ifdef __GNUC__ #define HAVE_C99_STRTOLD 1 =3D=3D=3D modified file 'src/ChangeLog' --- src/ChangeLog 2011-11-28 08:20:58 +0000 +++ src/ChangeLog 2011-11-28 16:07:26 +0000 @@ -1,3 +1,14 @@ +2011-11-08 Paul Eggert + + Use Gnulib stdalign module (Bug#9772, Bug#9960). + * alloc.c (XMALLOC_BASE_ALIGNMENT, GC_LISP_OBJECT_ALIGNMENT) + (GC_POINTER_ALIGNMENT, pure_alloc): Simplify by using alignof. + (pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values. + * lisp.h: Include . + (DECL_ALIGN): Simplify by using alignas. + Port to MSVC, by using ALIGN_GCTYPEBITS. + (ALIGN_GCTYPEBITS): New macro. + 2011-11-28 Paul Eggert =20 Remove GCPRO-related macros that exist only to avoid shadowing locals. =3D=3D=3D modified file 'src/alloc.c' --- src/alloc.c 2011-11-20 03:07:02 +0000 +++ src/alloc.c 2011-11-28 16:07:26 +0000 @@ -507,12 +507,7 @@ hold a size_t value and (2) the header size is a multiple of the alignment that Emacs needs for C types and for USE_LSB_TAG. */ #define XMALLOC_BASE_ALIGNMENT \ - offsetof ( \ - struct { \ - union { long double d; intmax_t i; void *p; } u; \ - char c; \ - }, \ - c) + alignof (union { long double d; intmax_t i; void *p; }) #ifdef USE_LSB_TAG /* A common multiple of the positive integers A and B. Ideally this would be the least common multiple, but there's no way to do that @@ -4235,15 +4230,15 @@ } =20 =20 -/* Alignment of Lisp_Object and pointer values. Use offsetof, as it +/* Alignment of Lisp_Object and pointer values. Use alignof, as it sometimes returns a smaller alignment than GCC's __alignof__ and mark_memory might miss objects if __alignof__ were used. For example, on x86 with WIDE_EMACS_INT, __alignof__ (Lisp_Object) is 8 but GC_LISP_OBJECT_ALIGNMENT should be 4. */ #ifndef GC_LISP_OBJECT_ALIGNMENT -# define GC_LISP_OBJECT_ALIGNMENT offsetof (struct {char a; Lisp_Object = b;}, b) +# define GC_LISP_OBJECT_ALIGNMENT alignof (Lisp_Object) #endif -#define GC_POINTER_ALIGNMENT offsetof (struct {char a; void *b;}, b) +#define GC_POINTER_ALIGNMENT alignof (void *) =20 /* Mark Lisp objects referenced from the address range START+OFFSET..END or END+OFFSET..START. */ @@ -4662,17 +4657,11 @@ #ifdef USE_LSB_TAG size_t alignment =3D (1 << GCTYPEBITS); #else - size_t alignment =3D sizeof (EMACS_INT); + size_t alignment =3D alignof (EMACS_INT); =20 /* Give Lisp_Floats an extra alignment. */ if (type =3D=3D Lisp_Float) - { -#if defined __GNUC__ && __GNUC__ >=3D 2 - alignment =3D __alignof (struct Lisp_Float); -#else - alignment =3D sizeof (struct Lisp_Float); -#endif - } + alignment =3D alignof (struct Lisp_Float); #endif =20 again: =3D=3D=3D modified file 'src/lisp.h' --- src/lisp.h 2011-11-28 08:20:58 +0000 +++ src/lisp.h 2011-11-28 16:07:26 +0000 @@ -20,6 +20,7 @@ #ifndef EMACS_LISP_H #define EMACS_LISP_H =20 +#include #include #include #include @@ -163,27 +164,8 @@ /* First, try and define DECL_ALIGN(type,var) which declares a static variable VAR of type TYPE with the added requirement that it be TYPEBITS-aligned. */ - -#ifndef GCTYPEBITS -#define GCTYPEBITS 3 -#endif - -#ifndef NO_DECL_ALIGN -# ifndef DECL_ALIGN -# if HAVE_ATTRIBUTE_ALIGNED -# define DECL_ALIGN(type, var) \ - type __attribute__ ((__aligned__ (1 << GCTYPEBITS))) var -# elif defined(_MSC_VER) -# define ALIGN_GCTYPEBITS 8 -# if (1 << GCTYPEBITS) !=3D ALIGN_GCTYPEBITS -# error ALIGN_GCTYPEBITS is wrong! -# endif -# define DECL_ALIGN(type, var) \ - type __declspec(align(ALIGN_GCTYPEBITS)) var -# else - /* What directives do other compilers use? */ -# endif -# endif +#ifdef alignas +# define DECL_ALIGN(type, var) type alignas (ALIGN_GCTYPEBITS) var #endif =20 /* Let's USE_LSB_TAG on systems where we know malloc returns mult-of-8. = */ @@ -309,6 +291,14 @@ Lisp_Fwd_Kboard_Obj, /* Fwd to a Lisp_Object field of kboards. */ }; =20 +#ifndef GCTYPEBITS +#define GCTYPEBITS 3 +#define ALIGN_GCTYPEBITS 8 /* This must be an integer constant, for MSVC= . */ +#endif +#if 1 << GCTYPEBITS !=3D ALIGN_GCTYPEBITS +# error "ALIGN_GCTYPEBITS is wrong!" +#endif + /* These values are overridden by the m- file on some machines. */ #ifndef VALBITS #define VALBITS (BITS_PER_EMACS_INT - GCTYPEBITS)