On Tue, Sep 16, 2003 at 03:10:23PM +0300, Igor Khasilev wrote:
> On Tue, 16 Sep 2003, Sergey A. Osokin wrote:
> 
> > после недолгих ковыряний с rwlock в oops, добился сборки
> > oops'а без internal rwlock.[c|h], но с системным.
> > Получилось это всё на 5.1-CURRENT.
> > 
> > Соответственно, вопрос к разработчикам: чем плохо
> > само по себе использование неоригинального rwlock?
> 
> Ничем. просто на некоторых системах их нет(Solaris 2.5).

Тогда предлагается вот такой патч для порта oops'а (FreeBSD).
Комментарии/пожелания/патчи welcome.

P.S. В данный момент порты FreeBSD находятся в замороженном
состоянии: ждём выхода 4.9, как только их разморозят - 
этот патч уйдёт в дерево портов.

-- 

Rgdz,                        /"\  ASCII RIBBON CAMPAIGN
Sergey Osokin aka oZZ,       \ /    AGAINST HTML MAIL
http://ozz.pp.ru/             X          AND NEWS
                             / \
Index: ports/www/oops/Makefile
===================================================================
RCS file: /home/pcvs/ports/www/oops/Makefile,v
retrieving revision 1.25
diff -u -r1.25 Makefile
--- ports/www/oops/Makefile     6 Jun 2003 13:27:54 -0000       1.25
+++ ports/www/oops/Makefile     16 Sep 2003 12:39:47 -0000
@@ -7,6 +7,7 @@
 
 PORTNAME=      oops
 PORTVERSION=   ${OOPSVERSION}.${OOPSDATE}
+PORTREVISION=  1
 CATEGORIES=    www
 MASTER_SITES=  http://oops-cache.org/
 DISTNAME=      ${PORTNAME}-${OOPSVERSION}
@@ -31,6 +32,8 @@
                --libdir=${PREFIX}/libexec/oops \
                --enable-oops-user=oops \
                --enable-large-files
+MAKE_ENV+=     PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" \
+               PTHREAD_LIBS="${PTHREAD_LIBS}"
 
 MAN8=          oops.8 oopsctl.8
 OOPSVAR=       /var/run/oops
Index: ports/www/oops/files/patch-configure.in
===================================================================
RCS file: /home/pcvs/ports/www/oops/files/patch-configure.in,v
retrieving revision 1.4
diff -u -r1.4 patch-configure.in
--- ports/www/oops/files/patch-configure.in     24 Mar 2003 15:13:35 -0000      1.4
+++ ports/www/oops/files/patch-configure.in     16 Sep 2003 12:42:55 -0000
@@ -1,5 +1,5 @@
---- configure.in.orig  Fri Mar 21 18:46:36 2003
-+++ configure.in       Fri Mar 21 18:54:01 2003
+--- configure.in.orig  Tue Sep 16 16:32:04 2003
++++ configure.in       Tue Sep 16 16:34:21 2003
 @@ -37,7 +37,7 @@
  AC_ARG_WITH(zlib,--with-zlib=[[PATH]]         Which zlib library/object file to use,
    with_zlib="$withval", with_zlib="")
@@ -9,7 +9,20 @@
  AC_CHECK_HEADERS(netinet/ip_fil.h, AC_DEFINE(HAVE_IPF))
  AC_CHECK_HEADERS(netinet/ip6.h, AC_DEFINE(HAVE_IP6_H))
  
-@@ -375,10 +375,10 @@
+@@ -296,10 +296,9 @@
+         LIBS="-oldstyle_liblookup -lpthread $LIBS"
+ 
+         ;;
+-freebsd*) CFLAGS="$CFLAGS -pthread -D_REENTRANT -DFREEBSD -D_THREAD_SAFE 
-DFD_SETSIZE=2048 -I."
+-        CXX=g++
++freebsd*) CFLAGS="$CFLAGS $PTHREAD_CFLAGS -D_REENTRANT -DFREEBSD -DFD_SETSIZE=2048 
-I."
+         CXXSOFLAGS="-shared -Xlinker -Bstatic"
+-        LIBS="-lc_r $LEXLIB $LIBS"
++        LIBS="$PTHREAD_LIBS $LEXLIB $LIBS"
+         if test "$large_files" = "yes" ; then
+               ## FreeBSD need no any special flags for 64bit files
+               CFLAGS="$CFLAGS -DWITH_LARGE_FILES"
+@@ -375,10 +374,10 @@
  esac
  
  if test "X$MYSQL_PATH" != "X" ; then
@@ -23,7 +36,17 @@
  fi
  
  if test "X$PGSQL_PATH" != "X" ; then
