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.

Reply via email to