git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH v1 0/4] HPE NonStop Port Commits
@ 2018-12-26 23:05 randall.s.becker
  2018-12-26 23:05 ` [PATCH v1 1/4] transport-helper: use xread instead of read randall.s.becker
                   ` (4 more replies)
  0 siblings, 5 replies; 15+ messages in thread
From: randall.s.becker @ 2018-12-26 23:05 UTC (permalink / raw)
  To: git; +Cc: Randall S. Becker

From: "Randall S. Becker" <rsbecker@nexbridge.com>

This set of patches is a distilled version of the minimal
set of changes to git that will allow it to run as client
and server on HPE NonStop NSE and NSX systems. NSR systems
are no longer under support so references to them have
been removed. Each patch in this set is independent but
required for correctness.

Randall S. Becker (4):
  transport-helper: use xread instead of read
  config.mak.uname: support for modern HPE NonStop config.
  git-compat-util.h: add FLOSS headers for HPE NonStop
  compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStop

 compat/regex/regcomp.c |  8 ++++++++
 config.mak.uname       | 34 +++++++++++++++++++++++++++++-----
 git-compat-util.h      | 15 +++++++++++++++
 transport-helper.c     |  2 +-
 4 files changed, 53 insertions(+), 6 deletions(-)

-- 
2.17.0.10.gb132f7033


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH v1 1/4] transport-helper: use xread instead of read
  2018-12-26 23:05 [PATCH v1 0/4] HPE NonStop Port Commits randall.s.becker
@ 2018-12-26 23:05 ` randall.s.becker
  2018-12-28 20:10   ` Junio C Hamano
  2018-12-26 23:05 ` [PATCH v1 2/4] config.mak.uname: support for modern HPE NonStop config randall.s.becker
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 15+ messages in thread
From: randall.s.becker @ 2018-12-26 23:05 UTC (permalink / raw)
  To: git; +Cc: Randall S. Becker

From: "Randall S. Becker" <rsbecker@nexbridge.com>

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 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/transport-helper.c b/transport-helper.c
index bf225c698f..a290695a12 100644
--- a/transport-helper.c
+++ b/transport-helper.c
@@ -1225,7 +1225,7 @@ 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);
+	bytes = xread(t->src, t->buf + t->bufuse, BUFFERSIZE - t->bufuse);
 	if (bytes < 0 && errno != EWOULDBLOCK && errno != EAGAIN &&
 		errno != EINTR) {
 		error_errno(_("read(%s) failed"), t->src_name);
-- 
2.17.0.10.gb132f7033


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v1 2/4] config.mak.uname: support for modern HPE NonStop config.
  2018-12-26 23:05 [PATCH v1 0/4] HPE NonStop Port Commits randall.s.becker
  2018-12-26 23:05 ` [PATCH v1 1/4] transport-helper: use xread instead of read randall.s.becker
