>-----Original Message-----
>From: Thomas Dickey <[email protected]>
>Sent: November 16, 2025 10:39 AM
>To: [email protected]
>Cc: [email protected]; 'Ncurses Mailing List'
<[email protected]>
>Subject: Re: Contributions for HPE NonStop/Tandem
>
>On Sun, Nov 16, 2025 at 10:25:57AM -0500, [email protected] wrote:
>> Hi Thomas,
>>
>> I wonder what the best way would be to contribute changes to support
>> the HPE NonStop platform (formerly Tandem).
>>
>> The changes are all in the configure file relating to the intptr_t
>> definition. Prior to building ncurses, I run the following:
>>
>> sed "/#define intptr_t long/!{p;d};a #if defined (__TANDEM)" -i
>> configure sed "/#define intptr_t long/!{p;d};n;a # if ! defined
>> (__cplusplus)" -i configure sed "/#define intptr_t long/!{p;d};n;n;a #
>> define intptr_t long" -i configure sed "/#define intptr_t
>> long/!{p;d};n;n;n;a # endif" -i configure sed "/#define intptr_t
>> long/!{p;d};n;n;n;n;a #else" -i configure sed "/#define intptr_t
>> long/!{p;d};n;n;n;n;n;a # define intptr_t long" -i configure sed
>> "/#define intptr_t long/!{p;d};n;n;n;n;n;n;a #endif" -i configure sed
>> "/#define intptr_t long/d" -i configure
>
>That's changing this chunk
>
>       cat >>confdefs.h <<EOF
>       #define intptr_t long
>       EOF
>
>to something like
>
>       cat >>confdefs.h <<EOF
>       #if defined (__TANDEM)
>       # if ! defined (__cplusplus)
>       #  define intptr_t long
>       # endif
>       #else
>       # define intptr_t long
>       #endif
>       EOF
>
>But that would be used if there's something unexpected in the
compile-check:
>
>       #line 22993 "configure"
>       #include "confdefs.h"
>       $ac_includes_default
>       int
>       main (void)
>       {
>       if ((intptr_t *) 0)
>         return 0;
>       if (sizeof (intptr_t))
>         return 0;
>         ;
>         return 0;
>       }
>       _ACEOF
>       rm -f "conftest.$ac_objext"
>       if { (eval echo "$as_me:23008: \"$ac_compile\"") >&5
>
>or if the way it's used in the code doesn't have the #include's that were
needed in
>$ac_includes_default
>
>       ac_includes_default="\
>       #include <stdio.h>
>       #if HAVE_SYS_TYPES_H
>       # include <sys/types.h>
>       #endif
>       #if HAVE_SYS_STAT_H
>       # include <sys/stat.h>
>       #endif
>       #if STDC_HEADERS
>       # include <stdlib.h>
>       # include <stddef.h>
>       #else
>       # if HAVE_STDLIB_H
>       #  include <stdlib.h>
>       # endif
>       #endif
>       #if HAVE_STRING_H
>       # if !STDC_HEADERS && HAVE_MEMORY_H
>       #  include <memory.h>
>       # endif
>       # include <string.h>
>       #endif
>       #if HAVE_STRINGS_H
>       # include <strings.h>
>       #endif
>       #if HAVE_INTTYPES_H
>       # include <inttypes.h>
>       #else
>       # if HAVE_STDINT_H
>       #  include <stdint.h>
>       # endif
>       #endif
>       #if HAVE_UNISTD_H
>       # include <unistd.h>
>       #endif"
>
>So... what did I miss in the configure script (or C code)?
>
>> This has been required for a long time.

The issue is that intptr_t is different when building in c++ vs. standard C
on NonStop. There isn't anything I can do about that. It is the missed C++
wrapper that counts here.

What the code looks like, for NonStop is:

cat >>confdefs.h <<EOF
#if defined (__TANDEM)
# if ! defined (__cplusplus)
#  define intptr_t long
# endif
#else
# define intptr_t long
#endif
EOF

That inhibits intptr_t, which is already defined in C++ headers on the
platform but not by the c99 compiler when not in C++.

Randall


Reply via email to