# [PATCH 03/14] msvc: Fix build by adding missing INTMAX_MAX define

2 messages from 2010-12-04 to 2010-12-09. Participants: Ramsay Jones, Erik Faye-Lund.
Thread: https://gitlist.dev/t/25954

## Ramsay Jones, 2010-12-04 18:57

Subject: [PATCH 03/14] msvc: Fix build by adding missing INTMAX_MAX define
Message-ID: <4CFA8F1A.3040402@ramsay1.demon.co.uk>
URL: https://gitlist.dev/e/4CFA8F1A.3040402%40ramsay1.demon.co.uk

```

Commit c03c831 (do not depend on signed integer overflow,
05-10-2010) provokes an msvc build failure. The cause of the
failure is a missing definition of the INTMAX_MAX constant,
used in the new maximum_signed_value_of_type(a) macro, which
would normally be defined in the C99 <stdint.h> header file.

In order the fix the compilation error, we add an appropriate
definition of the INTMAX_MAX constant, along with INTMAX_MIN
and UINTMAX_MAX, to an msvc compat header file.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
---
 compat/vcbuild/include/unistd.h |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/compat/vcbuild/include/unistd.h b/compat/vcbuild/include/unistd.h
index 2a4f276..b14fcf9 100644
--- a/compat/vcbuild/include/unistd.h
+++ b/compat/vcbuild/include/unistd.h
@@ -45,6 +45,10 @@ typedef unsigned long long uintmax_t;
 
 typedef int64_t off64_t;
 
+#define INTMAX_MIN  _I64_MIN
+#define INTMAX_MAX  _I64_MAX
+#define UINTMAX_MAX _UI64_MAX
+
 #define STDOUT_FILENO 1
 #define STDERR_FILENO 2
 
-- 
1.7.3

```

## Erik Faye-Lund, 2010-12-09 19:19

Subject: Re: [PATCH 03/14] msvc: Fix build by adding missing INTMAX_MAX define
Message-ID: <AANLkTi=_9kT9taLF97cngJ81sBCN9RDkzpk8uN-NW6tG@mail.gmail.com>
URL: https://gitlist.dev/e/AANLkTi%3D_9kT9taLF97cngJ81sBCN9RDkzpk8uN-NW6tG%40mail.gmail.com
In-Reply-To: <4CFA8F1A.3040402@ramsay1.demon.co.uk>

```
On Sat, Dec 4, 2010 at 7:57 PM, Ramsay Jones <ramsay@ramsay1.demon.co.uk> wrote:
>
> Commit c03c831 (do not depend on signed integer overflow,
> 05-10-2010) provokes an msvc build failure. The cause of the
> failure is a missing definition of the INTMAX_MAX constant,
> used in the new maximum_signed_value_of_type(a) macro, which
> would normally be defined in the C99 <stdint.h> header file.
>
> In order the fix the compilation error, we add an appropriate
> definition of the INTMAX_MAX constant, along with INTMAX_MIN
> and UINTMAX_MAX, to an msvc compat header file.
>
> Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
> ---
>  compat/vcbuild/include/unistd.h |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/compat/vcbuild/include/unistd.h b/compat/vcbuild/include/unistd.h
> index 2a4f276..b14fcf9 100644
> --- a/compat/vcbuild/include/unistd.h
> +++ b/compat/vcbuild/include/unistd.h
> @@ -45,6 +45,10 @@ typedef unsigned long long uintmax_t;
>
>  typedef int64_t off64_t;
>
> +#define INTMAX_MIN  _I64_MIN
> +#define INTMAX_MAX  _I64_MAX
> +#define UINTMAX_MAX _UI64_MAX
> +
>  #define STDOUT_FILENO 1
>  #define STDERR_FILENO 2
>

Looks good. You only really need to define INTMAX_MAX, but INTMAX_MIN
and UINTMAX_MAX are nice additions for future code. I guess you
*could* have added UINTMAX_MIN for completeness, but I doubt anyone
will ever bother to use it, as it's always 0. So for what it's worth:

Acked-by: Erik Faye-Lund <kusmabite@gmail.com>

In case someone is curious of the definitions; they are documented at
http://msdn.microsoft.com/en-us/library/k15zsh48.aspx

```