@ 2018-12-26 23:05 ` randall.s.becker
  2018-12-27 17:02   ` Eric Sunshine
  2018-12-26 23:05 ` [PATCH v1 3/4] git-compat-util.h: add FLOSS headers for HPE NonStop randall.s.becker
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 15+ messages in thread
From: randall.s.becker @ 2018-12-26 23:05 UTC (permalink / raw)
  To: git; +Cc: Randall S. Becker

From: "Randall S. Becker" <rsbecker@nexbridge.com>

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. Accounted for this by
providing emulation defines for those versions.

Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>
---
 config.mak.uname | 34 +++++++++++++++++++++++++++++-----
 1 file changed, 29 insertions(+), 5 deletions(-)

diff --git a/config.mak.uname b/config.mak.uname
index 3ee7da0e23..aa4432ac2f 100644
--- a/config.mak.uname
+++ b/config.mak.uname
@@ -441,26 +441,45 @@ 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_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. Default to the older rm.
+	RM = /bin/rm -f
 	# As detected by './configure'.
 	# Missdetected, hence commented out, see below.
 	#NO_CURL = YesPlease
 	# Added manually, see above.
+	# Missdetected, hence commented out, see below.
+	#NO_CURL = YesPlease
+	# Added manually, see above.
+	# Not detected by ./configure. Add manually.
+	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,8 +489,13 @@ 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
+	ifdef NO_PTHREADS
+	else # WIP, use of Posix User Threads is planned but not working yet
+		PTHREAD_CFLAGS = -D_PUT_MODEL_ -I/usr/include
+		PTHREAD_LIBS = -lput
+	endif

 	# Not detected (nor checked for) by './configure'.
 	# We don't have SA_RESTART on NonStop, unfortunalety.
-- 
2.17.0.10.gb132f7033


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v1 3/4] git-compat-util.h: add FLOSS headers for HPE NonStop
  2018-12-26 23:05 [PATCH v1 0/4] HPE NonStop Port Commits randall.s.becker
  2018-12-26 23:05 ` [PATCH v1 1/4] transport-helper: use xread instead of read randall.s.becker
  2018-12-26 23:05 ` [PATCH v1 2/4] config.mak.uname: support for modern HPE NonStop config randall.s.becker
@ 2018-12-26 23:05 ` randall.s.becker
  2018-12-27 12:10   ` Derrick Stolee
  2018-12-26 23:05 ` [PATCH v1 4/4] compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStop randall.s.becker
  2018-12-27 12:12 ` [PATCH v1 0/4] HPE NonStop Port Commits Derrick Stolee
  4 siblings, 1 reply; 15+ messages in thread
From: randall.s.becker @ 2018-12-26 23:05 UTC (permalink / raw)
  To: git; +Cc: Randall S. Becker

From: "Randall S. Becker" <rsbecker@nexbridge.com>

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 | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/git-compat-util.h b/git-compat-util.h
index 09b0102cae..3f615f7ed8 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -397,6 +397,21 @@ static inline char *git_find_last_dir_sep(const char *path)
 #define query_user_email() NULL
 #endif
 
+#ifdef __TANDEM
+#if !defined(_THREAD_SUPPORT_FUNCTIONS) && !defined(_PUT_MODEL_)
+/* #include <floss.h(floss_read,floss_write,floss_fsync,floss_fork)> */
+/* #include <floss.h(floss_fork)> */
+#endif
+#include <floss.h(floss_execl,floss_execlp,floss_execv,floss_execvp)>
+#include <floss.h(floss_getpwuid)>
+#if ! defined 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.17.0.10.gb132f7033


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v1 4/4] compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStop
  2018-12-26 23:05 [PATCH v1 0/4] HPE NonStop Port Commits randall.s.becker
                   ` (2 preceding siblings ...)
  2018-12-26 23:05 ` [PATCH v1 3/4] git-compat-util.h: add FLOSS headers for HPE NonStop randall.s.becker
@ 2018-12-26 23:05 ` randall.s.becker
  2018-12-27 12:12 ` [PATCH v1 0/4] HPE NonStop Port Commits Derrick Stolee
  4 siblings, 0 replies; 15+ messages in thread
From: randall.s.becker @ 2018-12-26 23:05 UTC (permalink / raw)
  To: git; +Cc: Randall S. Becker

From: "Randall S. Becker" <rsbecker@nexbridge.com>

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 51cd60baa3..c0d838834a 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.17.0.10.gb132f7033


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH v1 3/4] git-compat-util.h: add FLOSS headers for HPE NonStop
  2018-12-26 23:05 ` [PATCH v1 3/4] git-compat-util.h: add FLOSS headers for HPE NonStop randall.s.becker
@ 2018-12-27 12:10   ` Derrick Stolee
  2018-12-27 15:55     ` Randall S. Becker
  0 siblings, 1 reply; 15+ messages in thread
From: Derrick Stolee @ 2018-12-27 12:10 UTC (permalink / raw)
  To: randall.s.becker, git; +Cc: Randall S. Becker

On 12/26/2018 6:05 PM, randall.s.becker@rogers.com wrote:
> 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.
[snip]
> +#if ! defined NSIG

Why didn't you use "#ifndef" here?

Taking a look at the file, I see both "#ifdef" and "#if defined" but no 
"#if ! defined".

Thanks,

-Stolee


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v1 0/4] HPE NonStop Port Commits
  2018-12-26 23:05 [PATCH v1 0/4] HPE NonStop Port Commits randall.s.becker
                   ` (3 preceding siblings ...)
  2018-12-26 23:05 ` [PATCH v1 4/4] compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStop randall.s.becker
