{"thread":{"id":"50148","subject":"[Patch v5 0/4] HPE NonStop Port Commits","startedAt":"2019-01-03T21:04:08Z","lastAt":"2019-01-03T22:09:55Z","messageCount":11,"participants":["randall.s.becker@rogers.com","Eric Sunshine","Randall S. Becker","Junio C Hamano"],"isPatch":true,"patchVersion":5,"patchTotal":4},"messages":[{"id":"366105","messageId":"20190103210351.13920-1-randall.s.becker@rogers.com","threadId":"50148","inReplyTo":null,"subject":"[Patch v5 0/4] HPE NonStop Port Commits","fromName":"","fromEmail":"randall.s.becker@rogers.com","sentAt":"2019-01-03T21:03:47Z","receivedAt":"2019-01-03T21:04:08Z","isPatch":true,"sender":{"key":"randall.s.becker@rogers.com","avatar":null},"body":"From: \"Randall S. Becker\" <randall.becker@nexbridge.ca>\n\nThis set of patches is a distilled version of the minimal\nset of changes to git that will allow it to run as client\nand server on HPE NonStop NSE and NSX systems. NSR systems\nare no longer under support so references to them have\nbeen removed. Each patch in this set is independent but\nrequired for correctness.\n\nRandall S. Becker (4):\n  transport-helper: use xread instead of read\n  config.mak.uname: support for modern HPE NonStop config.\n  git-compat-util.h: add FLOSS headers for HPE NonStop\n  compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStop\n\n compat/regex/regcomp.c |  8 ++++++++\n config.mak.uname       | 29 +++++++++++++++++++++++------\n git-compat-util.h      | 11 +++++++++++\n transport-helper.c     |  5 ++---\n 4 files changed, 44 insertions(+), 9 deletions(-)\n\n-- \n2.12.3\n\n"},{"id":"366106","messageId":"20190103210351.13920-2-randall.s.becker@rogers.com","threadId":"50148","inReplyTo":"20190103210351.13920-1-randall.s.becker@rogers.com","subject":"[Patch v5 1/4] transport-helper: use xread instead of read","fromName":"","fromEmail":"randall.s.becker@rogers.com","sentAt":"2019-01-03T21:03:48Z","receivedAt":"2019-01-03T21:04:09Z","isPatch":true,"sender":{"key":"randall.s.becker@rogers.com","avatar":null},"body":"From: \"Randall S. Becker\" <randall.becker@nexbridge.ca>\n\nThis fix was needed on HPE NonStop NSE and NSX where SSIZE_MAX is less than\nBUFFERSIZE resulting in EINVAL. The call to read in transport-helper.c\nwas the only place outside of wrapper.c where it is used instead of xread.\n\nSigned-off-by: Randall S. Becker <rsbecker@nexbridge.com>\n---\n transport-helper.c | 5 ++---\n 1 file changed, 2 insertions(+), 3 deletions(-)\n\ndiff --git a/transport-helper.c b/transport-helper.c\nindex bf225c698..5afead9f8 100644\n--- a/transport-helper.c\n+++ b/transport-helper.c\n@@ -1225,9 +1225,8 @@ static int udt_do_read(struct unidirectional_transfer *t)\n \t\treturn 0;\t/* No space for more. */\n \n \ttransfer_debug(\"%s is readable\", t->src_name);\n-\tbytes = read(t->src, t->buf + t->bufuse, BUFFERSIZE - t->bufuse);\n-\tif (bytes < 0 && errno != EWOULDBLOCK && errno != EAGAIN &&\n-\t\terrno != EINTR) {\n+\tbytes = xread(t->src, t->buf + t->bufuse, BUFFERSIZE - t->bufuse);\n+\tif (bytes < 0 && errno != EINTR) {\n \t\terror_errno(_(\"read(%s) failed\"), t->src_name);\n \t\treturn -1;\n \t} else if (bytes == 0) {\n-- \n2.12.3\n\n"},{"id":"366107","messageId":"20190103210351.13920-3-randall.s.becker@rogers.com","threadId":"50148","inReplyTo":"20190103210351.13920-1-randall.s.becker@rogers.com","subject":"[Patch v5 2/4] config.mak.uname: support for modern HPE NonStop config.","fromName":"","fromEmail":"randall.s.becker@rogers.com","sentAt":"2019-01-03T21:03:49Z","receivedAt":"2019-01-03T21:04:11Z","isPatch":true,"sender":{"key":"randall.s.becker@rogers.com","avatar":null},"body":"From: \"Randall S. Becker\" <randall.becker@nexbridge.ca>\n\nA number of configuration options are not automatically detected by\nconfigure mechanisms, including the location of Perl and Python.\n\nThere was a problem at a specific set of operating system versions\nthat caused getopt to have compile errors. Account for this by\nproviding emulation defines for those versions.\n\nSigned-off-by: Randall S. Becker <rsbecker@nexbridge.com>\n---\n config.mak.uname | 29 +++++++++++++++++++++++------\n 1 file changed, 23 insertions(+), 6 deletions(-)\n\ndiff --git a/config.mak.uname b/config.mak.uname\nindex 3ee7da0e2..686156d53 100644\n--- a/config.mak.uname\n+++ b/config.mak.uname\n@@ -441,26 +441,43 @@ ifeq ($(uname_S),NONSTOP_KERNEL)\n \t# INLINE='' would just replace one set of warnings with another and\n \t# still not compile in c89 mode, due to non-const array initializations.\n \tCC = cc -c99\n+\t# Build down-rev compatible objects that don't use our new getopt_long.\n+\tifeq ($(uname_R).$(uname_V),J06.21)\n+\t\tCC += -WRVU=J06.20\n+\tendif\n+\tifeq ($(uname_R).$(uname_V),L17.02)\n+\t\tCC += -WRVU=L16.05\n+\tendif\n \t# Disable all optimization, seems to result in bad code, with -O or -O2\n \t# or even -O1 (default), /usr/local/libexec/git-core/git-pack-objects\n \t# abends on \"git push\". Needs more investigation.\n-\tCFLAGS = -g -O0\n+\tCFLAGS = -g -O0 -Winline\n \t# We'd want it to be here.\n \tprefix = /usr/local\n-\t# Our's are in ${prefix}/bin (perl might also be in /usr/bin/perl).\n-\tPERL_PATH = ${prefix}/bin/perl\n-\tPYTHON_PATH = ${prefix}/bin/python\n-\n+\t# perl and python must be in /usr/bin on NonStop - supplied by HPE\n+\t# with operating system in that managed directory.\n+\tPERL_PATH = /usr/bin/perl\n+\tPYTHON_PATH = /usr/bin/python\n+\t# The current /usr/coreutils/rm at lowest support level does not work\n+\t# with the git test structure. Long paths as in\n+\t# 'trash directory...' cause rm to terminate prematurely without fully\n+\t# removing the directory at OS releases J06.21 and L17.02.\n+\t# Default to the older rm until those two releases are deprecated.\n+\tRM = /bin/rm -f\n \t# As detected by './configure'.\n \t# Missdetected, hence commented out, see below.\n \t#NO_CURL = YesPlease\n \t# Added manually, see above.\n+\tNEEDS_SSL_WITH_CURL = YesPlease\n+\tNEEDS_CRYPTO_WITH_SSL = YesPlease\n+\tHAVE_DEV_TTY = YesPlease\n \tHAVE_LIBCHARSET_H = YesPlease\n \tHAVE_STRINGS_H = YesPlease\n \tNEEDS_LIBICONV = YesPlease\n \tNEEDS_LIBINTL_BEFORE_LIBICONV = YesPlease\n \tNO_SYS_SELECT_H = UnfortunatelyYes\n \tNO_D_TYPE_IN_DIRENT = YesPlease\n+\tNO_GETTEXT = YesPlease\n \tNO_HSTRERROR = YesPlease\n \tNO_STRCASESTR = YesPlease\n \tNO_MEMMEM = YesPlease\n@@ -470,7 +487,7 @@ ifeq ($(uname_S),NONSTOP_KERNEL)\n \tNO_MKDTEMP = YesPlease\n \t# Currently libiconv-1.9.1.\n \tOLD_ICONV = UnfortunatelyYes\n-\tNO_REGEX = YesPlease\n+\tNO_REGEX=NeedsStartEnd\n \tNO_PTHREADS = UnfortunatelyYes\n \n \t# Not detected (nor checked for) by './configure'.\n-- \n2.12.3\n\n"},{"id":"366108","messageId":"20190103210351.13920-4-randall.s.becker@rogers.com","threadId":"50148","inReplyTo":"20190103210351.13920-1-randall.s.becker@rogers.com","subject":"[Patch v5 3/4] git-compat-util.h: add FLOSS headers for HPE NonStop","fromName":"","fromEmail":"randall.s.becker@rogers.com","sentAt":"2019-01-03T21:03:50Z","receivedAt":"2019-01-03T21:04:14Z","isPatch":true,"sender":{"key":"randall.s.becker@rogers.com","avatar":null},"body":"From: \"Randall S. Becker\" <randall.becker@nexbridge.ca>\n\nThe HPE NonStop (a.k.a. __TANDEM) platform cannot build git without\nusing the FLOSS package supplied by HPE. The convenient location\nfor including the relevant headers is in this file.\n\nThe NSIG define is also not defined on __TANDEM, so we define it\nhere as 100 if it is not defined only for __TANDEM builds.\n\nSigned-off-by: Randall S. Becker <rsbecker@nexbridge.com>\n---\n git-compat-util.h | 11 +++++++++++\n 1 file changed, 11 insertions(+)\n\ndiff --git a/git-compat-util.h b/git-compat-util.h\nindex 09b0102ca..3da6f0673 100644\n--- a/git-compat-util.h\n+++ b/git-compat-util.h\n@@ -397,6 +397,17 @@ static inline char *git_find_last_dir_sep(const char *path)\n #define query_user_email() NULL\n #endif\n \n+#ifdef __TANDEM\n+#include <floss.h(floss_execl,floss_execlp,floss_execv,floss_execvp)>\n+#include <floss.h(floss_getpwuid)>\n+#ifndef NSIG\n+/* NonStop NSE and NSX do not provide NSIG. SIGGUARDIAN(99) is the highest\n+   known, by detective work using kill -l as a list is all signals\n+   instead of signal.h where it should be. */\n+# define NSIG 100\n+#endif\n+#endif\n+\n #if defined(__HP_cc) && (__HP_cc >= 61000)\n #define NORETURN __attribute__((noreturn))\n #define NORETURN_PTR\n-- \n2.12.3\n\n"},{"id":"366109","messageId":"20190103210351.13920-5-randall.s.becker@rogers.com","threadId":"50148","inReplyTo":"20190103210351.13920-1-randall.s.becker@rogers.com","subject":"[Patch v5 4/4] compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStop","fromName":"","fromEmail":"randall.s.becker@rogers.com","sentAt":"2019-01-03T21:03:51Z","receivedAt":"2019-01-03T21:04:14Z","isPatch":true,"sender":{"key":"randall.s.becker@rogers.com","avatar":null},"body":"From: \"Randall S. Becker\" <randall.becker@nexbridge.ca>\n\nThe system definition header files on HPE NonStop do not define\nintptr_t and uintptr_t as do other platforms. These typedefs\nare added specifically wrapped in a __TANDEM ifdef.\n\nSigned-off-by: Randall S. Becker <rsbecker@nexbridge.com>\n---\n compat/regex/regcomp.c | 8 ++++++++\n 1 file changed, 8 insertions(+)\n\ndiff --git a/compat/regex/regcomp.c b/compat/regex/regcomp.c\nindex 51cd60baa..c0d838834 100644\n--- a/compat/regex/regcomp.c\n+++ b/compat/regex/regcomp.c\n@@ -17,6 +17,14 @@\n    License along with the GNU C Library; if not, see\n    <http://www.gnu.org/licenses/>.  */\n \n+#if defined __TANDEM\n+ /* This is currently duplicated from git-compat-utils.h */\n+# ifdef NO_INTPTR_T\n+ typedef long intptr_t;\n+ typedef unsigned long uintptr_t;\n+# endif\n+#endif\n+\n static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern,\n \t\t\t\t\t  size_t length, reg_syntax_t syntax);\n static void re_compile_fastmap_iter (regex_t *bufp,\n-- \n2.12.3\n\n"},{"id":"366112","messageId":"CAPig+cSkok+QttWZTMngCdUrxHiO0rg53M4q=1q1vsewn7Qy_Q@mail.gmail.com","threadId":"50148","inReplyTo":"20190103210351.13920-3-randall.s.becker@rogers.com","subject":"Re: [Patch v5 2/4] config.mak.uname: support for modern HPE NonStop config.","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2019-01-03T21:38:23Z","receivedAt":"2019-01-03T21:38:35Z","isPatch":true,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On Thu, Jan 3, 2019 at 4:04 PM <randall.s.becker@rogers.com> wrote:\n> A number of configuration options are not automatically detected by\n> configure mechanisms, including the location of Perl and Python.\n>\n> There was a problem at a specific set of operating system versions\n> that caused getopt to have compile errors. Account for this by\n> providing emulation defines for those versions.\n>\n> Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>\n> ---\n> diff --git a/config.mak.uname b/config.mak.uname\n> @@ -470,7 +487,7 @@ ifeq ($(uname_S),NONSTOP_KERNEL)\n>         NO_MKDTEMP = YesPlease\n>         OLD_ICONV = UnfortunatelyYes\n> -       NO_REGEX = YesPlease\n> +       NO_REGEX=NeedsStartEnd\n>         NO_PTHREADS = UnfortunatelyYes\n\nStyle nit (probably not worth a re-roll): you lost the whitespace\nsurrounding '='\n"},{"id":"366113","messageId":"CAPig+cSdheCx-Ucnmg5eSXyNhyGPFF3L6N_Nc5uXQdc8Ytx2DA@mail.gmail.com","threadId":"50148","inReplyTo":"20190103210351.13920-4-randall.s.becker@rogers.com","subject":"Re: [Patch v5 3/4] git-compat-util.h: add FLOSS headers for HPE NonStop","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2019-01-03T21:41:29Z","receivedAt":"2019-01-03T21:41:40Z","isPatch":true,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On Thu, Jan 3, 2019 at 4:04 PM <randall.s.becker@rogers.com> wrote:\n> The HPE NonStop (a.k.a. __TANDEM) platform cannot build git without\n> using the FLOSS package supplied by HPE. The convenient location\n> for including the relevant headers is in this file.\n>\n> The NSIG define is also not defined on __TANDEM, so we define it\n> here as 100 if it is not defined only for __TANDEM builds.\n>\n> Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>\n> ---\n> diff --git a/git-compat-util.h b/git-compat-util.h\n> @@ -397,6 +397,17 @@ static inline char *git_find_last_dir_sep(const char *path)\n> +#ifdef __TANDEM\n> +#include <floss.h(floss_execl,floss_execlp,floss_execv,floss_execvp)>\n> +#include <floss.h(floss_getpwuid)>\n> +#ifndef NSIG\n> +/* NonStop NSE and NSX do not provide NSIG. SIGGUARDIAN(99) is the highest\n> +   known, by detective work using kill -l as a list is all signals\n> +   instead of signal.h where it should be. */\n\nStyle nit: With two minor exceptions, all other multi-line comments in\nthis file are formatted as:\n\n/*\n * Multi-line\n * comment.\n */\n"},{"id":"366116","messageId":"007901d4a3b0$5dd1d030$19757090$@nexbridge.com","threadId":"50148","inReplyTo":"CAPig+cSkok+QttWZTMngCdUrxHiO0rg53M4q=1q1vsewn7Qy_Q@mail.gmail.com","subject":"RE: [Patch v5 2/4] config.mak.uname: support for modern HPE NonStop config.","fromName":"Randall S. Becker","fromEmail":"rsbecker@nexbridge.com","sentAt":"2019-01-03T22:04:52Z","receivedAt":"2019-01-03T22:05:13Z","isPatch":true,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"On January 3, 2019 16:38, Eric Sunshine wrote:\n> On Thu, Jan 3, 2019 at 4:04 PM <randall.s.becker@rogers.com> wrote:\n> > A number of configuration options are not automatically detected by\n> > configure mechanisms, including the location of Perl and Python.\n> >\n> > There was a problem at a specific set of operating system versions\n> > that caused getopt to have compile errors. Account for this by\n> > providing emulation defines for those versions.\n> >\n> > Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>\n> > ---\n> > diff --git a/config.mak.uname b/config.mak.uname @@ -470,7 +487,7\n> @@\n> > ifeq ($(uname_S),NONSTOP_KERNEL)\n> >         NO_MKDTEMP = YesPlease\n> >         OLD_ICONV = UnfortunatelyYes\n> > -       NO_REGEX = YesPlease\n> > +       NO_REGEX=NeedsStartEnd\n> >         NO_PTHREADS = UnfortunatelyYes\n> \n> Style nit (probably not worth a re-roll): you lost the whitespace surrounding\n> '='\n\nI 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.\n\n"},{"id":"366118","messageId":"007a01d4a3b0$8ae10000$a0a30000$@nexbridge.com","threadId":"50148","inReplyTo":"CAPig+cSdheCx-Ucnmg5eSXyNhyGPFF3L6N_Nc5uXQdc8Ytx2DA@mail.gmail.com","subject":"RE: [Patch v5 3/4] git-compat-util.h: add FLOSS headers for HPE NonStop","fromName":"Randall S. Becker","fromEmail":"rsbecker@nexbridge.com","sentAt":"2019-01-03T22:06:08Z","receivedAt":"2019-01-03T22:06:21Z","isPatch":true,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"On January 3, 2019 16:41, Eric Sunshine wrote:\n> On Thu, Jan 3, 2019 at 4:04 PM <randall.s.becker@rogers.com> wrote:\n> > The HPE NonStop (a.k.a. __TANDEM) platform cannot build git without\n> > using the FLOSS package supplied by HPE. The convenient location for\n> > including the relevant headers is in this file.\n> >\n> > The NSIG define is also not defined on __TANDEM, so we define it here\n> > as 100 if it is not defined only for __TANDEM builds.\n> >\n> > Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>\n> > ---\n> > diff --git a/git-compat-util.h b/git-compat-util.h @@ -397,6 +397,17\n> > @@ static inline char *git_find_last_dir_sep(const char *path)\n> > +#ifdef __TANDEM\n> > +#include <floss.h(floss_execl,floss_execlp,floss_execv,floss_execvp)>\n> > +#include <floss.h(floss_getpwuid)>\n> > +#ifndef NSIG\n> > +/* NonStop NSE and NSX do not provide NSIG. SIGGUARDIAN(99) is the\n> highest\n> > +   known, by detective work using kill -l as a list is all signals\n> > +   instead of signal.h where it should be. */\n> \n> Style nit: With two minor exceptions, all other multi-line comments in this file\n> are formatted as:\n> \n> /*\n>  * Multi-line\n>  * comment.\n>  */\n\nDoh! I just missed that one. I'll fix this on the next round, if that's ok.\n\n"},{"id":"366119","messageId":"xmqqo98xfl6g.fsf@gitster-ct.c.googlers.com","threadId":"50148","inReplyTo":"007901d4a3b0$5dd1d030$19757090$@nexbridge.com","subject":"Re: [Patch v5 2/4] config.mak.uname: support for modern HPE NonStop config.","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2019-01-03T22:09:11Z","receivedAt":"2019-01-03T22:09:16Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Randall S. Becker\" <rsbecker@nexbridge.com> writes:\n\n> On January 3, 2019 16:38, Eric Sunshine wrote:\n>> On Thu, Jan 3, 2019 at 4:04 PM <randall.s.becker@rogers.com> wrote:\n>> > A number of configuration options are not automatically detected by\n>> > configure mechanisms, including the location of Perl and Python.\n>> >\n>> > There was a problem at a specific set of operating system versions\n>> > that caused getopt to have compile errors. Account for this by\n>> > providing emulation defines for those versions.\n>> >\n>> > Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>\n>> > ---\n>> > diff --git a/config.mak.uname b/config.mak.uname @@ -470,7 +487,7\n>> @@\n>> > ifeq ($(uname_S),NONSTOP_KERNEL)\n>> >         NO_MKDTEMP = YesPlease\n>> >         OLD_ICONV = UnfortunatelyYes\n>> > -       NO_REGEX = YesPlease\n>> > +       NO_REGEX=NeedsStartEnd\n>> >         NO_PTHREADS = UnfortunatelyYes\n>> \n>> Style nit (probably not worth a re-roll): you lost the whitespace surrounding\n>> '='\n>\n> 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.\n\nI've already tweaked this while queuing.  i.e. no need to resend\nonly to fix this one.\n\nThanks, both.\n"},{"id":"366120","messageId":"xmqqk1jlfl5e.fsf@gitster-ct.c.googlers.com","threadId":"50148","inReplyTo":"007a01d4a3b0$8ae10000$a0a30000$@nexbridge.com","subject":"Re: [Patch v5 3/4] git-compat-util.h: add FLOSS headers for HPE NonStop","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2019-01-03T22:09:49Z","receivedAt":"2019-01-03T22:09:55Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Randall S. Becker\" <rsbecker@nexbridge.com> writes:\n\n> On January 3, 2019 16:41, Eric Sunshine wrote:\n>> On Thu, Jan 3, 2019 at 4:04 PM <randall.s.becker@rogers.com> wrote:\n>> > The HPE NonStop (a.k.a. __TANDEM) platform cannot build git without\n>> > using the FLOSS package supplied by HPE. The convenient location for\n>> > including the relevant headers is in this file.\n>> >\n>> > The NSIG define is also not defined on __TANDEM, so we define it here\n>> > as 100 if it is not defined only for __TANDEM builds.\n>> >\n>> > Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>\n>> > ---\n>> > diff --git a/git-compat-util.h b/git-compat-util.h @@ -397,6 +397,17\n>> > @@ static inline char *git_find_last_dir_sep(const char *path)\n>> > +#ifdef __TANDEM\n>> > +#include <floss.h(floss_execl,floss_execlp,floss_execv,floss_execvp)>\n>> > +#include <floss.h(floss_getpwuid)>\n>> > +#ifndef NSIG\n>> > +/* NonStop NSE and NSX do not provide NSIG. SIGGUARDIAN(99) is the\n>> highest\n>> > +   known, by detective work using kill -l as a list is all signals\n>> > +   instead of signal.h where it should be. */\n>> \n>> Style nit: With two minor exceptions, all other multi-line comments in this file\n>> are formatted as:\n>> \n>> /*\n>>  * Multi-line\n>>  * comment.\n>>  */\n>\n> Doh! I just missed that one. I'll fix this on the next round, if that's ok.\n\nAgain, I've queued with a tweak already, i.e. no need to reroll only\nto fix this one.\n\nThanks, both.\n"}]}