]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix the MS-Windows build broken by 1995-02-25T20:57:45Z!rms@gnu.org.
authorEli Zaretskii <eliz@gnu.org>
Sun, 27 May 2012 12:11:23 +0000 (15:11 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sun, 27 May 2012 12:11:23 +0000 (15:11 +0300)
 lib/makefile.w32-in ($(BLD)/md5.$(O)):
 ($(BLD)/sha1.$(O)):
 ($(BLD)/sha256.$(O)):
 ($(BLD)/sha512.$(O)): Depend on $(EMACS_ROOT)/nt/inc/stdalign.h.
 Suggested by Christoph Scholtes <cschol2112@googlemail.com>.
 lib/getopt_.h: Regenerate.
 nt/inc/stdalign.h: New file.

Fixes: debbugs:11527
ChangeLog
lib/getopt_.h
lib/makefile.w32-in
nt/ChangeLog
nt/inc/stdalign.h [new file with mode: 0644]

index 58d0538124415dae38aa7b77ad5b7d7ff7534564..c45b889bb872a936b6630cc49ab5df9346d4d685 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2012-05-27  Eli Zaretskii  <eliz@gnu.org>
+
+       * lib/makefile.w32-in ($(BLD)/md5.$(O)): 
+       ($(BLD)/sha1.$(O)): 
+       ($(BLD)/sha256.$(O)): 
+       ($(BLD)/sha512.$(O)): Depend on $(EMACS_ROOT)/nt/inc/stdalign.h.
+       Suggested by Christoph Scholtes <cschol2112@googlemail.com>.
+
+       * lib/getopt_.h: Regenerate.
+
 2012-05-27  Paul Eggert  <eggert@cs.ucla.edu>
 
        Assume gnulib does largefile.
index e0923962b4f30b29e8cd96794b4651c3d0105b72..d69f57b9cf756e6ca22357d55de3aa8b60afe968 100644 (file)
-/* Declarations for getopt.\r
-   Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2011 Free Software\r
-   Foundation, Inc.\r
-   This file is part of the GNU C Library.\r
-\r
-   This program is free software: you can redistribute it and/or modify\r
-   it under the terms of the GNU General Public License as published by\r
-   the Free Software Foundation; either version 3 of the License, or\r
-   (at your option) any later version.\r
-\r
-   This program is distributed in the hope that it will be useful,\r
-   but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-   GNU General Public License for more details.\r
-\r
-   You should have received a copy of the GNU General Public License\r
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */\r
-\r
-#ifndef _GL_GETOPT_H\r
-\r
-#if __GNUC__ >= 3\r
-#pragma GCC system_header\r
-#endif\r
-\r
-\r
-/* The include_next requires a split double-inclusion guard.  We must\r
-   also inform the replacement unistd.h to not recursively use\r
-   <getopt.h>; our definitions will be present soon enough.  */\r
-#if HAVE_GETOPT_H\r
-# define _GL_SYSTEM_GETOPT\r
-# ifndef __GNUC__\r
-# include <next_getopt.h>\r
-# else\r
-# include_next <getopt.h>\r
-# endif\r
-# undef _GL_SYSTEM_GETOPT\r
-#endif\r
-\r
-#ifndef _GL_GETOPT_H\r
-\r
-#ifndef __need_getopt\r
-# define _GL_GETOPT_H 1\r
-#endif\r
-\r
-/* Standalone applications should #define __GETOPT_PREFIX to an\r
-   identifier that prefixes the external functions and variables\r
-   defined in this header.  When this happens, include the\r
-   headers that might declare getopt so that they will not cause\r
-   confusion if included after this file (if the system had <getopt.h>,\r
-   we have already included it).  Then systematically rename\r
-   identifiers so that they do not collide with the system functions\r
-   and variables.  Renaming avoids problems with some compilers and\r
-   linkers.  */\r
-#if defined __GETOPT_PREFIX && !defined __need_getopt\r
-# if !HAVE_GETOPT_H\r
-#  include <stdlib.h>\r
-#  include <stdio.h>\r
-#  include <unistd.h>\r
-# endif\r
-# undef __need_getopt\r
-# undef getopt\r
-# undef getopt_long\r
-# undef getopt_long_only\r
-# undef optarg\r
-# undef opterr\r
-# undef optind\r
-# undef optopt\r
-# undef option\r
-# define __GETOPT_CONCAT(x, y) x ## y\r
-# define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y)\r
-# define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y)\r
-# define getopt __GETOPT_ID (getopt)\r
-# define getopt_long __GETOPT_ID (getopt_long)\r
-# define getopt_long_only __GETOPT_ID (getopt_long_only)\r
-# define optarg __GETOPT_ID (optarg)\r
-# define opterr __GETOPT_ID (opterr)\r
-# define optind __GETOPT_ID (optind)\r
-# define optopt __GETOPT_ID (optopt)\r
-# define option __GETOPT_ID (option)\r
-# define _getopt_internal __GETOPT_ID (getopt_internal)\r
-#endif\r
-\r
-/* Standalone applications get correct prototypes for getopt_long and\r
-   getopt_long_only; they declare "char **argv".  libc uses prototypes\r
-   with "char *const *argv" that are incorrect because getopt_long and\r
-   getopt_long_only can permute argv; this is required for backward\r
-   compatibility (e.g., for LSB 2.0.1).\r
-\r
-   This used to be `#if defined __GETOPT_PREFIX && !defined __need_getopt',\r
-   but it caused redefinition warnings if both unistd.h and getopt.h were\r
-   included, since unistd.h includes getopt.h having previously defined\r
-   __need_getopt.\r
-\r
-   The only place where __getopt_argv_const is used is in definitions\r
-   of getopt_long and getopt_long_only below, but these are visible\r
-   only if __need_getopt is not defined, so it is quite safe to rewrite\r
-   the conditional as follows:\r
-*/\r
-#if !defined __need_getopt\r
-# if defined __GETOPT_PREFIX\r
-#  define __getopt_argv_const /* empty */\r
-# else\r
-#  define __getopt_argv_const const\r
-# endif\r
-#endif\r
-\r
-/* If __GNU_LIBRARY__ is not already defined, either we are being used\r
-   standalone, or this is the first header included in the source file.\r
-   If we are being used with glibc, we need to include <features.h>, but\r
-   that does not exist if we are standalone.  So: if __GNU_LIBRARY__ is\r
-   not defined, include <ctype.h>, which will pull in <features.h> for us\r
-   if it's from glibc.  (Why ctype.h?  It's guaranteed to exist and it\r
-   doesn't flood the namespace with stuff the way some other headers do.)  */\r
-#if !defined __GNU_LIBRARY__\r
-# include <ctype.h>\r
-#endif\r
-\r
-#ifndef __THROW\r
-# ifndef __GNUC_PREREQ\r
-#  define __GNUC_PREREQ(maj, min) (0)\r
-# endif\r
-# if defined __cplusplus && __GNUC_PREREQ (2,8)\r
-#  define __THROW       throw ()\r
-# else\r
-#  define __THROW\r
-# endif\r
-#endif\r
-\r
-/* The definition of _GL_ARG_NONNULL is copied here.  */\r
-/* A C macro for declaring that specific arguments must not be NULL.\r
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.\r
-\r
-   This program is free software: you can redistribute it and/or modify it\r
-   under the terms of the GNU General Public License as published\r
-   by the Free Software Foundation; either version 3 of the License, or\r
-   (at your option) any later version.\r
-\r
-   This program is distributed in the hope that it will be useful,\r
-   but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
-   General Public License for more details.\r
-\r
-   You should have received a copy of the GNU General Public License\r
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */\r
-\r
-/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools\r
-   that the values passed as arguments n, ..., m must be non-NULL pointers.\r
-   n = 1 stands for the first argument, n = 2 for the second argument etc.  */\r
-#ifndef _GL_ARG_NONNULL\r
-# if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3\r
-#  define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))\r
-# else\r
-#  define _GL_ARG_NONNULL(params)\r
-# endif\r
-#endif\r
-\r
-#ifdef __cplusplus\r
-extern "C" {\r
-#endif\r
-\r
-/* For communication from `getopt' to the caller.\r
-   When `getopt' finds an option that takes an argument,\r
-   the argument value is returned here.\r
-   Also, when `ordering' is RETURN_IN_ORDER,\r
-   each non-option ARGV-element is returned here.  */\r
-\r
-extern char *optarg;\r
-\r
-/* Index in ARGV of the next element to be scanned.\r
-   This is used for communication to and from the caller\r
-   and for communication between successive calls to `getopt'.\r
-\r
-   On entry to `getopt', zero means this is the first call; initialize.\r
-\r
-   When `getopt' returns -1, this is the index of the first of the\r
-   non-option elements that the caller should itself scan.\r
-\r
-   Otherwise, `optind' communicates from one call to the next\r
-   how much of ARGV has been scanned so far.  */\r
-\r
-extern int optind;\r
-\r
-/* Callers store zero here to inhibit the error message `getopt' prints\r
-   for unrecognized options.  */\r
-\r
-extern int opterr;\r
-\r
-/* Set to an option character which was unrecognized.  */\r
-\r
-extern int optopt;\r
-\r
-#ifndef __need_getopt\r
-/* Describe the long-named options requested by the application.\r
-   The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector\r
-   of `struct option' terminated by an element containing a name which is\r
-   zero.\r
-\r
-   The field `has_arg' is:\r
-   no_argument          (or 0) if the option does not take an argument,\r
-   required_argument    (or 1) if the option requires an argument,\r
-   optional_argument    (or 2) if the option takes an optional argument.\r
-\r
-   If the field `flag' is not NULL, it points to a variable that is set\r
-   to the value given in the field `val' when the option is found, but\r
-   left unchanged if the option is not found.\r
-\r
-   To have a long-named option do something other than set an `int' to\r
-   a compiled-in constant, such as set a value from `optarg', set the\r
-   option's `flag' field to zero and its `val' field to a nonzero\r
-   value (the equivalent single-letter option character, if there is\r
-   one).  For long options that have a zero `flag' field, `getopt'\r
-   returns the contents of the `val' field.  */\r
-\r
-# if !GNULIB_defined_struct_option\r
-struct option\r
-{\r
-  const char *name;\r
-  /* has_arg can't be an enum because some compilers complain about\r
-     type mismatches in all the code that assumes it is an int.  */\r
-  int has_arg;\r
-  int *flag;\r
-  int val;\r
-};\r
-#  define GNULIB_defined_struct_option 1\r
-# endif\r
-\r
-/* Names for the values of the `has_arg' field of `struct option'.  */\r
-\r
-# define no_argument            0\r
-# define required_argument      1\r
-# define optional_argument      2\r
-#endif  /* need getopt */\r
-\r
-\r
-/* Get definitions and prototypes for functions to process the\r
-   arguments in ARGV (ARGC of them, minus the program name) for\r
-   options given in OPTS.\r
-\r
-   Return the option character from OPTS just read.  Return -1 when\r
-   there are no more options.  For unrecognized options, or options\r
-   missing arguments, `optopt' is set to the option letter, and '?' is\r
-   returned.\r
-\r
-   The OPTS string is a list of characters which are recognized option\r
-   letters, optionally followed by colons, specifying that that letter\r
-   takes an argument, to be placed in `optarg'.\r
-\r
-   If a letter in OPTS is followed by two colons, its argument is\r
-   optional.  This behavior is specific to the GNU `getopt'.\r
-\r
-   The argument `--' causes premature termination of argument\r
-   scanning, explicitly telling `getopt' that there are no more\r
-   options.\r
-\r
-   If OPTS begins with `-', then non-option arguments are treated as\r
-   arguments to the option '\1'.  This behavior is specific to the GNU\r
-   `getopt'.  If OPTS begins with `+', or POSIXLY_CORRECT is set in\r
-   the environment, then do not permute arguments.  */\r
-\r
-extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)\r
-       __THROW _GL_ARG_NONNULL ((2, 3));\r
-\r
-#ifndef __need_getopt\r
-extern int getopt_long (int ___argc, char *__getopt_argv_const *___argv,\r
-                        const char *__shortopts,\r
-                        const struct option *__longopts, int *__longind)\r
-       __THROW _GL_ARG_NONNULL ((2, 3));\r
-extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv,\r
-                             const char *__shortopts,\r
-                             const struct option *__longopts, int *__longind)\r
-       __THROW _GL_ARG_NONNULL ((2, 3));\r
-\r
-#endif\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-\r
-/* Make sure we later can get all the definitions and declarations.  */\r
-#undef __need_getopt\r
-\r
-#endif /* _GL_GETOPT_H */\r
-#endif /* _GL_GETOPT_H */\r
+/* Declarations for getopt.
+   Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2012 Free Software
+   Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   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 of the License, 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, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _GL_GETOPT_H
+
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+
+/* The include_next requires a split double-inclusion guard.  We must
+   also inform the replacement unistd.h to not recursively use
+   <getopt.h>; our definitions will be present soon enough.  */
+#if HAVE_GETOPT_H
+# define _GL_SYSTEM_GETOPT
+# ifndef __GNUC__
+# include <next_getopt.h>
+# else
+# include_next <getopt.h>
+# endif
+# undef _GL_SYSTEM_GETOPT
+#endif
+
+#ifndef _GL_GETOPT_H
+
+#ifndef __need_getopt
+# define _GL_GETOPT_H 1
+#endif
+
+/* Standalone applications should #define __GETOPT_PREFIX to an
+   identifier that prefixes the external functions and variables
+   defined in this header.  When this happens, include the
+   headers that might declare getopt so that they will not cause
+   confusion if included after this file (if the system had <getopt.h>,
+   we have already included it).  Then systematically rename
+   identifiers so that they do not collide with the system functions
+   and variables.  Renaming avoids problems with some compilers and
+   linkers.  */
+#if defined __GETOPT_PREFIX && !defined __need_getopt
+# if !HAVE_GETOPT_H
+#  include <stdlib.h>
+#  include <stdio.h>
+#  include <unistd.h>
+# endif
+# undef __need_getopt
+# undef getopt
+# undef getopt_long
+# undef getopt_long_only
+# undef optarg
+# undef opterr
+# undef optind
+# undef optopt
+# undef option
+# define __GETOPT_CONCAT(x, y) x ## y
+# define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y)
+# define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y)
+# define getopt __GETOPT_ID (getopt)
+# define getopt_long __GETOPT_ID (getopt_long)
+# define getopt_long_only __GETOPT_ID (getopt_long_only)
+# define optarg __GETOPT_ID (optarg)
+# define opterr __GETOPT_ID (opterr)
+# define optind __GETOPT_ID (optind)
+# define optopt __GETOPT_ID (optopt)
+# define option __GETOPT_ID (option)
+# define _getopt_internal __GETOPT_ID (getopt_internal)
+#endif
+
+/* Standalone applications get correct prototypes for getopt_long and
+   getopt_long_only; they declare "char **argv".  libc uses prototypes
+   with "char *const *argv" that are incorrect because getopt_long and
+   getopt_long_only can permute argv; this is required for backward
+   compatibility (e.g., for LSB 2.0.1).
+
+   This used to be '#if defined __GETOPT_PREFIX && !defined __need_getopt',
+   but it caused redefinition warnings if both unistd.h and getopt.h were
+   included, since unistd.h includes getopt.h having previously defined
+   __need_getopt.
+
+   The only place where __getopt_argv_const is used is in definitions
+   of getopt_long and getopt_long_only below, but these are visible
+   only if __need_getopt is not defined, so it is quite safe to rewrite
+   the conditional as follows:
+*/
+#if !defined __need_getopt
+# if defined __GETOPT_PREFIX
+#  define __getopt_argv_const /* empty */
+# else
+#  define __getopt_argv_const const
+# endif
+#endif
+
+/* If __GNU_LIBRARY__ is not already defined, either we are being used
+   standalone, or this is the first header included in the source file.
+   If we are being used with glibc, we need to include <features.h>, but
+   that does not exist if we are standalone.  So: if __GNU_LIBRARY__ is
+   not defined, include <ctype.h>, which will pull in <features.h> for us
+   if it's from glibc.  (Why ctype.h?  It's guaranteed to exist and it
+   doesn't flood the namespace with stuff the way some other headers do.)  */
+#if !defined __GNU_LIBRARY__
+# include <ctype.h>
+#endif
+
+#ifndef __THROW
+# ifndef __GNUC_PREREQ
+#  define __GNUC_PREREQ(maj, min) (0)
+# endif
+# if defined __cplusplus && __GNUC_PREREQ (2,8)
+#  define __THROW       throw ()
+# else
+#  define __THROW
+# endif
+#endif
+
+/* The definition of _GL_ARG_NONNULL is copied here.  */
+/* A C macro for declaring that specific arguments must not be NULL.
+   Copyright (C) 2009-2012 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 of the License, 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, see <http://www.gnu.org/licenses/>.  */
+
+/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
+   that the values passed as arguments n, ..., m must be non-NULL pointers.
+   n = 1 stands for the first argument, n = 2 for the second argument etc.  */
+#ifndef _GL_ARG_NONNULL
+# if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3
+#  define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
+# else
+#  define _GL_ARG_NONNULL(params)
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* For communication from 'getopt' to the caller.
+   When 'getopt' finds an option that takes an argument,
+   the argument value is returned here.
+   Also, when 'ordering' is RETURN_IN_ORDER,
+   each non-option ARGV-element is returned here.  */
+
+extern char *optarg;
+
+/* Index in ARGV of the next element to be scanned.
+   This is used for communication to and from the caller
+   and for communication between successive calls to 'getopt'.
+
+   On entry to 'getopt', zero means this is the first call; initialize.
+
+   When 'getopt' returns -1, this is the index of the first of the
+   non-option elements that the caller should itself scan.
+
+   Otherwise, 'optind' communicates from one call to the next
+   how much of ARGV has been scanned so far.  */
+
+extern int optind;
+
+/* Callers store zero here to inhibit the error message 'getopt' prints
+   for unrecognized options.  */
+
+extern int opterr;
+
+/* Set to an option character which was unrecognized.  */
+
+extern int optopt;
+
+#ifndef __need_getopt
+/* Describe the long-named options requested by the application.
+   The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
+   of 'struct option' terminated by an element containing a name which is
+   zero.
+
+   The field 'has_arg' is:
+   no_argument          (or 0) if the option does not take an argument,
+   required_argument    (or 1) if the option requires an argument,
+   optional_argument    (or 2) if the option takes an optional argument.
+
+   If the field 'flag' is not NULL, it points to a variable that is set
+   to the value given in the field 'val' when the option is found, but
+   left unchanged if the option is not found.
+
+   To have a long-named option do something other than set an 'int' to
+   a compiled-in constant, such as set a value from 'optarg', set the
+   option's 'flag' field to zero and its 'val' field to a nonzero
+   value (the equivalent single-letter option character, if there is
+   one).  For long options that have a zero 'flag' field, 'getopt'
+   returns the contents of the 'val' field.  */
+
+# if !GNULIB_defined_struct_option
+struct option
+{
+  const char *name;
+  /* has_arg can't be an enum because some compilers complain about
+     type mismatches in all the code that assumes it is an int.  */
+  int has_arg;
+  int *flag;
+  int val;
+};
+#  define GNULIB_defined_struct_option 1
+# endif
+
+/* Names for the values of the 'has_arg' field of 'struct option'.  */
+
+# define no_argument            0
+# define required_argument      1
+# define optional_argument      2
+#endif  /* need getopt */
+
+
+/* Get definitions and prototypes for functions to process the
+   arguments in ARGV (ARGC of them, minus the program name) for
+   options given in OPTS.
+
+   Return the option character from OPTS just read.  Return -1 when
+   there are no more options.  For unrecognized options, or options
+   missing arguments, 'optopt' is set to the option letter, and '?' is
+   returned.
+
+   The OPTS string is a list of characters which are recognized option
+   letters, optionally followed by colons, specifying that that letter
+   takes an argument, to be placed in 'optarg'.
+
+   If a letter in OPTS is followed by two colons, its argument is
+   optional.  This behavior is specific to the GNU 'getopt'.
+
+   The argument '--' causes premature termination of argument
+   scanning, explicitly telling 'getopt' that there are no more
+   options.
+
+   If OPTS begins with '-', then non-option arguments are treated as
+   arguments to the option '\1'.  This behavior is specific to the GNU
+   'getopt'.  If OPTS begins with '+', or POSIXLY_CORRECT is set in
+   the environment, then do not permute arguments.  */
+
+extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
+       __THROW _GL_ARG_NONNULL ((2, 3));
+
+#ifndef __need_getopt
+extern int getopt_long (int ___argc, char *__getopt_argv_const *___argv,
+                        const char *__shortopts,
+                        const struct option *__longopts, int *__longind)
+       __THROW _GL_ARG_NONNULL ((2, 3));
+extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv,
+                             const char *__shortopts,
+                             const struct option *__longopts, int *__longind)
+       __THROW _GL_ARG_NONNULL ((2, 3));
+
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+/* Make sure we later can get all the definitions and declarations.  */
+#undef __need_getopt
+
+#endif /* _GL_GETOPT_H */
+#endif /* _GL_GETOPT_H */
index 8c27f139e765927cc08cc96e1a4df569a776d8b3..62808f73a746a1903162d49e3a2e0608cd8c6504 100644 (file)
@@ -105,6 +105,7 @@ $(BLD)/md5.$(O) : \
        $(SRC)/md5.c \
        $(SRC)/md5.h \
        $(EMACS_ROOT)/nt/inc/stdint.h \
