Re: [PATCH 1/1] Add pthread support in QNX. Do not declare NO_ macros if they can be autodetected.

Subsystems: the rest

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: [PATCH 1/1] Add pthread support in QNX. Do not declare NO_ macros if they can be autodetected.

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:56:15

Mike Gorchak [off-list ref] writes:
Add pthread support in QNX. Do not declare NO_ macros if they can be
autodetected.

From: Mike Gorchak <redacted>
Signed-off-by: Mike Gorchak <redacted>
One procedural nit.  Please drop that "From:" immediately before
S-o-b: from future submissions (I'll remove it locally for this
patch and others you already posted when I apply, so this alone is
not a reason to resend them).  If you are forwarding somebody else's
patch, you would want "From:" in body, but the correct place to do
so is before everything else, i.e.

	... your e-mail headers ...
        From: Mike Gorchak [off-list ref]
        Subject: [PATCH] title of the patch

        ... your e-mail body ...
	From: A U Thor [off-list ref]

	The first line of the commit log message and
        the second line of it.

	Signed-off-by: A U Thor [off-list ref]
        Signed-off-by: Mike Gorchak [off-list ref]

Also, please leave the "autodetection" out.  If it is common to have
strcasestr (or any other) on a newer QNX, then not defining the
symbol NO_STRCASESTR in this file may still be the right thing to
do, but the justification for such a change should not be because we
rely on "autodetection".  The defaults given in config.mak.uname is
primarily for people who do not use the optional ./configure script,
so pick the default to help the most common configuration for the
platform.

I'd rewrite the patch like the attached, and tentatively queue the
patch to 'pu', but I do not use or have access to QNX myself, so you
may have to adjust the default set of symbols and the log message
and in such a case, please do re-submit a fixed version.

Specifically, I do not know if "... and others are also supported"
is universally true with QNX 6; if not, we need to define NO_* for
them to help people who build without using the ./configure script.

Thanks.

-- >8 --
From: Mike Gorchak <redacted>
Date: Mon, 25 Feb 2013 10:39:27 +0200
Subject: [PATCH] QNX: newer QNX 6.x.x is not so crippled

The initial port to QNX declared that the platform does not have
support for pthreads, getpagesize, strcasestr, mkstemps, mkdtemp,
strlcpy, and iconv, but QNX 6.x.x does support these.

On the other hand, older QNX lack gettext support, so define
NO_GETTEXT for them.

Also newer QNX do not need to link to any special library to enable
pthreads; define PTHREAD_LIBS to an empty string.

Signed-off-by: Mike Gorchak <redacted>
Signed-off-by: Junio C Hamano <redacted>
---
 config.mak.uname | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)
diff --git a/config.mak.uname b/config.mak.uname
index 8743a6d..ce2832b 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;
+	# getpagesize and others are also supported.
+	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
+		NO_STRLCPY = YesPlease
+		NO_ICONV = YesPlease
+		NO_GETTEXT = YesPlease
+	endif
 endif
-- 
1.8.2.rc0.167.gd8ba4de

Re: [PATCH 1/1] Add pthread support in QNX. Do not declare NO_ macros if they can be autodetected.

From: Mike Gorchak <hidden>
Date: 2016-06-15 22:56:15

Also, please leave the "autodetection" out.  If it is common to have
strcasestr (or any other) on a newer QNX, then not defining the
symbol NO_STRCASESTR in this file may still be the right thing to
do, but the justification for such a change should not be because we
rely on "autodetection".  The defaults given in config.mak.uname is
primarily for people who do not use the optional ./configure script,
so pick the default to help the most common configuration for the
platform.
I see. I thought configure is the only legal way to build the git and
config.mak.uname is used to override settings produced by configure.
But it works vice versa configure settings override config.mak.uname
settings. Please do not commit this patch. This patch brokes QNX 6.3.2
build.
I'd rewrite the patch like the attached, and tentatively queue the
patch to 'pu', but I do not use or have access to QNX myself, so you
may have to adjust the default set of symbols and the log message
and in such a case, please do re-submit a fixed version.
I will re-do the patch.
Specifically, I do not know if "... and others are also supported"
is universally true with QNX 6; if not, we need to define NO_* for
them to help people who build without using the ./configure script.
Ok.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help