@ 2018-12-27 12:12 ` Derrick Stolee
  2018-12-27 16:01   ` Randall S. Becker
  4 siblings, 1 reply; 15+ messages in thread
From: Derrick Stolee @ 2018-12-27 12:12 UTC (permalink / raw)
  To: randall.s.becker, git; +Cc: Randall S. Becker

On 12/26/2018 6:05 PM, randall.s.becker@rogers.com wrote:
> From: "Randall S. Becker" <rsbecker@nexbridge.com>
>
> This set of patches is a distilled version of the minimal
> set of changes to git that will allow it to run as client
> and server on HPE NonStop NSE and NSX systems. NSR systems
> are no longer under support so references to them have
> been removed. Each patch in this set is independent but
> required for correctness.
>
> Randall S. Becker (4):
>    transport-helper: use xread instead of read
>    config.mak.uname: support for modern HPE NonStop config.
>    git-compat-util.h: add FLOSS headers for HPE NonStop
>    compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStop

These patches look correct to me. Just one question on patch 3 
(git-compat-util.h: add FLOSS headers for HPE NonStop).

I'm not able to comment on patch 2 (config.mak.uname: support for modern 
HPE NonStop config.), but it looks to be wrapped in a platform-specific 
'if', so should be fine if you are happy with it.

Thanks,

-Stolee


^ permalink raw reply	[flat|nested] 15+ messages in thread

* RE: [PATCH v1 3/4] git-compat-util.h: add FLOSS headers for HPE NonStop
  2018-12-27 12:10   ` Derrick Stolee
@ 2018-12-27 15:55     ` Randall S. Becker
  0 siblings, 0 replies; 15+ messages in thread
From: Randall S. Becker @ 2018-12-27 15:55 UTC (permalink / raw)
  To: 'Derrick Stolee', randall.s.becker, git

On December 27, 2018 7:10, Derrick Stolee wrote:
> On 12/26/2018 6:05 PM, randall.s.becker@rogers.com wrote:
> > 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.
> [snip]
> > +#if ! defined NSIG
> 
> Why didn't you use "#ifndef" here?
> 
> Taking a look at the file, I see both "#ifdef" and "#if defined" but no "#if !
> defined".

I'm good with revising as follows and removing the irrelevant lines (stay tuned):

+#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
+

Cheers,
Randall


^ permalink raw reply	[flat|nested] 15+ messages in thread

* RE: [PATCH v1 0/4] HPE NonStop Port Commits
  2018-12-27 12:12 ` [PATCH v1 0/4] HPE NonStop Port Commits Derrick Stolee
@ 2018-12-27 16:01   ` Randall S. Becker
  0 siblings, 0 replies; 15+ messages in thread
From: Randall S. Becker @ 2018-12-27 16:01 UTC (permalink / raw)
  To: 'Derrick Stolee', randall.s.becker, git

On December 27, 2018 7:13, Derrick Stolee:
> On 12/26/2018 6:05 PM, randall.s.becker@rogers.com wrote:
> > From: "Randall S. Becker" <rsbecker@nexbridge.com>
> >
> > This set of patches is a distilled version of the minimal set of
> > changes to git that will allow it to run as client and server on HPE
> > NonStop NSE and NSX systems. NSR systems are no longer under support
> > so references to them have been removed. Each patch in this set is
> > independent but required for correctness.
> >
> > Randall S. Becker (4):
> >    transport-helper: use xread instead of read
> >    config.mak.uname: support for modern HPE NonStop config.
> >    git-compat-util.h: add FLOSS headers for HPE NonStop
> >    compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStop
> 
> These patches look correct to me. Just one question on patch 3
> (git-compat-util.h: add FLOSS headers for HPE NonStop).
> 
> I'm not able to comment on patch 2 (config.mak.uname: support for modern
> HPE NonStop config.), but it looks to be wrapped in a platform-specific 'if',
> so should be fine if you are happy with it.

Thanks! Please go for it, with v2 3/4 that should be available now. This will radically simplify our life on maintaining the port.