+       $(EMACS_ROOT)/nt/inc/stdalign.h \
        $(EMACS_ROOT)/nt/inc/sys/stat.h \
        $(EMACS_ROOT)/src/s/ms-w32.h \
        $(EMACS_ROOT)/src/config.h
@@ -113,6 +114,7 @@ $(BLD)/sha1.$(O) : \
        $(SRC)/sha1.c \
        $(SRC)/sha1.h \
        $(EMACS_ROOT)/nt/inc/stdint.h \
+       $(EMACS_ROOT)/nt/inc/stdalign.h \
        $(EMACS_ROOT)/nt/inc/sys/stat.h \
        $(EMACS_ROOT)/src/s/ms-w32.h \
        $(EMACS_ROOT)/src/config.h
@@ -121,6 +123,7 @@ $(BLD)/sha256.$(O) : \
        $(SRC)/sha256.c \
        $(SRC)/sha256.h \
        $(EMACS_ROOT)/nt/inc/stdint.h \
+       $(EMACS_ROOT)/nt/inc/stdalign.h \
        $(EMACS_ROOT)/nt/inc/sys/stat.h \
        $(EMACS_ROOT)/src/s/ms-w32.h \
        $(EMACS_ROOT)/src/config.h
@@ -129,6 +132,7 @@ $(BLD)/sha512.$(O) : \
        $(SRC)/sha512.c \
        $(SRC)/sha512.h \
        $(EMACS_ROOT)/nt/inc/stdint.h \
