Ah -- sorry -- didn't read that far. As for the second error, the problem is the "_np" in "pthread_kill_other_threads_np" which means "non-portable". It's an old API in LinuxThreads to kill all threads in the process-based threads which pre-date modern Linux kernels. The fix is to simply remove the code and expect folks are running a modern Linux where kill/exit/etc. actually work, always. This should be the case today.
BTW: My bias is always to move ahead on these types of things. Over time quite a bit of OS type and version specific code has been purged as Unix has become more standard. Another recent example is the module loading junk for OS/X -- turns out 10.4 now supports dlopen. I'm thinking of dumping the old code -- it's weird and a distraction for no value except running on OS/X pre-10.4 which isn't a good idea anyway. My thinking is if one needs to run on an old OS they can run an old AOLserver version too. I hope folks are ok with this -- helps keep the code tiddy and maintainable. -Jim On Jun 26, 2005, at 8:46 PM, Janine Sisk wrote:
I started out with this error: conn.c: In function ‘NsTclConnObjCmd’: conn.c:843: error: invalid lvalue in assignment Line 843 looks like this: connPtr = (Conn *) conn = itPtr->conn; The gcc version here is # gcc --version gcc (GCC) 4.0.0 20050519 (Red Hat 4.0.0-8) The exact same tarball was compiled a few weeks ago on an RHEL 4 system with no problems. The gcc version there is: # gcc --version gcc (GCC) 3.4.3 20050227 (Red Hat 3.4.3-22.1) As a test, I just went back to the RHEL system and touched conn.c. I got a warning instead of an error. conn.c: In function `NsTclConnObjCmd': conn.c:843: warning: use of cast expressions as lvalues is deprecated I checked the version in CVS and this line has not been changed. My C skills are a tad rusty but I went in and changed it to this, and it compiled under FC4: // connPtr = (Conn *) conn = itPtr->conn; conn = itPtr->conn; connPtr = (Conn *) conn; Is this valid? I thought I had saved the day, but I ended up stuck on this: libnsd.so: undefined reference to `pthread_kill_other_threads_np' That's in nsd/unix.c, in FatalSignalHandler: #ifdef __linux /* * LinuxThreads thread manager needs to kill all child threads * on fatal signals, else they get left behind as dead threads. * As of glibc 2.3 with NPTL, this should be a no-op. */ pthread_kill_other_threads_np(); #endif This system has glibc 2.3.5,, but I don't know if I have NPTL or not. The system on which this builds just fine has glibc 2.3.4. Suggestions? thanks, janine -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> with the body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of your email blank.
-- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> with the body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of your email blank.