Lars Balker Rasmussen (via RT) <[EMAIL PROTECTED]> writes:
> The pthreads library seems to be missing on the FreeBSD 4.8 and 5.0
> machines I have access to. I don't know what, if any, FreeBSD'en
> should happen to have that library...
>
> There are two ways to link in the pthreads-stuff on FreeBSD - I have
> taken the method from the ports systems makefile to decide between them.
I have another patch from Nick Kostirya <[EMAIL PROTECTED]> which
accidently dropped off-list. He tries to solve the same issue (and
uses a similar approach). But he changed ccflags. Can someone of the
FreeBSD guys enlighten me which of these two patches is the better
one? I can apply only one.
bye
b�
Index: config/init/hints/freebsd.pl
===================================================================
RCS file: /cvs/public/parrot/config/init/hints/freebsd.pl,v
retrieving revision 1.1
diff -u -r1.1 freebsd.pl
--- config/init/hints/freebsd.pl 10 Oct 2003 07:43:05 -0000 1.1
+++ config/init/hints/freebsd.pl 28 Oct 2003 14:19:41 -0000
@@ -1,7 +1,31 @@
+# 500016 is the first osreldate in which one could
+# just link against libc_r without disposing of libc
+# at the same time. 500016 ... up to whatever it was
+# on the 31st of August 2003 can still be used with -pthread,
+# but it is not necessary.
+my $osreldate = `/sbin/sysctl -n kern.osreldate`;
+
my $libs = Configure::Data->get('libs');
-if ( $libs !~ /-lpthreads/ ) {
- $libs .= ' -lpthreads';
+
+if ($osreldate >= 500016) {
+ # use KSE (libpthread)
+ # See http://www.freebsd.org/kse/
+ if ( $libs !~ /-lpthreads/ ) {
+ $libs .= ' -lpthreads';
+ }
+} else {
+ # use libc_r
+ $libs =~ s/-lpthreads//;
+
+ my $ccflags = Configure::Data->get('ccflags');
+ if ( $ccflags !~ /-pthread/ ) {
+ $ccflags .= ' -pthread';
+ }
+ Configure::Data->set(
+ ccflags => $ccflags,
+ )
}
+
Configure::Data->set(
libs => $libs,
);