{"thread":{"id":"50108","subject":"[PATCH v1 0/4] HPE NonStop Port Commits","startedAt":"2018-12-26T23:05:45Z","lastAt":"2018-12-28T20:39:05Z","messageCount":15,"participants":["randall.s.becker@rogers.com","Derrick Stolee","Randall S. Becker","Eric Sunshine","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":4},"messages":[{"id":"365821","messageId":"20181226230523.16572-1-randall.s.becker@rogers.com","threadId":"50108","inReplyTo":null,"subject":"[PATCH v1 0/4] HPE NonStop Port Commits","fromName":"","fromEmail":"randall.s.becker@rogers.com","sentAt":"2018-12-26T23:05:19Z","receivedAt":"2018-12-26T23:05:45Z","isPatch":true,"sender":{"key":"randall.s.becker@rogers.com","avatar":null},"body":"From: \"Randall S. Becker\" <rsbecker@nexbridge.com>\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       | 34 +++++++++++++++++++++++++++++-----\n git-compat-util.h      | 15 +++++++++++++++\n transport-helper.c     |  2 +-\n 4 files changed, 53 insertions(+), 6 deletions(-)\n\n-- \n2.17.0.10.gb132f7033\n\n"},{"id":"365822","messageId":"20181226230523.16572-2-randall.s.becker@rogers.com","threadId":"50108","inReplyTo":"20181226230523.16572-1-randall.s.becker@rogers.com","subject":"[PATCH v1 1/4] transport-helper: use xread instead of read","fromName":"","fromEmail":"randall.s.becker@rogers.com","sentAt":"2018-12-26T23:05:20Z","receivedAt":"2018-12-26T23:05:50Z","isPatch":true,"sender":{"key":"randall.s.becker@rogers.com","avatar":null},"body":"From: \"Randall S. Becker\" <rsbecker@nexbridge.com>\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 | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/transport-helper.c b/transport-helper.c\nindex bf225c698f..a290695a12 100644\n--- a/transport-helper.c\n+++ b/transport-helper.c\n@@ -1225,7 +1225,7 @@ 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+\tbytes = xread(t->src, t->buf + t->bufuse, BUFFERSIZE - t->bufuse);\n \tif (bytes < 0 && errno != EWOULDBLOCK && errno != EAGAIN &&\n \t\terrno != EINTR) {\n \t\terror_errno(_(\"read(%s) failed\"), t->src_name);\n-- \n2.17.0.10.gb132f7033\n\n"},{"id":"365823","messageId":"20181226230523.16572-3-randall.s.becker@rogers.com","threadId":"50108","inReplyTo":"20181226230523.16572-1-randall.s.becker@rogers.com","subject":"[PATCH v1 2/4] config.mak.uname: support for modern HPE NonStop config.","fromName":"","fromEmail":"randall.s.becker@rogers.com","sentAt":"2018-12-26T23:05:21Z","receivedAt":"2018-12-26T23:05:54Z","isPatch":true,"sender":{"key":"randall.s.becker@rogers.com","avatar":null},"body":"From: \"Randall S. Becker\" <rsbecker@nexbridge.com>\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. Accounted for this by\nproviding emulation defines for those versions.\n\nSigned-off-by: Randall S. Becker <rsbecker@nexbridge.com>\n---\n config.mak.uname | 34 +++++++++++++++++++++++++++++-----\n 1 file changed, 29 insertions(+), 5 deletions(-)\n\ndiff --git a/config.mak.uname b/config.mak.uname\nindex 3ee7da0e23..aa4432ac2f 100644\n--- a/config.mak.uname\n+++ b/config.mak.uname\n@@ -441,26 +441,45 @@ 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+\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+\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. Default to the older rm.\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+\t# Missdetected, hence commented out, see below.\n+\t#NO_CURL = YesPlease\n+\t# Added manually, see above.\n+\t# Not detected by ./configure. Add manually.\n+\tNEEDS_SSL_WITH_CURL = YesPlease\n+\tNEEDS_CRYPTO_WITH_SSL = YesPlease\n+\tHAVE_DEV_TTY = YesPlease\n+\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,8 +489,13 @@ 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+\tifdef NO_PTHREADS\n+\telse # WIP, use of Posix User Threads is planned but not working yet\n+\t\tPTHREAD_CFLAGS = -D_PUT_MODEL_ -I/usr/include\n+\t\tPTHREAD_LIBS = -lput\n+\tendif\n\n \t# Not detected (nor checked for) by './configure'.\n \t# We don't have SA_RESTART on NonStop, unfortunalety.\n-- \n2.17.0.10.gb132f7033\n\n"},{"id":"365824","messageId":"20181226230523.16572-4-randall.s.becker@rogers.com","threadId":"50108","inReplyTo":"20181226230523.16572-1-randall.s.becker@rogers.com","subject":"[PATCH v1 3/4] git-compat-util.h: add FLOSS headers for HPE NonStop","fromName":"","fromEmail":"randall.s.becker@rogers.com","sentAt":"2018-12-26T23:05:22Z","receivedAt":"2018-12-26T23:05:59Z","isPatch":true,"sender":{"key":"randall.s.becker@rogers.com","avatar":null},"body":"From: \"Randall S. Becker\" <rsbecker@nexbridge.com>\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 | 15 +++++++++++++++\n 1 file changed, 15 insertions(+)\n\ndiff --git a/git-compat-util.h b/git-compat-util.h\nindex 09b0102cae..3f615f7ed8 100644\n--- a/git-compat-util.h\n+++ b/git-compat-util.h\n@@ -397,6 +397,21 @@ static inline char *git_find_last_dir_sep(const char *path)\n #define query_user_email() NULL\n #endif\n \n+#ifdef __TANDEM\n+#if !defined(_THREAD_SUPPORT_FUNCTIONS) && !defined(_PUT_MODEL_)\n+/* #include <floss.h(floss_read,floss_write,floss_fsync,floss_fork)> */\n+/* #include <floss.h(floss_fork)> */\n+#endif\n+#include <floss.h(floss_execl,floss_execlp,floss_execv,floss_execvp)>\n+#include <floss.h(floss_getpwuid)>\n+#if ! defined 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.17.0.10.gb132f7033\n\n"},{"id":"365825","messageId":"20181226230523.16572-5-randall.s.becker@rogers.com","threadId":"50108","inReplyTo":"20181226230523.16572-1-randall.s.becker@rogers.com","subject":"[PATCH v1 4/4] compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStop","fromName":"","fromEmail":"randall.s.becker@rogers.com","sentAt":"2018-12-26T23:05:23Z","receivedAt":"2018-12-26T23:06:00Z","isPatch":true,"sender":{"key":"randall.s.becker@rogers.com","avatar":null},"body":"From: \"Randall S. Becker\" <rsbecker@nexbridge.com>\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 51cd60baa3..c0d838834a 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.17.0.10.gb132f7033\n\n"},{"id":"365836","messageId":"5712b2bf-8a90-42d7-9159-261dd990eb66@gmail.com","threadId":"50108","inReplyTo":"20181226230523.16572-4-randall.s.becker@rogers.com","subject":"Re: [PATCH v1 3/4] git-compat-util.h: add FLOSS headers for HPE NonStop","fromName":"Derrick Stolee","fromEmail":"stolee@gmail.com","sentAt":"2018-12-27T12:10:11Z","receivedAt":"2018-12-27T12:11:24Z","isPatch":true,"sender":{"key":"stolee@gmail.com","avatar":"https://avatars.githubusercontent.com/u/570044?v=4"},"body":"On 12/26/2018 6:05 PM, randall.s.becker@rogers.com wrote:\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[snip]\n> +#if ! defined NSIG\n\nWhy didn't you use \"#ifndef\" here?\n\nTaking a look at the file, I see both \"#ifdef\" and \"#if defined\" but no \n\"#if ! defined\".\n\nThanks,\n\n-Stolee\n\n"},{"id":"365837","messageId":"efa03ee9-b84f-5221-d811-1ccda9132007@gmail.com","threadId":"50108","inReplyTo":"20181226230523.16572-1-randall.s.becker@rogers.com","subject":"Re: [PATCH v1 0/4] HPE NonStop Port Commits","fromName":"Derrick Stolee","fromEmail":"stolee@gmail.com","sentAt":"2018-12-27T12:12:53Z","receivedAt":"2018-12-27T12:12:57Z","isPatch":true,"sender":{"key":"stolee@gmail.com","avatar":"https://avatars.githubusercontent.com/u/570044?v=4"},"body":"On 12/26/2018 6:05 PM, randall.s.becker@rogers.com wrote:\n> From: \"Randall S. Becker\" <rsbecker@nexbridge.com>\n>\n> This set of patches is a distilled version of the minimal\n> set of changes to git that will allow it to run as client\n> and server on HPE NonStop NSE and NSX systems. NSR systems\n> are no longer under support so references to them have\n> been removed. Each patch in this set is independent but\n> required for correctness.\n>\n> Randall 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\nThese patches look correct to me. Just one question on patch 3 \n(git-compat-util.h: add FLOSS headers for HPE NonStop).\n\nI'm not able to comment on patch 2 (config.mak.uname: support for modern \nHPE NonStop config.), but it looks to be wrapped in a platform-specific \n'if', so should be fine if you are happy with it.\n\nThanks,\n\n-Stolee\n\n"},{"id":"365841","messageId":"000001d49dfc$89cadd80$9d609880$@nexbridge.com","threadId":"50108","inReplyTo":"5712b2bf-8a90-42d7-9159-261dd990eb66@gmail.com","subject":"RE: [PATCH v1 3/4] git-compat-util.h: add FLOSS headers for HPE NonStop","fromName":"Randall S. Becker","fromEmail":"rsbecker@nexbridge.com","sentAt":"2018-12-27T15:55:01Z","receivedAt":"2018-12-27T15:55:15Z","isPatch":true,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"On December 27, 2018 7:10, Derrick Stolee wrote:\n> On 12/26/2018 6:05 PM, randall.s.becker@rogers.com wrote:\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> [snip]\n> > +#if ! defined NSIG\n> \n> Why didn't you use \"#ifndef\" here?\n> \n> Taking a look at the file, I see both \"#ifdef\" and \"#if defined\" but no \"#if !\n> defined\".\n\nI'm good with revising as follows and removing the irrelevant lines (stay tuned):\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\nCheers,\nRandall\n\n"},{"id":"365850","messageId":"000101d49dfd$7250ed60$56f2c820$@nexbridge.com","threadId":"50108","inReplyTo":"efa03ee9-b84f-5221-d811-1ccda9132007@gmail.com","subject":"RE: [PATCH v1 0/4] HPE NonStop Port Commits","fromName":"Randall S. Becker","fromEmail":"rsbecker@nexbridge.com","sentAt":"2018-12-27T16:01:31Z","receivedAt":"2018-12-27T16:01:42Z","isPatch":true,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"On December 27, 2018 7:13, Derrick Stolee:\n> On 12/26/2018 6:05 PM, randall.s.becker@rogers.com wrote:\n> > From: \"Randall S. Becker\" <rsbecker@nexbridge.com>\n> >\n> > This set of patches is a distilled version of the minimal set of\n> > changes to git that will allow it to run as client and server on HPE\n> > NonStop NSE and NSX systems. NSR systems are no longer under support\n> > so references to them have been removed. Each patch in this set is\n> > independent but required for correctness.\n> >\n> > Randall 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> These patches look correct to me. Just one question on patch 3\n> (git-compat-util.h: add FLOSS headers for HPE NonStop).\n> \n> I'm not able to comment on patch 2 (config.mak.uname: support for modern\n> HPE NonStop config.), but it looks to be wrapped in a platform-specific 'if',\n> so should be fine if you are happy with it.\n\nThanks! Please go for it, with v2 3/4 that should be available now. This will radically simplify our life on maintaining the port.\n\nKind Regards,\nRandall et. Cohorts who know who they are.\n\n\n"},{"id":"365870","messageId":"CAPig+cQ4p8kgAWji3r6WnudZdT4TOG15s1ip6p5SXmTec25mPw@mail.gmail.com","threadId":"50108","inReplyTo":"20181226230523.16572-3-randall.s.becker@rogers.com","subject":"Re: [PATCH v1 2/4] config.mak.uname: support for modern HPE NonStop config.","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2018-12-27T17:02:32Z","receivedAt":"2018-12-27T17:02:46Z","isPatch":true,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On Wed, Dec 26, 2018 at 6:05 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> Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>\n> ---\n> diff --git a/config.mak.uname b/config.mak.uname\n> @@ -441,26 +441,45 @@ ifeq ($(uname_S),NONSTOP_KERNEL)\n>         # Our's are in ${prefix}/bin (perl might also be in /usr/bin/perl).\n> -       PERL_PATH = ${prefix}/bin/perl\n> -       PYTHON_PATH = ${prefix}/bin/python\n> +       PERL_PATH = /usr/bin/perl\n> +       PYTHON_PATH = /usr/bin/python\n\nIs the in-code comment about ${prefix} still applicable after this change?\n\n> +       # The current /usr/coreutils/rm at lowest support level does not work\n> +       # with the git test structure. Default to the older rm.\n> +       RM = /bin/rm -f\n\nThis comment would be far more helpful if it explained in what way\n'rm' actually fails with the test suite. Without that information, the\ncomment is effectively useless.\n\n>         # As detected by './configure'.\n>         # Missdetected, hence commented out, see below.\n>         #NO_CURL = YesPlease\n>         # Added manually, see above.\n> +       # Missdetected, hence commented out, see below.\n> +       #NO_CURL = YesPlease\n> +       # Added manually, see above.\n\nThese added lines are just duplicating the existing line immediately above.\n\n> +       # Not detected by ./configure. Add manually.\n> +       NEEDS_SSL_WITH_CURL = YesPlease\n> +       NEEDS_CRYPTO_WITH_SSL = YesPlease\n> +       HAVE_DEV_TTY = YesPlease\n\nI find these comments about 'configure' \"misdetecting\" or \"not\ndetecting\" features confusing. The point of config.mak.uname is to\nprovide sane defaults for people building without using the\n'configure' script, so it feels weird to be talking about 'configure'\nhere. Also, what does it mean to say that 'configure' \"misdetects\"?\nDoes that mean that it fails to write assignments such as \"NO_CURL =\nYesPlease\" to config.autogen or does it mean that it writes incorrect\nassignments to that file?\n\n> @@ -470,8 +489,13 @@ ifeq ($(uname_S),NONSTOP_KERNEL)\n> +       ifdef NO_PTHREADS\n> +       else # WIP, use of Posix User Threads is planned but not working yet\n> +               PTHREAD_CFLAGS = -D_PUT_MODEL_ -I/usr/include\n> +               PTHREAD_LIBS = -lput\n> +       endif\n\nWhy not a simpler 'ifndef'?\n"},{"id":"365872","messageId":"000601d49e0b$e11d7520$a3585f60$@rogers.com","threadId":"50108","inReplyTo":"CAPig+cQ4p8kgAWji3r6WnudZdT4TOG15s1ip6p5SXmTec25mPw@mail.gmail.com","subject":"RE: [PATCH v1 2/4] config.mak.uname: support for modern HPE NonStop config.","fromName":"Randall S. Becker","fromEmail":"randall.s.becker@rogers.com","sentAt":"2018-12-27T17:44:54Z","receivedAt":"2018-12-27T17:45:00Z","isPatch":true,"sender":{"key":"randall.s.becker@rogers.com","avatar":null},"body":"On December 27, 2018 12:03, Eric Sunshine wrote:\n> On Wed, Dec 26, 2018 at 6:05 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> > Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>\n> > ---\n> > diff --git a/config.mak.uname b/config.mak.uname @@ -441,26 +441,45\n> @@\n> > ifeq ($(uname_S),NONSTOP_KERNEL)\n> >         # Our's are in ${prefix}/bin (perl might also be in /usr/bin/perl).\n> > -       PERL_PATH = ${prefix}/bin/perl\n> > -       PYTHON_PATH = ${prefix}/bin/python\n> > +       PERL_PATH = /usr/bin/perl\n> > +       PYTHON_PATH = /usr/bin/python\n> \n> Is the in-code comment about ${prefix} still applicable after this change?\n\nThe ${prefix} is not applicable on this platform for perl and python. Those locations must be in /usr/bin and are managed by the Operating System vendor not by customers. The change is wrapped in an IF so is only applicable to NonStop.\n> \n> > +       # The current /usr/coreutils/rm at lowest support level does not work\n> > +       # with the git test structure. Default to the older rm.\n> > +       RM = /bin/rm -f\n> \n> This comment would be far more helpful if it explained in what way 'rm'\n> actually fails with the test suite. Without that information, the comment is\n> effectively useless.\n\nThere is a temporary failure in the vendor supplied rm. The cause we never disclosed to my team. Honestly, it created a large amount of angst that should be gone but there are still old OS versions that have this issue. This is as much as we know.\n\n> \n> >         # As detected by './configure'.\n> >         # Missdetected, hence commented out, see below.\n> >         #NO_CURL = YesPlease\n> >         # Added manually, see above.\n> > +       # Missdetected, hence commented out, see below.\n> > +       #NO_CURL = YesPlease\n> > +       # Added manually, see above.\n> \n> These added lines are just duplicating the existing line immediately above. That's weird. I'll fix it. Thanks for the catch.\n> \n> > +       # Not detected by ./configure. Add manually.\n> > +       NEEDS_SSL_WITH_CURL = YesPlease\n> > +       NEEDS_CRYPTO_WITH_SSL = YesPlease\n> > +       HAVE_DEV_TTY = YesPlease\n> \n> I find these comments about 'configure' \"misdetecting\" or \"not detecting\"\n> features confusing. The point of config.mak.uname is to provide sane\n> defaults for people building without using the 'configure' script, so it feels\n> weird to be talking about 'configure'\n> here. Also, what does it mean to say that 'configure' \"misdetects\"?\n> Does that mean that it fails to write assignments such as \"NO_CURL =\n> YesPlease\" to config.autogen or does it mean that it writes incorrect\n> assignments to that file?\n\nThis came from another team. We can't currently use config.autogen anyway on the platform - this came from the prior attempt at porting. By misdetect I mean just that, however. We do not get good values.\n> \n> > @@ -470,8 +489,13 @@ ifeq ($(uname_S),NONSTOP_KERNEL)\n> > +       ifdef NO_PTHREADS\n> > +       else # WIP, use of Posix User Threads is planned but not working yet\n> > +               PTHREAD_CFLAGS = -D_PUT_MODEL_ -I/usr/include\n> > +               PTHREAD_LIBS = -lput\n> > +       endif\n> \n> Why not a simpler 'ifndef'?\n\nAnother team is current working on the PTHREAD implementation and wanted this. I think what happened was that we have non-pthread requirements under development. I can remove this.\n\n"},{"id":"365918","messageId":"xmqqk1jto1jb.fsf@gitster-ct.c.googlers.com","threadId":"50108","inReplyTo":"20181226230523.16572-2-randall.s.becker@rogers.com","subject":"Re: [PATCH v1 1/4] transport-helper: use xread instead of read","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2018-12-28T20:10:32Z","receivedAt":"2018-12-28T20:10:37Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"randall.s.becker@rogers.com writes:\n\n> From: \"Randall S. Becker\" <rsbecker@nexbridge.com>\n>\n> This fix was needed on HPE NonStop NSE and NSX where SSIZE_MAX is less than\n> BUFFERSIZE resulting in EINVAL. The call to read in transport-helper.c\n> was the only place outside of wrapper.c where it is used instead of xread.\n>\n> Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>\n> ---\n>  transport-helper.c | 2 +-\n>  1 file changed, 1 insertion(+), 1 deletion(-)\n>\n> diff --git a/transport-helper.c b/transport-helper.c\n> index bf225c698f..a290695a12 100644\n> --- a/transport-helper.c\n> +++ b/transport-helper.c\n> @@ -1225,7 +1225,7 @@ 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> +\tbytes = xread(t->src, t->buf + t->bufuse, BUFFERSIZE - t->bufuse);\n>  \tif (bytes < 0 && errno != EWOULDBLOCK && errno != EAGAIN &&\n>  \t\terrno != EINTR) {\n>  \t\terror_errno(_(\"read(%s) failed\"), t->src_name);\n\nAs Peff pointed out in the earlier round of the same patch,\nreplacing read() with xread() here will affect what errno's can be\npossible after the function returns.  The checks affected by this\nchange must also be updated, either in the same patch, or a\nfollow-up patch in the same series.  Otherwise we _will_ forget to\nclean them up.\n\n\n\n"},{"id":"365926","messageId":"xmqqa7kpmmtj.fsf@gitster-ct.c.googlers.com","threadId":"50108","inReplyTo":"000601d49e0b$e11d7520$a3585f60$@rogers.com","subject":"Re: [PATCH v1 2/4] config.mak.uname: support for modern HPE NonStop config.","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2018-12-28T20:07:09Z","receivedAt":"2018-12-28T20:13:50Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Randall S. Becker\" <randall.s.becker@rogers.com> writes:\n\n> On December 27, 2018 12:03, Eric Sunshine wrote:\n>> On Wed, Dec 26, 2018 at 6:05 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>> > Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>\n>> > ---\n>> > diff --git a/config.mak.uname b/config.mak.uname @@ -441,26 +441,45\n>> @@\n>> > ifeq ($(uname_S),NONSTOP_KERNEL)\n>> >         # Our's are in ${prefix}/bin (perl might also be in /usr/bin/perl).\n>> > -       PERL_PATH = ${prefix}/bin/perl\n>> > -       PYTHON_PATH = ${prefix}/bin/python\n>> > +       PERL_PATH = /usr/bin/perl\n>> > +       PYTHON_PATH = /usr/bin/python\n>> \n>> Is the in-code comment about ${prefix} still applicable after this change?\n>\n> The ${prefix} is not applicable on this platform for perl and\n> python. Those locations must be in /usr/bin and are managed by the\n> Operating System vendor not by customers. The change is wrapped in\n> an IF so is only applicable to NonStop.\n\nSo the answer is \"Our's are in ${prefix}/bin...\" is no longer\ncorrect?  If so, this patch must remove that stale comment at the\nsame time, no?\n"},{"id":"365929","messageId":"000f01d49eec$973d8990$c5b89cb0$@nexbridge.com","threadId":"50108","inReplyTo":"xmqqa7kpmmtj.fsf@gitster-ct.c.googlers.com","subject":"RE: [PATCH v1 2/4] config.mak.uname: support for modern HPE NonStop config.","fromName":"Randall S. Becker","fromEmail":"rsbecker@nexbridge.com","sentAt":"2018-12-28T20:33:23Z","receivedAt":"2018-12-28T20:33:36Z","isPatch":true,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"On December 28, 2018 15:07, Junio C Hamano\n> \"Randall S. Becker\" <randall.s.becker@rogers.com> writes:\n> \n> > On December 27, 2018 12:03, Eric Sunshine wrote:\n> >> On Wed, Dec 26, 2018 at 6:05 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> >> > Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>\n> >> > ---\n> >> > diff --git a/config.mak.uname b/config.mak.uname @@ -441,26\n> +441,45\n> >> @@\n> >> > ifeq ($(uname_S),NONSTOP_KERNEL)\n> >> >         # Our's are in ${prefix}/bin (perl might also be in\n/usr/bin/perl).\n> >> > -       PERL_PATH = ${prefix}/bin/perl\n> >> > -       PYTHON_PATH = ${prefix}/bin/python\n> >> > +       PERL_PATH = /usr/bin/perl\n> >> > +       PYTHON_PATH = /usr/bin/python\n> >>\n> >> Is the in-code comment about ${prefix} still applicable after this\nchange?\n> >\n> > The ${prefix} is not applicable on this platform for perl and python.\n> > Those locations must be in /usr/bin and are managed by the Operating\n> > System vendor not by customers. The change is wrapped in an IF so is\n> > only applicable to NonStop.\n> \n> So the answer is \"Our's are in ${prefix}/bin...\" is no longer correct?  If\nso, this\n> patch must remove that stale comment at the same time, no?\n\nYessir. Fixed at v3 (now at v4).\n\n"},{"id":"365931","messageId":"001001d49eed$5c9df300$15d9d900$@nexbridge.com","threadId":"50108","inReplyTo":"xmqqk1jto1jb.fsf@gitster-ct.c.googlers.com","subject":"RE: [PATCH v1 1/4] transport-helper: use xread instead of read","fromName":"Randall S. Becker","fromEmail":"rsbecker@nexbridge.com","sentAt":"2018-12-28T20:38:54Z","receivedAt":"2018-12-28T20:39:05Z","isPatch":true,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"On December 28, 2018 15:11,  Junio C Hamano wrote:\n> randall.s.becker@rogers.com writes:\n> \n> > From: \"Randall S. Becker\" <rsbecker@nexbridge.com>\n> >\n> > This fix was needed on HPE NonStop NSE and NSX where SSIZE_MAX is less\n> > than BUFFERSIZE resulting in EINVAL. The call to read in\n> > transport-helper.c was the only place outside of wrapper.c where it is\nused\n> instead of xread.\n> >\n> > Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>\n> > ---\n> >  transport-helper.c | 2 +-\n> >  1 file changed, 1 insertion(+), 1 deletion(-)\n> >\n> > diff --git a/transport-helper.c b/transport-helper.c index\n> > bf225c698f..a290695a12 100644\n> > --- a/transport-helper.c\n> > +++ b/transport-helper.c\n> > @@ -1225,7 +1225,7 @@ static int udt_do_read(struct\n> 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> > +\tbytes = xread(t->src, t->buf + t->bufuse, BUFFERSIZE - t->bufuse);\n> >  \tif (bytes < 0 && errno != EWOULDBLOCK && errno != EAGAIN &&\n> >  \t\terrno != EINTR) {\n> >  \t\terror_errno(_(\"read(%s) failed\"), t->src_name);\n> \n> As Peff pointed out in the earlier round of the same patch, replacing\nread()\n> with xread() here will affect what errno's can be possible after the\nfunction\n> returns.  The checks affected by this change must also be updated, either\nin\n> the same patch, or a follow-up patch in the same series.  Otherwise we\n> _will_ forget to clean them up.\n\nIf I read the xread code correctly, the change would be to leave EINTR and\nremove the other two conditions. Correct?\n\n"}]}