-@@ -464,6 +464,9 @@
+@@ -427,6 +426,9 @@
+     cp -f lib/rwlock/rwlock.h ./; 
+     cd ..
+     ;;
++freebsd*)
++    echo "Already have pthread_rwlock_init() support in our libc_r";
++    ;;
+ *)
+     
AC_CHECK_FUNC(pthread_rwlock_init,AC_DEFINE(HAVE_PTHREAD_RWLOCK_INIT),EXTRASRC="$EXTRASRC
 rwlock.c" ; cd src; cp -f lib/rwlock/rwlock.c ./; cp -f lib/rwlock/rwlock.h ./; cd ..)
+     ;;
+@@ -464,6 +466,9 @@
      LIBDB_PATH="$pwd"
  elif test -r "/usr/local/lib/libdb.a"; then
      LIBDB_PATH="/usr/local"
@@ -33,7 +56,7 @@
  elif test -r "/usr/lib/libdb2.a"; then                                         
      LIBDB_PATH="/usr"                                                          
      LIBDB_NAME=-ldb2                                                           
-@@ -574,7 +577,7 @@
+@@ -574,7 +579,7 @@
      AC_DEFINE(HAVE_ZLIB)
      AC_MSG_RESULT(/usr/local/lib/libz.a)
      if test "X`echo $CFLAGS | grep '\-I/usr/local/include'`" = "X"; then
Index: ports/www/oops/files/patch-src::Makefile.in
===================================================================
RCS file: /home/pcvs/ports/www/oops/files/patch-src::Makefile.in,v
retrieving revision 1.2
diff -u -r1.2 patch-src::Makefile.in
--- ports/www/oops/files/patch-src::Makefile.in 24 Mar 2003 15:13:35 -0000      1.2
+++ ports/www/oops/files/patch-src::Makefile.in 16 Sep 2003 12:41:16 -0000
@@ -1,11 +1,20 @@
---- src/Makefile.in.orig       Fri Mar 21 19:42:58 2003
-+++ src/Makefile.in    Fri Mar 21 19:43:33 2003
+--- src/Makefile.in.orig       Tue Aug 19 15:56:34 2003
++++ src/Makefile.in    Tue Aug 19 15:58:11 2003
+@@ -29,7 +29,7 @@
+ 
+ #CFLAGS = -Wall -ggdb -D_REENTRANT -D_POSIX_PTHREADS_SEMANTICS
+ 
+-CFLAGS = @CFLAGS@ @DEFS@
++CFLAGS = @CFLAGS@ @DEFS@ ${PTHREAD_CFLAGS}
+ 
+ [EMAIL PROTECTED]@
+ [EMAIL PROTECTED]@/oops
 @@ -45,7 +45,7 @@
        cd modules; $(MAKE)
  
  oops: ${OBJS}
 -      ${CC} ${CFLAGS} ${OBJS} ${EXTLDFLAGS} ${LDFLAGS} ${LIBGB_PATH} ${LIBGB_NAME} 
${OOPS_LIBS} ${LIBZ_NAME} ${OOPS_RPATH} -o oops
-+      ${CXX} ${CFLAGS} ${OBJS} ${EXTLDFLAGS} ${LDFLAGS} ${LIBGB_PATH} ${LIBGB_NAME} 
${OOPS_LIBS} ${LIBZ_NAME} ${OOPS_RPATH} -o oops
++      ${CXX} ${CFLAGS} ${OBJS} ${EXTLDFLAGS} ${LDFLAGS} ${LIBGB_PATH} ${LIBGB_NAME} 
${OOPS_LIBS} ${PTHREAD_LIBS} ${LIBZ_NAME} ${OOPS_RPATH} -o oops
  
  mkinstalldirs:
        ../mkinstalldirs ${OOPSPATH} \
--- /dev/null   Tue Sep 16 16:42:49 2003
+++ ports/www/oops/files/patch-src::modules::Makefile.in        Tue Sep 16 16:40:21 
2003
@@ -0,0 +1,11 @@
+--- src/modules/Makefile.in.orig       Tue Aug 19 16:36:50 2003
++++ src/modules/Makefile.in    Tue Aug 19 16:37:09 2003
+@@ -1,7 +1,7 @@
+ CC = @CC@
+ CXX = @CXX@
+ LIBS = @LIBS@
+-CFLAGS = @CFLAGS@ @DEFS@
++CFLAGS = @CFLAGS@ @DEFS@ ${PTHREAD_CFLAGS}
+ LDFLAGS = @LDFLAGS@
+ LD = @LD@
+ SOFLAGS = @SOFLAGS@

Дати відповідь електронним листом