[RFH] Solaris portability

Subsystems: kernel build + files below scripts/ (unless maintained elsewhere), the rest

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

[RFH] Solaris portability

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

Guido Ostkamp [off-list ref] writes:
On Thu, 15 Nov 2007, Junio C Hamano wrote:
quoted
Are there problems with the implementation in compat/ directory, we
ship specifically to help platforms without mkdtemp()?
I checked again and the answer is 'yes'. The reason is trivial - for
Solaris 10 the workaround is not activated and my version of Solaris
10 (Sparc) has no mkdtemp() in libc.so.
Thanks.

This makes me wonder if treating it just like strcasestr() might
be simpler.  Could folks with access to Solaris boxes of
different vintages please see if the attached patch makes sense?

Can we also unify UNSETENV, SETENV, C99_FORMAT and STRTOUMAX, by
the way? 

diff --git a/Makefile b/Makefile
index e830bc7..cabde81 100644
--- a/Makefile
+++ b/Makefile
@@ -412,26 +412,25 @@ endif
 ifeq ($(uname_S),SunOS)
 	NEEDS_SOCKET = YesPlease
 	NEEDS_NSL = YesPlease
 	SHELL_PATH = /bin/bash
 	NO_STRCASESTR = YesPlease
 	NO_MEMMEM = YesPlease
 	NO_HSTRERROR = YesPlease
+	NO_MKDTEMP = YesPlease
 	ifeq ($(uname_R),5.8)
 		NEEDS_LIBICONV = YesPlease
 		NO_UNSETENV = YesPlease
 		NO_SETENV = YesPlease
-		NO_MKDTEMP = YesPlease
 		NO_C99_FORMAT = YesPlease
 		NO_STRTOUMAX = YesPlease
 	endif
 	ifeq ($(uname_R),5.9)
 		NO_UNSETENV = YesPlease
 		NO_SETENV = YesPlease
-		NO_MKDTEMP = YesPlease
 		NO_C99_FORMAT = YesPlease
 		NO_STRTOUMAX = YesPlease
 	endif
 	INSTALL = ginstall
 	TAR = gtar
 	BASIC_CFLAGS += -D__EXTENSIONS__
 endif

Re: [RFH] Solaris portability

From: Guido Ostkamp <hidden>
Date: 2016-06-15 22:43:52

On Fri, 16 Nov 2007, Junio C Hamano wrote:
This makes me wonder if treating it just like strcasestr() might be 
simpler.  Could folks with access to Solaris boxes of different vintages 
please see if the attached patch makes sense?
I think the patch makes sense as neither Solaris 8, 9 nor 10 supports 
mkdtemp().
Can we also unify UNSETENV, SETENV, C99_FORMAT and STRTOUMAX, by the 
way?
No.

I've just checked on our Solaris Sparc systems, and found that the 
C-library provides unsetenv(), setenv() and strtoumax() beginning with 
Solaris 10; also the 'man sprintf' page mentions the 'z' and 't' 
specifiers for printf (which is what is behind C99_FORMAT) only beginning 
with Solaris 10.

So workarounds are needed for all 4 cases for Solaris 8 and 9 but not 10.

Regards

Guido
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help