Kind Regards,
Randall et. Cohorts who know who they are.



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v1 2/4] config.mak.uname: support for modern HPE NonStop config.
  2018-12-26 23:05 ` [PATCH v1 2/4] config.mak.uname: support for modern HPE NonStop config randall.s.becker
@ 2018-12-27 17:02   ` Eric Sunshine
  2018-12-27 17:44     ` Randall S. Becker
  0 siblings, 1 reply; 15+ messages in thread
From: Eric Sunshine @ 2018-12-27 17:02 UTC (permalink / raw)
  To: randall.s.becker; +Cc: Git List, Randall S. Becker

On Wed, Dec 26, 2018 at 6:05 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.
> [...]
> Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>
> ---
> diff --git a/config.mak.uname b/config.mak.uname
> @@ -441,26 +441,45 @@ ifeq ($(uname_S),NONSTOP_KERNEL)
>         # 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_PATH = /usr/bin/perl
> +       PYTHON_PATH = /usr/bin/python

Is the in-code comment about ${prefix} still applicable after this change?

> +       # The current /usr/coreutils/rm at lowest support level does not work
> +       # with the git test structure. Default to the older rm.
> +       RM = /bin/rm -f

This comment would be far more helpful if it explained in what way
'rm' actually fails with the test suite. Without that information, the
comment is effectively useless.

>         # As detected by './configure'.
>         # Missdetected, hence commented out, see below.
>         #NO_CURL = YesPlease
>         # Added manually, see above.
> +       # Missdetected, hence commented out, see below.
> +       #NO_CURL = YesPlease
> +       # Added manually, see above.

These added lines are just duplicating the existing line immediately above.

> +       # Not detected by ./configure. Add manually.
> +       NEEDS_SSL_WITH_CURL = YesPlease
> +       NEEDS_CRYPTO_WITH_SSL = YesPlease
> +       HAVE_DEV_TTY = YesPlease

I find these comments about 'configure' "misdetecting" or "not
detecting" features confusing. The point of config.mak.uname is to
provide sane defaults for people building without using the
'configure' script, so it feels weird to be talking about 'configure'
here. Also, what does it mean to say that 'configure' "misdetects"?
Does that mean that it fails to write assignments such as "NO_CURL =
YesPlease" to config.autogen or does it mean that it writes incorrect
assignments to that file?

> @@ -470,8 +489,13 @@ ifeq ($(uname_S),NONSTOP_KERNEL)
> +       ifdef NO_PTHREADS
> +       else # WIP, use of Posix User Threads is planned but not working yet
> +               PTHREAD_CFLAGS = -D_PUT_MODEL_ -I/usr/include
> +               PTHREAD_LIBS = -lput
> +       endif

Why not a simpler 'ifndef'?

^ permalink raw reply	[flat|nested] 15+ messages in thread

* RE: [PATCH v1 2/4] config.mak.uname: support for modern HPE NonStop config.
  2018-12-27 17:02   ` Eric Sunshine
@ 2018-12-27 17:44     ` Randall S. Becker
  2018-12-28 20:07       ` Junio C Hamano
  0 siblings, 1 reply; 15+ messages in thread
From: Randall S. Becker @ 2018-12-27 17:44 UTC (permalink / raw)
  To: 'Eric Sunshine'; +Cc: 'Git List', 'Randall S. Becker'

On December 27, 2018 12:03, Eric Sunshine wrote:
> On Wed, Dec 26, 2018 at 6:05 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.
> > [...]
> > Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>
> > ---
> > diff --git a/config.mak.uname b/config.mak.uname @@ -441,26 +441,45
> @@
> > ifeq ($(uname_S),NONSTOP_KERNEL)
> >         # 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_PATH = /usr/bin/perl
> > +       PYTHON_PATH = /usr/bin/python
> 
> Is the in-code comment about ${prefix} still applicable after this change?

