Our build of ast-ksh.20120911 fails with src/cmd/ksh93/sh/io.c", line
1008: undefined symbol: SOCK_CLOEXEC

I used the patch below to fix the problem, but then ran into the old
bug with shtests: line 307: write to 1 failed [Bad file number].

Now the question is: Is Solaris still going to be supported? Or is
support fading away? I've seen many other opensource projects
abandoning Solaris after Oracle killed Opensolaris...

diff -r -u src/cmd/ksh93/sh/io.c src/cmd/ksh93/sh/io.c
--- src/cmd/ksh93/sh/io.c      2012-09-05 23:53:53.000000000 +0200
+++ src/cmd/ksh93/sh/io.c  2012-09-12 14:06:04.632100936 +0200
@@ -973,13 +973,14 @@
        return(0);
 }

-#ifndef _lib_accept4
-#   define accept4(a,b,c,d)    accept(a,b,c)
-#endif
 #if SHOPT_COSHELL
     int sh_coaccept(Shell_t *shp,int *pv,int out)
     {
+#ifdef _lib_accept4
        int fd = accept4(pv[0],(struct sockaddr*)0,(socklen_t*)0,SOCK_CLOEXEC);
+#else
+       int fd = accept(pv[0],(struct sockaddr*)0,(socklen_t*)0);
+#endif
        sh_close(pv[0]);
        pv[0] = -1;
        if(fd<0)
@@ -1005,7 +1006,11 @@
        int                     r,port=20000;
        struct sockaddr_in      sin;
        socklen_t               slen;
+#ifdef SOCK_CLOEXEC
        if ((pv[out] = socket (AF_INET, SOCK_STREAM|SOCK_CLOEXEC, 0)) < 0)
+#else
+       if ((pv[out] = socket (AF_INET, SOCK_STREAM, 0)) < 0)
+#endif
                errormsg(SH_DICT,ERROR_system(1),e_pipe);
        do
        {

Irek
_______________________________________________
ast-developers mailing list
ast-developers@research.att.com
https://mailman.research.att.com/mailman/listinfo/ast-developers

Reply via email to