Henri Gomez wrote:
While rebuild trunk from mod_jk I got an error on iSeries about
missing mktemp in iSeries.

   if (!jk_shmem.lockname) {
       if (shm_lock_reopen) {
           int i;
           jk_shmem.fd_lock = -1;
           mode_t mask = umask(0);
           for (i = 0; i < 8; i++) {
               strcpy(flkname, "/tmp/jkshmlock.XXXXXX");
               if (mktemp(flkname)) {
                   jk_shmem.fd_lock = open(flkname,
O_RDWR|O_CREAT|O_TRUNC, 0666);
                   if (jk_shmem.fd_lock >= 0)
                       break;
               }
           }
           umask(mask);
       }


How could we avoid this call ?

Wrong question. mktemp has been in UNIX for a dog's age and in POSIX/SUS for a decade or more. See http://www.opengroup.org/onlinepubs/007908799/xsh/mktemp.html which is the 1997 version of the SUS.

The general approach to making C programs portable to broken systems that are missing libraries is to provide a default version, usually wrapped in an #ifdef.

IANA(ASF)L but we should be able to incorporate the mktemp implementation from anything BSD licensed, like OpenBSD, for this purpose.

Ian

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to