The ${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.
> 
> > +       # The current /usr/coreutils/rm at lowest support level does not work
> > +       # with the git test structure. Default to the older rm.
> > +       RM = /bin/rm -f
> 
> This comment would be far more helpful if it explained in what way 'rm'
> actually fails with the test suite. Without that information, the comment is
> effectively useless.

There 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.

> 
> >         # As detected by './configure'.
> >         # Missdetected, hence commented out, see below.
> >         #NO_CURL = YesPlease
> >         # Added manually, see above.
> > +       # Missdetected, hence commented out, see below.
> > +       #NO_CURL = YesPlease
> > +       # Added manually, see above.
> 
> These added lines are just duplicating the existing line immediately above. That's weird. I'll fix it. Thanks for the catch.
> 
> > +       # Not detected by ./configure. Add manually.
> > +       NEEDS_SSL_WITH_CURL = YesPlease
> > +       NEEDS_CRYPTO_WITH_SSL = YesPlease
> > +       HAVE_DEV_TTY = YesPlease
> 
> I find these comments about 'configure' "misdetecting" or "not detecting"
> features confusing. The point of config.mak.uname is to provide sane
> defaults for people building without using the 'configure' script, so it feels
> weird to be talking about 'configure'
> here. Also, what does it mean to say that 'configure' "misdetects"?
> Does that mean that it fails to write assignments such as "NO_CURL =
> YesPlease" to config.autogen or does it mean that it writes incorrect
> assignments to that file?

This 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.
> 
> > @@ -470,8 +489,13 @@ ifeq ($(uname_S),NONSTOP_KERNEL)
> > +       ifdef NO_PTHREADS
> > +       else # WIP, use of Posix User Threads is planned but not working yet
> > +               PTHREAD_CFLAGS = -D_PUT_MODEL_ -I/usr/include
> > +               PTHREAD_LIBS = -lput
> > +       endif
> 
> Why not a simpler 'ifndef'?

Another 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.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v1 2/4] config.mak.uname: support for modern HPE NonStop config.
  2018-12-27 17:44     ` Randall S. Becker
@ 2018-12-28 20:07       ` Junio C Hamano
  2018-12-28 20:33         ` Randall S. Becker
  0 siblings, 1 reply; 15+ messages in thread
From: Junio C Hamano @ 2018-12-28 20:07 UTC (permalink / raw)
  To: Randall S. Becker
  Cc: 'Eric Sunshine', 'Git List',
	'Randall S. Becker'

"Randall S. Becker" <randall.s.becker@rogers.com> writes:

> On December 27, 2018 12:03, Eric Sunshine wrote:
>> On Wed, Dec 26, 2018 at 6:05 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.
>> > [...]
>> > Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>
>> > ---
>> > diff --git a/config.mak.uname b/config.mak.uname @@ -441,26 +441,45
>> @@
>> > ifeq ($(uname_S),NONSTOP_KERNEL)
>> >         # 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_PATH = /usr/bin/perl
>> > +       PYTHON_PATH = /usr/bin/python
>> 
>> Is the in-code comment about ${prefix} still applicable after this change?
>
> The ${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.

So the answer is "Our's are in ${prefix}/bin..." is no longer
correct?  If so, this patch must remove that stale comment at the
same time, no?

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v1 1/4] transport-helper: use xread instead of read
  2018-12-26 23:05 ` [PATCH v1 1/4] transport-helper: use xread instead of read randall.s.becker
@ 2018-12-28 20:10   ` Junio C Hamano
  2018-12-28 20:38     ` Randall S. Becker
  0 siblings, 1 reply; 15+ messages in thread
From: Junio C Hamano @ 2018-12-28 20:10 UTC (permalink / raw)
  To: randall.s.becker; +Cc: git, Randall S. Becker

randall.s.becker@rogers.com writes:

> From: "Randall S. Becker" <rsbecker@nexbridge.com>
>
> 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 | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/transport-helper.c b/transport-helper.c
> index bf225c698f..a290695a12 100644
> --- a/transport-helper.c
> +++ b/transport-helper.c
> @@ -1225,7 +1225,7 @@ 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);
> +	bytes = xread(t->src, t->buf + t->bufuse, BUFFERSIZE - t->bufuse);
>  	if (bytes < 0 && errno != EWOULDBLOCK && errno != EAGAIN &&
>  		errno != EINTR) {
>  		error_errno(_("read(%s) failed"), t->src_name);

As Peff pointed out in the earlier round of the same patch,
replacing read() with xread() here will affect what errno's can be
possible after the function returns.  The checks affected by this
change must also be updated, either in the same patch, or a
follow-up patch in the same series.  Otherwise we _will_ forget to
clean them up.




^ permalink raw reply	[flat|nested] 15+ messages in thread

* RE: [PATCH v1 2/4] config.mak.uname: support for modern HPE NonStop config.
  2018-12-28 20:07       ` Junio C Hamano
@ 2018-12-28 20:33         ` Randall S. Becker
  0 siblings, 0 replies; 15+ messages in thread
From: Randall S. Becker @ 2018-12-28 20:33 UTC (permalink / raw)
  To: 'Junio C Hamano', 'Randall S. Becker'
  Cc: 'Eric Sunshine', 'Git List'

On December 28, 2018 15:07, Junio C Hamano
> "Randall S. Becker" <randall.s.becker@rogers.com> writes:
> 
> > On December 27, 2018 12:03, Eric Sunshine wrote:
> >> On Wed, Dec 26, 2018 at 6:05 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.
> >> > [...]
> >> > Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>
> >> > ---
> >> > diff --git a/config.mak.uname b/config.mak.uname @@ -441,26
> +441,45
> >> @@
> >> > ifeq ($(uname_S),NONSTOP_KERNEL)
> >> >         # 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_PATH = /usr/bin/perl
> >> > +       PYTHON_PATH = /usr/bin/python
> >>
> >> Is the in-code comment about ${prefix} still applicable after this
change?
> >
> > The ${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.
> 
> So the answer is "Our's are in ${prefix}/bin..." is no longer correct?  If
so, this
> patch must remove that stale comment at the same time, no?

Yessir. Fixed at v3 (now at v4).


^ permalink raw reply	[flat|nested] 15+ messages in thread

* RE: [PATCH v1 1/4] transport-helper: use xread instead of read
  2018-12-28 20:10   ` Junio C Hamano
@ 2018-12-28 20:38     ` Randall S. Becker
  0 siblings, 0 replies; 15+ messages in thread
From: Randall S. Becker @ 2018-12-28 20:38 UTC (permalink / raw)
  To: 'Junio C Hamano', randall.s.becker; +Cc: git

On December 28, 2018 15:11,  Junio C Hamano wrote:
> randall.s.becker@rogers.com writes:
> 
> > From: "Randall S. Becker" <rsbecker@nexbridge.com>
> >
> > 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 | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/transport-helper.c b/transport-helper.c index
> > bf225c698f..a290695a12 100644
> > --- a/transport-helper.c
> > +++ b/transport-helper.c
> > @@ -1225,7 +1225,7 @@ 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);
> > +	bytes = xread(t->src, t->buf + t->bufuse, BUFFERSIZE - t->bufuse);
> >  	if (bytes < 0 && errno != EWOULDBLOCK && errno != EAGAIN &&
> >  		errno != EINTR) {
> >  		error_errno(_("read(%s) failed"), t->src_name);
> 
> As Peff pointed out in the earlier round of the same patch, replacing
read()
> with xread() here will affect what errno's can be possible after the
function
> returns.  The checks affected by this change must also be updated, either
in
> the same patch, or a follow-up patch in the same series.  Otherwise we
> _will_ forget to clean them up.

If I read the xread code correctly, the change would be to leave EINTR and
remove the other two conditions. Correct?


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2018-12-28 20:39 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-26 23:05 [PATCH v1 0/4] HPE NonStop Port Commits randall.s.becker
2018-12-26 23:05 ` [PATCH v1 1/4] transport-helper: use xread instead of read randall.s.becker
2018-12-28 20:10   ` Junio C Hamano
2018-12-28 20:38     ` Randall S. Becker
2018-12-26 23:05 ` [PATCH v1 2/4] config.mak.uname: support for modern HPE NonStop config randall.s.becker
2018-12-27 17:02   ` Eric Sunshine
2018-12-27 17:44     ` Randall S. Becker
2018-12-28 20:07       ` Junio C Hamano
2018-12-28 20:33         ` Randall S. Becker
2018-12-26 23:05 ` [PATCH v1 3/4] git-compat-util.h: add FLOSS headers for HPE NonStop randall.s.becker
2018-12-27 12:10   ` Derrick Stolee
2018-12-27 15:55     ` Randall S. Becker
2018-12-26 23:05 ` [PATCH v1 4/4] compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStop randall.s.becker
2018-12-27 12:12 ` [PATCH v1 0/4] HPE NonStop Port Commits Derrick Stolee
2018-12-27 16:01   ` Randall S. Becker

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).