Merge branch 'rb/hpe'
Portability updates for the HPE NonStop platform. * rb/hpe: compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStop git-compat-util.h: add FLOSS headers for HPE NonStop config.mak.uname: support for modern HPE NonStop config. transport-helper: drop read/write errno checks transport-helper: use xread instead of read
This commit is contained in:
commit
9f2eba2b90
@ -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,
|
||||
|
@ -442,26 +442,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
|
||||
@ -471,7 +488,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'.
|
||||
|
@ -398,6 +398,19 @@ 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
|
||||
|
@ -1226,9 +1226,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) {
|
||||
error_errno(_("read(%s) failed"), t->src_name);
|
||||
return -1;
|
||||
} else if (bytes == 0) {
|
||||
@ -1255,7 +1254,7 @@ static int udt_do_write(struct unidirectional_transfer *t)
|
||||
|
||||
transfer_debug("%s is writable", t->dest_name);
|
||||
bytes = xwrite(t->dest, t->buf, t->bufuse);
|
||||
if (bytes < 0 && errno != EWOULDBLOCK) {
|
||||
if (bytes < 0) {
|
||||
error_errno(_("write(%s) failed"), t->dest_name);
|
||||
return -1;
|
||||
} else if (bytes > 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user