+       $(EMACS_ROOT)/nt/inc/stdalign.h \
        $(EMACS_ROOT)/nt/inc/sys/stat.h \
        $(EMACS_ROOT)/src/s/ms-w32.h \
        $(EMACS_ROOT)/src/config.h
index 7a825ecb29fb32f977c728665951fe1569a56d3b..084e5806107959be6447df66f52fb14fc1954901 100644 (file)
@@ -1,5 +1,7 @@
 2012-05-27  Eli Zaretskii  <eliz@gnu.org>
 
+       * inc/stdalign.h: New file.
+
        * configure.bat: Ensure a space between %var% expansion and
        redirection symbol '>', which breaks when %var% ends in a digit,
        such as 1.
diff --git a/nt/inc/stdalign.h b/nt/inc/stdalign.h
new file mode 100644 (file)
index 0000000..2ff7a43
--- /dev/null
@@ -0,0 +1,16 @@
+#ifndef _NT_STDALIGN_H_
+#define _NT_STDALIGN_H_
+
+/* This header has the necessary stuff from lib/stdalign.in.h, but
+   avoids the need to have Sed at build time.  */
+
+#include <stddef.h>
+#if defined __cplusplus
+   template <class __t> struct __alignof_helper { char __a; __t __b; };
+# define _Alignof(type) offsetof (__alignof_helper<type>, __b)
+#else
+# define _Alignof(type) offsetof (struct { char __a; type __b; }, __b)
+#endif
+#define alignof _Alignof
+
+#endif /* _NT_STDALIGN_H_ */