Date: Sun, 22 Feb 1998 16:37:19 +0100 (CET) From: Arjan de Vet <Arjan.deVet@adv.IAEhv.nl> To: eculp@ver1.telmex.net.mx Cc: squid-users@nlanr.net, hackers@FreeBSD.ORG Subject: Re: Compile squid1.2beta15 with pthreads/libc_r on FreeBSD Message-ID: <199802221537.QAA24678@adv.IAEhv.nl> In-Reply-To: <34EF9C3E.6923E7B5@ver1.telmex.net.mx> References: <199802212245.UAA05007@srv1-bsb.gns.com.br>
next in thread | previous in thread | raw e-mail | index | archive | help
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 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199802221537.QAA24678>