summaryrefslogtreecommitdiff
path: root/devel/linuxthreads/files/README.FreeBSD
diff options
context:
space:
mode:
Diffstat (limited to 'devel/linuxthreads/files/README.FreeBSD')
-rw-r--r--devel/linuxthreads/files/README.FreeBSD56
1 files changed, 9 insertions, 47 deletions
diff --git a/devel/linuxthreads/files/README.FreeBSD b/devel/linuxthreads/files/README.FreeBSD
index d62d017c6aaf..cf58d938cc0d 100644
--- a/devel/linuxthreads/files/README.FreeBSD
+++ b/devel/linuxthreads/files/README.FreeBSD
@@ -1,11 +1,9 @@
Some brief notes:
-1) This package is intended to run on FreeBSD 4.0-current or
-FreeBSD 3.X, with sources more recent than May 1, 1999, i386
-processors only. If you are running an SMP kernel, you should
-be using FreeBSD 4.0-current only.
+1) This package is intended to run on FreeBSD 5.0-current or
+FreeBSD 4.X i386 processors only.
-Compile your applications that use Linux Threads with the following
+Compile your applications that use LinuxThreads with the following
command line options:
-D_THREAD_SAFE -I/usr/local/include/pthread/linuxthreads -llthread -llgcc_r
@@ -31,7 +29,7 @@ If you do this, you can instead use:
or
-D_THREAD_SAFE -I/usr/local/include/pthread/linuxthreads -kthread -llgcc_r
-Do not use libc_r with Linux Threads, and do not compile/link with the -pthread
+Do not use libc_r with LinuxThreads, and do not compile/link with the -pthread
option (which pulls in libc_r). Rather, link with libc (which you will get by
default).
@@ -60,15 +58,13 @@ set at 20 + 16 * MAXUSERS.
functions are both thread safe and have "_r" versions.
b) Not all of the libc calls that are supposed to be cancellation points are
- implemented as such. There is a lot of work that needs to be done on libc
- before cancellation points will work correctly. Therefore, while linux
- threads has the cancel functions implemented, deferred cancellation will not
- work as required by POSIX 1003.1c-1995, since the co-operation needed from
- libc is not complete.
+ implemented as such. While linux threads has the cancel functions
+ implemented, deferred cancellation will not work as required by POSIX
+ 1003.1c-1995, since the co-operation needed from libc is not complete.
5) Known problems and issues:
- a) It is possible that the instructions given above for including liblgcc_r
+ It is possible that the instructions given above for including liblgcc_r
are not sufficent. liblgcc_r is a version of libgcc_r linked against this
linuxthreads package. It is intended that applications link against this,
rather than libgcc_r (which is linked against libc_r) or libgcc (which is not
@@ -79,39 +75,5 @@ set at 20 + 16 * MAXUSERS.
possible that a custom link line needs to be generated that specifically
excludes the default libgcc and which includes liblgcc_r twice. There are no
known problems resulting from the link procedure suggested above. However,
- compiling/linking with the "-v" option will illustrate the issue, where lihgcc
+ compiling/linking with the "-v" option will illustrate the issue, where libgcc
is included twice in addition to liblgcc_r.
-
- b) Since some point around Auguest 30 or later, dynamically linked SMP
- applications have experienced problems with the dynamic linker. Statically
- linked applications appear fine.
-
- Specifically, some applications are not able to resolve dynamic links as in
- this sample output:
-
- root@chiricahua:/usr/ports/devel/linuxthreads/work/linuxthreads-0.71/Examples [119] ./ex4
- Thread 400: allocated key 0
- Thread 400: allocating buffer at 0x804b400
- /usr/libexec/ld-elf.so.1: /usr/local/lib/liblthread.so.0: Undefined symbol "sigfillset"
-
- The problem does not occur on every run, but rather intermittently, and the
- undefined symbol is not always "sigfillset", thought this is common.
-
- It is possible that ld-elf.so needs to be made thread safe, and that the
- problem is not unique to SMP but only exposed by the higher concurrency of SMP
- threads. However, the problem has not been fully diagnosed.
-
- c) Since August 30 or maybe later, neither this version of FreeBSD
- linuxthreads nor FreeBSD user threads (libc_r) have been able to pass the ACE
- Reactor_Exception_Test using FreeBSD-current. See http://www.pinyon.org/ace
- for information about ACE and compiling it under FreeBSD. It is possible that
- PR/15228 is another illustration of the same problem. In both cases the app
- aborts at line 3314 in libgcc2.c in the __sjthrow function, because there is
- no exception handler registered at that point.
-
- Earlier, before August 30, both this version of linuxthreads as well] as
- libc_r passed all the ACE thread tests. The cutoff date for the onset of the
- problem could be later than August 30.
-
- There has not been time to fully diagnose this problem. It occurs on both SMP
- and UP systems.