allow config to override kernel version
This commit is contained in:
parent
38c10d1abc
commit
7a2c88509b
18
INSTALL
18
INSTALL
@ -3,7 +3,25 @@
|
||||
PLAN9=`pwd` export PLAN9
|
||||
PATH=$PLAN9/bin:$PATH export PATH
|
||||
|
||||
echo "Resetting $PLAN9/config"
|
||||
rm -f $PLAN9/config
|
||||
|
||||
(
|
||||
if [ `uname` = Linux ]; then
|
||||
# On Linux, we use the kernel version to decide whether
|
||||
# to use pthreads or not. On 2.6 versions that aren't
|
||||
# linking with NPTL by default, pretend to be an older kernel.
|
||||
echo "Running on Linux: checking for NPTL..."
|
||||
gcc lib/linux-isnptl.c
|
||||
if ./a.out
|
||||
then
|
||||
echo " NPTL found."
|
||||
echo "SYSVERSION=2.6" >$PLAN9/config
|
||||
else
|
||||
echo " NPTL not found."
|
||||
echo "SYSVERSION=2.4" >$PLAN9/config
|
||||
fi
|
||||
fi
|
||||
echo "Building mk..."
|
||||
cd src
|
||||
make
|
||||
|
||||
@ -133,6 +133,23 @@ _threadsetproc(Proc *p)
|
||||
void
|
||||
_pthreadinit(void)
|
||||
{
|
||||
static struct utsname un;
|
||||
pthread_t id;
|
||||
|
||||
if(uname(&un) < 0){
|
||||
fprint(2, "warning: uname failed: %r\n");
|
||||
goto Okay;
|
||||
}
|
||||
if(strcmp(un.sysname, "Linux") == 0){
|
||||
/*
|
||||
* Want to distinguish between the old LinuxThreads pthreads
|
||||
* and the new NPTL implementation. NPTL uses much bigger
|
||||
* thread IDs.
|
||||
*/
|
||||
id = pthread_self();
|
||||
if(*(ulong*)&id < 1024*1024)
|
||||
sysfatal("cannot use LinuxThreads as pthread library; see %s/src/libthread/README.Linux", get9root());
|
||||
}
|
||||
pthread_key_create(&prockey, 0);
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
#!/bin/sh
|
||||
|
||||
tag="$OBJTYPE-$SYSNAME-`uname -r`-${CC9:-cc}"
|
||||
test -f $PLAN9/config && . $PLAN9/config
|
||||
|
||||
tag="$OBJTYPE-$SYSNAME-${SYSVERSION:-`uname -r`}-${CC9:-cc}"
|
||||
case "$tag" in
|
||||
*-Linux-2.6.*)
|
||||
echo pthread.o
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
#include <sched.h>
|
||||
#include <signal.h>
|
||||
#include <ucontext.h>
|
||||
#include <sys/utsname.h>
|
||||
#include "libc.h"
|
||||
#include "thread.h"
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user