In article <34EF9C3E.6923E7B5@ver1.telmex.net.mx> you write:
>Mario Sergio Fujikawa Ferreira wrote:
>> 
>> Dear Ed,
>> 
>> > What do I need to compile squid1.2beta15 --enable-async-io
>> > under FreeBSD Current.
>> >
>> > I haven't been able to compile it. It dies en aiops.c.
>> 
>>         The source file aiops.c requires pthreads functions.
>>         I am not sure about current, yet under stable and release:
>>         You need to compile FreeBSD libc_r that supports the MIT pthreads
>> standard. Make sure you have the libraries sources installed.
>>         cd /usr/src/lib/libc_r && make depend && make && make install
>> 
>>         There you have it. Try configuring again.
>> 
>That worked fine and now I have the libc_r libraries.  Thanks alot, I
>never
>realized that they weren't built automatically with a make world.
You can define WANT_LIBC_R=yes in /etc/make.conf
>That isn't my only problem.  It looks like there are some include files
>that don't exist or aren't being found.  I'll keep at it.  Thanks Again.
I also did some experiments with getting squid 1.2beta15 to compile on
FreeBSD-stable. Indeed some include stuff is missing. I found an extra
pthread_private.h file in /usr/src/lib/libc_r/uthread which contains these
missing things. However just #include'ing it gave some strange errors, so I
made a local pthread_local.h containing just the stuff I needed:
pthread_local.h:
    struct sched_param {
            int	sched_priority;
            void	*no_data;
    };
    /*
     * Scheduling definitions.
     */
    enum schedparam_policy {
            SCHED_RR,
            SCHED_IO,
            SCHED_FIFO,
            SCHED_OTHER
    };
The following patch was needed to get it to compile:
--- ../../squid-1.2.beta15/src/aiops.c	Mon Feb  2 22:16:16 1998
+++ aiops.c	Sun Feb 22 16:28:32 1998
@@ -1,6 +1,6 @@
 
 /*
- * $Id: aiops.c,v 1.7 1998/02/02 21:16:16 wessels Exp $
+ * $Id: aiops.c,v 1.8 1998/02/17 23:05:38 wessels Exp $
  *
  * DEBUG: section 43    AIOPS
  * AUTHOR: Stewart Forster <slf@connect.com.au>
@@ -36,6 +36,7 @@
 #include	<sys/stat.h>
 #include	<fcntl.h>
 #include	<pthread.h>
+#include	"pthread_local.h"
 #include	<errno.h>
 #include	<dirent.h>
 #include	<signal.h>
@@ -141,12 +142,14 @@
         return;
 
     pthread_attr_init(&globattr);
+#ifndef __FreeBSD__
     pthread_attr_setscope(&globattr, PTHREAD_SCOPE_SYSTEM);
     globsched.sched_priority = 1;
     self = pthread_self();
     pthread_setschedparam(self, SCHED_OTHER, &globsched);
     globsched.sched_priority = 2;
     pthread_attr_setschedparam(&globattr, &globsched);
+#endif
 
     /* Create threads and get them to sit in their wait loop */
 
This makes it compile, but not working yet.
I'm Cc:-ing freebsd-hackers (so be careful with replies), maybe someone
there knows better ways to get Squid 1.2beta to compile with libc_r. I
recently saw some other applications mentioned over there which do work
with libc_r successfully.
There's also work being done on async IO in the FreeBSD kernel (3.0),
haven't tried that yet.
Arjan
Received on Sun Feb 22 1998 - 07:42:50 MST
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:38:56 MST