Re: Re: PHP 3.0.16 tarball

From: Date: Fri, 07 Apr 2000 10:26:24 +0000
Subject: Re: Re: PHP 3.0.16 tarball
References: 1 2 3  Groups: php.dev 
Request: Send a blank email to php-dev+get-17696@lists.php.net to get a copy of this message
Sascha Schumann wrote: > On Mon, Apr 03, 2000 at 06:49:08PM +0400, Kirill Maximov wrote: > > > > > > Sascha Schumann wrote: > > > > > Hi all, > > > > > > I've uploaded the first release candidate for PHP 3.0.16. We > > > would appreciate it, if you could verify that it works in your > > > environment. Please send us positive and negative feedback. > > > > > > http://va.php.net/~sas/php-3.0.16.tar.gz > > > > > > > Please take a look to bug #3621. It contains a fix that works. > > I've also sent an email to the author of that code. Perhaps we > need a Solaris 2.6 check at that place. If seems to me that I made one further step solving the problem with sysvsem.c . Indeed, the fix contained in 3.0.16 release works fine with Solaris 7 x86, but results Bus error on Sun Solaris 7. I suggest the same happens on other solaris versions, including 2.6. From the man page for semctl on Solaris, we see the following: ------------------------------------------------------------- The semctl() function provides a variety of semaphore con- trol operations as specified by cmd. The fourth argument is optional, depending upon the operation requested. If required, it is of type union semun, which must be expli- citly declared by the application program. union semun { int val; struct semid_ds *buf; ushort_t *array; } arg ; ------------------------------------------------------------- There is already definition of this structure in semvsem.c: #if !HAVE_SEMUN && defined(__GNU_LIBRARY__) && __GNU_LIBRARY__ == 6 union semun { int val; /* value for SETVAL */ struct semid_ds *buf; /* buffer for IPC_STAT, IPC_SET */ unsigned short int *array; /* array for GETALL, SETALL */ struct seminfo *__buf; /* buffer for IPC_INFO */ }; #undef HAVE_SEMUN #define HAVE_SEMUN 1 #endif So, I changed the line #if !HAVE_SEMUN && defined(__GNU_LIBRARY__) && __GNU_LIBRARY__ == 6 with #if !HAVE_SEMUN and recompiled php with union semun defined - it compiled smoothly, and worked on Solaris 7 [Sun|x86]. The same problem exists in PHP4 tree. With best regards, KIR -- ----- ----- ----- ----- ----- ----- ----- ----- Kirill Maximov maximov@astrive.com Astrive, Inc. http://www.astrive.com

« previous php.dev (#17696) next »