diff options
author | Julian Elischer <julian@FreeBSD.org> | 1999-11-30 20:21:56 +0000 |
---|---|---|
committer | Julian Elischer <julian@FreeBSD.org> | 1999-11-30 20:21:56 +0000 |
commit | 61b377a1ebfcaa20e13b2132ff02f956cc9776c5 (patch) | |
tree | 5f1b44dcd4fb0edcba1a7336808e4f0a7d7dbce1 /devel/linuxthreads | |
parent | Add --infopath entry to the configuration section so that mail/mew-xemacs20 (diff) |
Update some of the Documentation files.
Submitted by: "Richard Seaman, Jr." <dick@tar.com>, rcarter@pinyon.org
Diffstat (limited to 'devel/linuxthreads')
-rw-r--r-- | devel/linuxthreads/files/README.FreeBSD | 78 |
1 files changed, 35 insertions, 43 deletions
diff --git a/devel/linuxthreads/files/README.FreeBSD b/devel/linuxthreads/files/README.FreeBSD index 705e254b43ed..f0132e375a4a 100644 --- a/devel/linuxthreads/files/README.FreeBSD +++ b/devel/linuxthreads/files/README.FreeBSD @@ -1,23 +1,37 @@ Some brief notes: -1) Consider updating your FreeBSD source to 3.X after January 27, -1999 or to 4.0-current after January 25, 1999. If you insist on -using older source, be sure it is at least 3.0-current after -January 12, 1999. +1) This package is intended to run on FreeBSD 4.0-current or +FreeBSD 3.X, with sources more recent than March 1, 1999, i386 +processors only. -If you are using older source: +Compile your applications that use Linux Threads with the following +command line options: -You must have compiled your kernel/world with the option -COMPAT_LINUX_THREADS. Optionally, you can also have compiled -with the option VM_STACK. This package will not run properly -without COMPAT_LINUX_THREADS. If you have not done so, add --DCOMPAT_LINUX_THREADS to the CFLAGS, and also to COPTFLAGS in -your /etc/make.conf file (optionally add -DVM_STACK also), and -do a "make world" and remake and reinstall the kernel. + -D_THREAD_SAFE -I/usr/local/include/pthread/linuxthreads -llthread -If you are using new source: +Note that the include (-I..) directive shown here should appear before any other include +directive that would cause the compiler to find the FreeBSD file /usr/include/pthread.h. +Using the FreeBSD pthread.h instead of the linuxthreads pthread.h will result in an app +fails in many odd and maybe spectacular ways. -Everything is included by default for i386 systems. +In order to facilitate porting applications witch expect a libpthread, you can create +the following symlinks if you want: + + ln -s /usr/local/lib/liblthread.a /usr/lib/libpthread.a + ln -s /usr/local/lib/liblthread_p.a /usr/lib/libpthread_p.a + ln -s /usr/local/lib/liblthread.so.0 /usr/lib/libpthread.so.0 + ln -s /usr/local/lib/liblthread.so.0 /usr/lib/libpthread.so + /sbin/ldconfig -m /usr/lib + +If you do this, you can instead use: + + -D_THREAD_SAFE -I/usr/local/include/pthread/linuxthreads -lpthread +or + -D_THREAD_SAFE -I/usr/local/include/pthread/linuxthreads -kthread + +DO NOT use libc_r with Linux Threads, and do not compile/link with +the -pthread option (which pulls in libc_r). DO link with libc +(which you will get by default). 2) You should consider enabling the posix priority extensions in your kernel. Adding the following to your kernel config @@ -35,25 +49,11 @@ of kern.maxproc. Each kernel thread counts against maxproc. You can increase maxproc by changing the MAXUSERS value in your kernel config file. maxproc is set at 20 + 16 * MAXUSERS. -4) This package does not currently work on a normal SMP machine, -since the flags needed for the rfork function are not enabled. -More work needs to be done on the kernel. However, if wish -to try it, take a look at http://www.freebsd.org/~luoqi/pmap.diff . - -5) DO NOT link with the libc_r library (by default you won't). -Don't use the option -pthread when compiling/linking. It pulls -in libc_r. +4) This package should work on a normal SMP machine, however, +there appear to be some problems introduced with the recent changes +to the kernel signal handling, which have yet to be resolved. -6) Compile your applications that use Linux Threads with either of -the following (equivalent) command line options: - - -D_THREAD_SAFE -DLINUXTHREADS -lpthread -or: - -D_THREAD_SAFE -DLINUXTHREADS -kthread - - -7) You should link with the normal FreeBSD libc directory (by -default you will). Be aware of the following issues: +5) Be aware of the following libc issues: a) Not all libc calls are thread safe. Many are. In particular gmtime, localtime, etc are not thread @@ -73,7 +73,7 @@ default you will). Be aware of the following issues: deferred cancellation will not really do anything, since the co-operation needed from libc is not there. -8) There is a call implemented for FreeBSD (see stack.c): +6) There is a call implemented for FreeBSD (see stack.c): int _pthread_setstackspacing(size_t spacing, size_t guardsize) @@ -89,13 +89,5 @@ ie. maximum stack size = spacing - TLSpagesize - guardsize. The spacing must be a power of 2 times the pagesize (and if its not, it will be rounded up to the next highest value that is). -9) If you want to link your ports or other programs that use -GNU configure with pthreads, check the documentation of the -program. If the configure file hasn't been customized too -much for FreeBSD libc_r, and if it explicitly supports posix -threads, then something like the following works in a -number of cases (exact details may vary case to case): - -CFLAGS="-DLINUXTHREADS -D_THREAD_SAFE" ./configure --with-threads=posix - -10) Read file README. +7) Note that this is an older version of linuxthreads. More current +versions are at http://www.kernel.org/pub/linux/libs/glibc. |