Here is a small patch with QNX build improvements:
1) Rename tar.h to tar_git.h. Latest QNX versions have system tar.h
header according to
http://pubs.opengroup.org/onlinepubs/009696699/basedefs/tar.h.html ,
to avoid inclusion of another tar.h, original header was renamed.
2) Rename fnmatch.h to fnmatch_gnu.h and fnmatch.c to fnmatch_gnu.c to
avoid inclusion of system fnmatch.h header in case if -I/usr/include
path is specified before -Icompat/fnmatch. Which is common situation.
3) pager.c - default "less" invocation flags were changed for QNX 6,x
platform, since QNX has incompatible with GNU coreutils version of
"less" utility.
4) config.mak.uname - a) do not override mkdtemp/mkstemps/strcasestr
detection, since newer QNX version could contain such functions. Let
to configure decide what is present in the system. b) getpagesize()
function is existing under QNX, c) QNX has pthread functions in the
libc, so do not define NO_PTHREAD macro.
diff --git a/Makefile b/Makefile
index ba8e243..f6dd2eb 100644
--- a/Makefile
+++ b/Makefile
@@ -726,7 +726,7 @@ LIB_H += streaming.h
LIB_H += string-list.h
LIB_H += submodule.h
LIB_H += tag.h
-LIB_H += tar.h
+LIB_H += tar_git.h
LIB_H += thread-utils.h
LIB_H += transport.h
LIB_H += tree-walk.h
@@ -1256,12 +1256,12 @@ endif
ifdef NO_FNMATCH
COMPAT_CFLAGS += -Icompat/fnmatch
COMPAT_CFLAGS += -DNO_FNMATCH
- COMPAT_OBJS += compat/fnmatch/fnmatch.o
+ COMPAT_OBJS += compat/fnmatch/fnmatch_gnu.o
else
ifdef NO_FNMATCH_CASEFOLD
COMPAT_CFLAGS += -Icompat/fnmatch
COMPAT_CFLAGS += -DNO_FNMATCH_CASEFOLD
- COMPAT_OBJS += compat/fnmatch/fnmatch.o
+ COMPAT_OBJS += compat/fnmatch/fnmatch_gnu.o
endif
endif
ifdef USE_WILDMATCH
diff --git a/archive-tar.c b/archive-tar.c
index 719b629..8e24336 100644
--- a/archive-tar.c
+++ b/archive-tar.c
@@ -2,7 +2,7 @@
* Copyright (c) 2005, 2006 Rene Scharfe
*/
#include "cache.h"
-#include "tar.h"
+#include "tar_git.h"
#include "archive.h"
#include "streaming.h"
#include "run-command.h"
diff --git a/builtin/tar-tree.c b/builtin/tar-tree.c
index 3f1e701..b0e4551 100644
--- a/builtin/tar-tree.c
+++ b/builtin/tar-tree.c
@@ -3,7 +3,7 @@
*/
#include "cache.h"
#include "commit.h"
-#include "tar.h"
+#include "tar_git.h"
#include "builtin.h"
#include "quote.h"
diff --git a/compat/fnmatch/fnmatch.c b/compat/fnmatch/fnmatch_gnu.c
similarity index 99%
rename from compat/fnmatch/fnmatch.c
rename to compat/fnmatch/fnmatch_gnu.c
index 5ef0685..f9a5e5b 100644
--- a/compat/fnmatch/fnmatch.c
+++ b/compat/fnmatch/fnmatch_gnu.c
@@ -26,7 +26,7 @@
#endif
#include <errno.h>
-#include <fnmatch.h>
+#include <fnmatch_gnu.h>
#include <ctype.h>
#if HAVE_STRING_H || defined _LIBC
diff --git a/compat/fnmatch/fnmatch.h b/compat/fnmatch/fnmatch_gnu.h
similarity index 100%
rename from compat/fnmatch/fnmatch.h
rename to compat/fnmatch/fnmatch_gnu.h
diff --git a/config.mak.uname b/config.mak.uname
index 8743a6d..2d42ffe 100644
--- a/config.mak.uname
+++ b/config.mak.uname
@@ -527,14 +527,21 @@ ifeq ($(uname_S),QNX)
HAVE_STRINGS_H = YesPlease
NEEDS_SOCKET = YesPlease
NO_FNMATCH_CASEFOLD = YesPlease
- NO_GETPAGESIZE = YesPlease
NO_ICONV = YesPlease
NO_MEMMEM = YesPlease
- NO_MKDTEMP = YesPlease
- NO_MKSTEMPS = YesPlease
NO_NSEC = YesPlease
- NO_PTHREADS = YesPlease
NO_R_TO_GCC_LINKER = YesPlease
- NO_STRCASESTR = YesPlease
NO_STRLCPY = YesPlease
+ # All QNX 6.x versions have pthread functions in libc
+ # and getpagesize. Leave mkstemps/mkdtemp/strcasestr for
+ # autodetection.
+ ifeq ($(shell expr "$(uname_R)" : '6\.[0-9]\.[0-9]'),5)
+ PTHREAD_LIBS = ""
+ else
+ NO_PTHREADS = YesPlease
+ NO_GETPAGESIZE = YesPlease
+ NO_STRCASESTR = YesPlease
+ NO_MKSTEMPS = YesPlease
+ NO_MKDTEMP = YesPlease
+ endif
endif
diff --git a/git-compat-util.h b/git-compat-util.h
index b7eaaa9..f59d696 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -113,7 +113,11 @@
#include <time.h>
#include <signal.h>
#ifndef USE_WILDMATCH
+#if defined(NO_FNMATCH) || defined(NO_FNMATCH_CASEFOLD)
+#include <fnmatch_gnu.h>
+#else
#include <fnmatch.h>
+#endif /* NO_FNMATCH */
#endif
#include <assert.h>
#include <regex.h>
diff --git a/pager.c b/pager.c
index c1ecf65..bed627a 100644
--- a/pager.c
+++ b/pager.c
@@ -81,7 +81,11 @@ void setup_pager(void)
pager_process.argv = pager_argv;
pager_process.in = -1;
if (!getenv("LESS")) {
+ #if !defined(__QNXNTO__)
static const char *env[] = { "LESS=FRSX", NULL };
+ #else
+ static const char *env[] = { "LESS=rS", NULL };
+ #endif /* __QNXNTO__ */
pager_process.env = env;
}
if (start_command(&pager_process))diff --git a/tar.h b/tar_git.h
similarity index 100%
rename from tar.h
rename to tar_git.h