* [Patch v5 1/4] transport-helper: use xread instead of read
2019-01-03 21:03 [Patch v5 0/4] HPE NonStop Port Commits randall.s.becker
@ 2019-01-03 21:03 ` randall.s.becker
2019-01-03 21:03 ` [Patch v5 2/4] config.mak.uname: support for modern HPE NonStop config randall.s.becker
` (2 subsequent siblings)
3 siblings, 0 replies; 11+ messages in thread
From: randall.s.becker @ 2019-01-03 21:03 UTC (permalink / raw)
To: git; +Cc: Randall S. Becker, Randall S . Becker
From: "Randall S. Becker" <randall.becker@nexbridge.ca>
This fix was needed on HPE NonStop NSE and NSX where SSIZE_MAX is less than
BUFFERSIZE resulting in EINVAL. The call to read in transport-helper.c
was the only place outside of wrapper.c where it is used instead of xread.
Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>
---
transport-helper.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/transport-helper.c b/transport-helper.c
index bf225c698..5afead9f8 100644
--- a/transport-helper.c
+++ b/transport-helper.c
@@ -1225,9 +1225,8 @@ static int udt_do_read(struct unidirectional_transfer *t)
return 0; /* No space for more. */
transfer_debug("%s is readable", t->src_name);
- bytes = read(t->src, t->buf + t->bufuse, BUFFERSIZE - t->bufuse);
- if (bytes < 0 && errno != EWOULDBLOCK && errno != EAGAIN &&
- errno != EINTR) {
+ bytes = xread(t->src, t->buf + t->bufuse, BUFFERSIZE - t->bufuse);
+ if (bytes < 0 && errno != EINTR) {
error_errno(_("read(%s) failed"), t->src_name);
return -1;
} else if (bytes == 0) {
--
2.12.3
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Patch v5 2/4] config.mak.uname: support for modern HPE NonStop config.
2019-01-03 21:03 [Patch v5 0/4] HPE NonStop Port Commits randall.s.becker
2019-01-03 21:03 ` [Patch v5 1/4] transport-helper: use xread instead of read randall.s.becker
@ 2019-01-03 21:03 ` randall.s.becker
2019-01-03 21:38 ` Eric Sunshine
2019-01-03 21:03 ` [Patch v5 3/4] git-compat-util.h: add FLOSS headers for HPE NonStop randall.s.becker
2019-01-03 21:03 ` [Patch v5 4/4] compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStop randall.s.becker
3 siblings, 1 reply; 11+ messages in thread
From: randall.s.becker @ 2019-01-03 21:03 UTC (permalink / raw)
To: git; +Cc: Randall S. Becker, Randall S . Becker
From: "Randall S. Becker" <randall.becker@nexbridge.ca>
A number of configuration options are not automatically detected by
configure mechanisms, including the location of Perl and Python.
There was a problem at a specific set of operating system versions
that caused getopt to have compile errors. Account for this by
providing emulation defines for those versions.
Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>
---
config.mak.uname | 29 +++++++++++++++++++++++------
1 file changed, 23 insertions(+), 6 deletions(-)
diff --git a/config.mak.uname b/config.mak.uname
index 3ee7da0e2..686156d53 100644
--- a/config.mak.uname
+++ b/config.mak.uname
@@ -441,26 +441,43 @@ ifeq ($(uname_S),NONSTOP_KERNEL)
# INLINE='' would just replace one set of warnings with another and
# still not compile in c89 mode, due to non-const array initializations.
CC = cc -c99
+ # Build down-rev compatible objects that don't use our new getopt_long.
+ ifeq ($(uname_R).$(uname_V),J06.21)
+ CC += -WRVU=J06.20
+ endif
+ ifeq ($(uname_R).$(uname_V),L17.02)
+ CC += -WRVU=L16.05
+ endif
# Disable all optimization, seems to result in bad code, with -O or -O2
# or even -O1 (default), /usr/local/libexec/git-core/git-pack-objects
# abends on "git push". Needs more investigation.
- CFLAGS = -g -O0
+ CFLAGS = -g -O0 -Winline
# We'd want it to be here.
prefix = /usr/local
- # Our's are in ${prefix}/bin (perl might also be in /usr/bin/perl).
- PERL_PATH = ${prefix}/bin/perl
- PYTHON_PATH = ${prefix}/bin/python
-
+ # perl and python must be in /usr/bin on NonStop - supplied by HPE
+ # with operating system in that managed directory.
+ PERL_PATH = /usr/bin/perl
+ PYTHON_PATH = /usr/bin/python
+ # The current /usr/coreutils/rm at lowest support level does not work
+ # with the git test structure. Long paths as in
+ # 'trash directory...' cause rm to terminate prematurely without fully
+ # removing the directory at OS releases J06.21 and L17.02.
+ # Default to the older rm until those two releases are deprecated.
+ RM = /bin/rm -f
# As detected by './configure'.
# Missdetected, hence commented out, see below.
#NO_CURL = YesPlease
# Added manually, see above.
+ NEEDS_SSL_WITH_CURL = YesPlease
+ NEEDS_CRYPTO_WITH_SSL = YesPlease
+ HAVE_DEV_TTY = YesPlease
HAVE_LIBCHARSET_H = YesPlease
HAVE_STRINGS_H = YesPlease
NEEDS_LIBICONV = YesPlease
NEEDS_LIBINTL_BEFORE_LIBICONV = YesPlease
NO_SYS_SELECT_H = UnfortunatelyYes
NO_D_TYPE_IN_DIRENT = YesPlease
+ NO_GETTEXT = YesPlease
NO_HSTRERROR = YesPlease
NO_STRCASESTR = YesPlease
NO_MEMMEM = YesPlease
@@ -470,7 +487,7 @@ ifeq ($(uname_S),NONSTOP_KERNEL)
NO_MKDTEMP = YesPlease
# Currently libiconv-1.9.1.
OLD_ICONV = UnfortunatelyYes
- NO_REGEX = YesPlease
+ NO_REGEX=NeedsStartEnd
NO_PTHREADS = UnfortunatelyYes
# Not detected (nor checked for) by './configure'.
--
2.12.3
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [Patch v5 2/4] config.mak.uname: support for modern HPE NonStop config.
2019-01-03 21:03 ` [Patch v5 2/4] config.mak.uname: support for modern HPE NonStop config randall.s.becker
@ 2019-01-03 21:38 ` Eric Sunshine
2019-01-03 22:04 ` Randall S. Becker
0 siblings, 1 reply; 11+ messages in thread
From: Eric Sunshine @ 2019-01-03 21:38 UTC (permalink / raw)
To: randall.s.becker; +Cc: Git List, Randall S. Becker, Randall S . Becker
On Thu, Jan 3, 2019 at 4:04 PM <randall.s.becker@rogers.com> wrote:
> A number of configuration options are not automatically detected by
> configure mechanisms, including the location of Perl and Python.
>
> There was a problem at a specific set of operating system versions
> that caused getopt to have compile errors. Account for this by
> providing emulation defines for those versions.
>
> Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>
> ---
> diff --git a/config.mak.uname b/config.mak.uname
> @@ -470,7 +487,7 @@ ifeq ($(uname_S),NONSTOP_KERNEL)
> NO_MKDTEMP = YesPlease
> OLD_ICONV = UnfortunatelyYes
> - NO_REGEX = YesPlease
> + NO_REGEX=NeedsStartEnd
> NO_PTHREADS = UnfortunatelyYes
Style nit (probably not worth a re-roll): you lost the whitespace
surrounding '='
^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [Patch v5 2/4] config.mak.uname: support for modern HPE NonStop config.
2019-01-03 21:38 ` Eric Sunshine
@ 2019-01-03 22:04 ` Randall S. Becker
2019-01-03 22:09 ` Junio C Hamano
0 siblings, 1 reply; 11+ messages in thread
From: Randall S. Becker @ 2019-01-03 22:04 UTC (permalink / raw)
To: 'Eric Sunshine', randall.s.becker
Cc: 'Git List', 'Randall S. Becker'
On January 3, 2019 16:38, Eric Sunshine wrote:
> On Thu, Jan 3, 2019 at 4:04 PM <randall.s.becker@rogers.com> wrote:
> > A number of configuration options are not automatically detected by
> > configure mechanisms, including the location of Perl and Python.
> >
> > There was a problem at a specific set of operating system versions
> > that caused getopt to have compile errors. Account for this by
> > providing emulation defines for those versions.
> >
> > Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>
> > ---
> > diff --git a/config.mak.uname b/config.mak.uname @@ -470,7 +487,7
> @@
> > ifeq ($(uname_S),NONSTOP_KERNEL)
> > NO_MKDTEMP = YesPlease
> > OLD_ICONV = UnfortunatelyYes
> > - NO_REGEX = YesPlease
> > + NO_REGEX=NeedsStartEnd
> > NO_PTHREADS = UnfortunatelyYes
>
> Style nit (probably not worth a re-roll): you lost the whitespace surrounding
> '='
I can fix this one in the next round of changes, or after this gets in, if that works, or signoff on this being fixed in place.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Patch v5 2/4] config.mak.uname: support for modern HPE NonStop config.
2019-01-03 22:04 ` Randall S. Becker
@ 2019-01-03 22:09 ` Junio C Hamano
0 siblings, 0 replies; 11+ messages in thread
From: Junio C Hamano @ 2019-01-03 22:09 UTC (permalink / raw)
To: Randall S. Becker
Cc: 'Eric Sunshine', randall.s.becker, 'Git List',
'Randall S. Becker'
"Randall S. Becker" <rsbecker@nexbridge.com> writes:
> On January 3, 2019 16:38, Eric Sunshine wrote:
>> On Thu, Jan 3, 2019 at 4:04 PM <randall.s.becker@rogers.com> wrote:
>> > A number of configuration options are not automatically detected by
>> > configure mechanisms, including the location of Perl and Python.
>> >
>> > There was a problem at a specific set of operating system versions
>> > that caused getopt to have compile errors. Account for this by
>> > providing emulation defines for those versions.
>> >
>> > Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>
>> > ---
>> > diff --git a/config.mak.uname b/config.mak.uname @@ -470,7 +487,7
>> @@
>> > ifeq ($(uname_S),NONSTOP_KERNEL)
>> > NO_MKDTEMP = YesPlease
>> > OLD_ICONV = UnfortunatelyYes
>> > - NO_REGEX = YesPlease
>> > + NO_REGEX=NeedsStartEnd
>> > NO_PTHREADS = UnfortunatelyYes
>>
>> Style nit (probably not worth a re-roll): you lost the whitespace surrounding
>> '='
>
> I can fix this one in the next round of changes, or after this gets in, if that works, or signoff on this being fixed in place.
I've already tweaked this while queuing. i.e. no need to resend
only to fix this one.
Thanks, both.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Patch v5 3/4] git-compat-util.h: add FLOSS headers for HPE NonStop
2019-01-03 21:03 [Patch v5 0/4] HPE NonStop Port Commits randall.s.becker
2019-01-03 21:03 ` [Patch v5 1/4] transport-helper: use xread instead of read randall.s.becker
2019-01-03 21:03 ` [Patch v5 2/4] config.mak.uname: support for modern HPE NonStop config randall.s.becker
@ 2019-01-03 21:03 ` randall.s.becker
2019-01-03 21:41 ` Eric Sunshine
2019-01-03 21:03 ` [Patch v5 4/4] compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStop randall.s.becker
3 siblings, 1 reply; 11+ messages in thread
From: randall.s.becker @ 2019-01-03 21:03 UTC (permalink / raw)
To: git; +Cc: Randall S. Becker, Randall S . Becker
From: "Randall S. Becker" <randall.becker@nexbridge.ca>
The HPE NonStop (a.k.a. __TANDEM) platform cannot build git without
using the FLOSS package supplied by HPE. The convenient location
for including the relevant headers is in this file.
The NSIG define is also not defined on __TANDEM, so we define it
here as 100 if it is not defined only for __TANDEM builds.
Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>
---
git-compat-util.h | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/git-compat-util.h b/git-compat-util.h
index 09b0102ca..3da6f0673 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -397,6 +397,17 @@ static inline char *git_find_last_dir_sep(const char *path)
#define query_user_email() NULL
#endif
+#ifdef __TANDEM
+#include <floss.h(floss_execl,floss_execlp,floss_execv,floss_execvp)>
+#include <floss.h(floss_getpwuid)>
+#ifndef NSIG
+/* NonStop NSE and NSX do not provide NSIG. SIGGUARDIAN(99) is the highest
+ known, by detective work using kill -l as a list is all signals
+ instead of signal.h where it should be. */
+# define NSIG 100
+#endif
+#endif
+
#if defined(__HP_cc) && (__HP_cc >= 61000)
#define NORETURN __attribute__((noreturn))
#define NORETURN_PTR
--
2.12.3
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [Patch v5 3/4] git-compat-util.h: add FLOSS headers for HPE NonStop
2019-01-03 21:03 ` [Patch v5 3/4] git-compat-util.h: add FLOSS headers for HPE NonStop randall.s.becker
@ 2019-01-03 21:41 ` Eric Sunshine
2019-01-03 22:06 ` Randall S. Becker
0 siblings, 1 reply; 11+ messages in thread
From: Eric Sunshine @ 2019-01-03 21:41 UTC (permalink / raw)
To: randall.s.becker; +Cc: Git List, Randall S. Becker, Randall S . Becker
On Thu, Jan 3, 2019 at 4:04 PM <randall.s.becker@rogers.com> wrote:
> The HPE NonStop (a.k.a. __TANDEM) platform cannot build git without
> using the FLOSS package supplied by HPE. The convenient location
> for including the relevant headers is in this file.
>
> The NSIG define is also not defined on __TANDEM, so we define it
> here as 100 if it is not defined only for __TANDEM builds.
>
> Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>
> ---
> diff --git a/git-compat-util.h b/git-compat-util.h
> @@ -397,6 +397,17 @@ static inline char *git_find_last_dir_sep(const char *path)
> +#ifdef __TANDEM
> +#include <floss.h(floss_execl,floss_execlp,floss_execv,floss_execvp)>
> +#include <floss.h(floss_getpwuid)>
> +#ifndef NSIG
> +/* NonStop NSE and NSX do not provide NSIG. SIGGUARDIAN(99) is the highest
> + known, by detective work using kill -l as a list is all signals
> + instead of signal.h where it should be. */
Style nit: With two minor exceptions, all other multi-line comments in
this file are formatted as:
/*
* Multi-line
* comment.
*/
^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [Patch v5 3/4] git-compat-util.h: add FLOSS headers for HPE NonStop
2019-01-03 21:41 ` Eric Sunshine
@ 2019-01-03 22:06 ` Randall S. Becker
2019-01-03 22:09 ` Junio C Hamano
0 siblings, 1 reply; 11+ messages in thread
From: Randall S. Becker @ 2019-01-03 22:06 UTC (permalink / raw)
To: 'Eric Sunshine', randall.s.becker
Cc: 'Git List', 'Randall S. Becker'
On January 3, 2019 16:41, Eric Sunshine wrote:
> On Thu, Jan 3, 2019 at 4:04 PM <randall.s.becker@rogers.com> wrote:
> > The HPE NonStop (a.k.a. __TANDEM) platform cannot build git without
> > using the FLOSS package supplied by HPE. The convenient location for
> > including the relevant headers is in this file.
> >
> > The NSIG define is also not defined on __TANDEM, so we define it here
> > as 100 if it is not defined only for __TANDEM builds.
> >
> > Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>
> > ---
> > diff --git a/git-compat-util.h b/git-compat-util.h @@ -397,6 +397,17
> > @@ static inline char *git_find_last_dir_sep(const char *path)
> > +#ifdef __TANDEM
> > +#include <floss.h(floss_execl,floss_execlp,floss_execv,floss_execvp)>
> > +#include <floss.h(floss_getpwuid)>
> > +#ifndef NSIG
> > +/* NonStop NSE and NSX do not provide NSIG. SIGGUARDIAN(99) is the
> highest
> > + known, by detective work using kill -l as a list is all signals
> > + instead of signal.h where it should be. */
>
> Style nit: With two minor exceptions, all other multi-line comments in this file
> are formatted as:
>
> /*
> * Multi-line
> * comment.
> */
Doh! I just missed that one. I'll fix this on the next round, if that's ok.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Patch v5 3/4] git-compat-util.h: add FLOSS headers for HPE NonStop
2019-01-03 22:06 ` Randall S. Becker
@ 2019-01-03 22:09 ` Junio C Hamano
0 siblings, 0 replies; 11+ messages in thread
From: Junio C Hamano @ 2019-01-03 22:09 UTC (permalink / raw)
To: Randall S. Becker
Cc: 'Eric Sunshine', randall.s.becker, 'Git List',
'Randall S. Becker'
"Randall S. Becker" <rsbecker@nexbridge.com> writes:
> On January 3, 2019 16:41, Eric Sunshine wrote:
>> On Thu, Jan 3, 2019 at 4:04 PM <randall.s.becker@rogers.com> wrote:
>> > The HPE NonStop (a.k.a. __TANDEM) platform cannot build git without
>> > using the FLOSS package supplied by HPE. The convenient location for
>> > including the relevant headers is in this file.
>> >
>> > The NSIG define is also not defined on __TANDEM, so we define it here
>> > as 100 if it is not defined only for __TANDEM builds.
>> >
>> > Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>
>> > ---
>> > diff --git a/git-compat-util.h b/git-compat-util.h @@ -397,6 +397,17
>> > @@ static inline char *git_find_last_dir_sep(const char *path)
>> > +#ifdef __TANDEM
>> > +#include <floss.h(floss_execl,floss_execlp,floss_execv,floss_execvp)>
>> > +#include <floss.h(floss_getpwuid)>
>> > +#ifndef NSIG
>> > +/* NonStop NSE and NSX do not provide NSIG. SIGGUARDIAN(99) is the
>> highest
>> > + known, by detective work using kill -l as a list is all signals
>> > + instead of signal.h where it should be. */
>>
>> Style nit: With two minor exceptions, all other multi-line comments in this file
>> are formatted as:
>>
>> /*
>> * Multi-line
>> * comment.
>> */
>
> Doh! I just missed that one. I'll fix this on the next round, if that's ok.
Again, I've queued with a tweak already, i.e. no need to reroll only
to fix this one.
Thanks, both.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Patch v5 4/4] compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStop
2019-01-03 21:03 [Patch v5 0/4] HPE NonStop Port Commits randall.s.becker
` (2 preceding siblings ...)
2019-01-03 21:03 ` [Patch v5 3/4] git-compat-util.h: add FLOSS headers for HPE NonStop randall.s.becker
@ 2019-01-03 21:03 ` randall.s.becker
3 siblings, 0 replies; 11+ messages in thread
From: randall.s.becker @ 2019-01-03 21:03 UTC (permalink / raw)
To: git; +Cc: Randall S. Becker, Randall S . Becker
From: "Randall S. Becker" <randall.becker@nexbridge.ca>
The system definition header files on HPE NonStop do not define
intptr_t and uintptr_t as do other platforms. These typedefs
are added specifically wrapped in a __TANDEM ifdef.
Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>
---
compat/regex/regcomp.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/compat/regex/regcomp.c b/compat/regex/regcomp.c
index 51cd60baa..c0d838834 100644
--- a/compat/regex/regcomp.c
+++ b/compat/regex/regcomp.c
@@ -17,6 +17,14 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#if defined __TANDEM
+ /* This is currently duplicated from git-compat-utils.h */
+# ifdef NO_INTPTR_T
+ typedef long intptr_t;
+ typedef unsigned long uintptr_t;
+# endif
+#endif
+
static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern,
size_t length, reg_syntax_t syntax);
static void re_compile_fastmap_iter (regex_t *bufp,
--
2.12.3
^ permalink raw reply related [flat|nested] 11+ messages in thread