ports/184993: www/squid33 - fails to build on ^/stable/10 (without AUFS or why AUFS doesn't work)

Volodymyr Kostyrko arcade at b1t.name
Thu Feb 13 14:06:56 UTC 2014


Hi all.

The core problem to whole this stuff is about how squid is compiled when 
it requires threading support (and AUFS needs pthreads).

Let's see some diffs. The whole difference between this two is FS_AUFS 
is enabled for the +++ and disables for the ---.

--- squid.nobuild       2014-02-13 13:48:44.361353003 +0200
+++ squid.build 2014-02-13 14:24:09.565205775 +0200
@@ -162,7 +162,7 @@
  configure: cbdata debugging enabled: no
  configure: xmalloc stats display: no
  checking for library containing shm_open... none required
-checking for DiskIO modules to be enabled...  AIO Blocking DiskDaemon 
IpcIo Mmapped
+checking for DiskIO modules to be enabled...  AIO Blocking DiskDaemon 
IpcIo Mmapped DiskThreads
  checking aio.h usability... yes
  checking aio.h presence... yes
  checking for aio.h... yes
@@ -173,8 +173,10 @@
  configure: Enabling DiskDaemon DiskIO module
  configure: Enabling IpcIo DiskIO module
  configure: Enabling Mmapped DiskIO module
+configure: pthread library requires FreeBSD 7 or later

That's a weird one. Like we have no support on 10 for pthreads?

+configure: Native pthreads support disabled. DiskThreads module 
automaticaly disabled.

And that's why aufs stops working.

  configure: IO Modules built:  AIO Blocking DiskDaemon IpcIo Mmapped
-configure: Store modules built:  diskd rock ufs
+configure: Store modules built:  diskd rock ufs aufs
  configure: Removal policies to build: lru heap
  configure: Disabling ESI processor
  checking whether to support eCAP... no, explicitly
@@ -674,7 +676,7 @@
  checking for prctl... no
  checking for pthread_attr_setschedparam... yes
  checking for pthread_attr_setscope... yes
-checking for pthread_setschedparam... no
+checking for pthread_setschedparam... yes
  checking for pthread_sigmask... yes
  checking for putenv... (cached) yes
  checking for random... (cached) yes
@@ -743,9 +745,9 @@
  configure: BUILD OBJECTS:
  configure: BUILD EXTRA OBJECTS:
  configure: BUILD C FLAGS:  -O2 -pipe -march=native 
-fno-strict-aliasing -I/usr/local/include
-configure: BUILD EXTRA C FLAGS:  -Werror -Qunused-arguments
+configure: BUILD EXTRA C FLAGS:
  configure: BUILD C++ FLAGS:  -O2 -pipe -march=native 
-fno-strict-aliasing -Wno-unused-private-field -std=c++0x 
-I/usr/local/include
-configure: BUILD EXTRA C++ FLAGS:  -Werror -Qunused-arguments
+configure: BUILD EXTRA C++ FLAGS:

And those two are about why squid can't build withous AUFS. -Werror 
chimes in and thrashes whole thing.

  configure: creating ./config.status
  config.status: creating Makefile
  config.status: creating compat/Makefile

The tiny patch attached fixes wording around AUFS (ie stops calling it 
async) and disables by default DISKD and ROCK storages (as they seem to 
fail anyway).

-- 
Sphinx of black quartz, judge my vow.
-------------- next part --------------
Index: Makefile
===================================================================
--- Makefile	(revision 344046)
+++ Makefile	(working copy)
@@ -61,7 +61,7 @@
 OPTIONS_DEFINE=	ARP_ACL AUTH_KERB AUTH_LDAP AUTH_NIS AUTH_SASL AUTH_SMB \
 		AUTH_SQL \
 		CACHE_DIGESTS DEBUG DELAY_POOLS DNS_HELPER ECAP ESI \
-		FOLLOW_XFF FS_AUFS FS_COSS HTCP ICAP ICMP IDENT IPV6 KQUEUE \
+		FOLLOW_XFF FS_AUFS FS_COSS FS_DISKD FS_ROCK HTCP ICAP ICMP IDENT IPV6 KQUEUE \
 		LARGEFILE SNMP SSL SSL_CRTD STACKTRACES STRICT_HTTP \
 		TP_IPF TP_IPFW TP_PF VIA_DB WCCP WCCPV2 DOCS EXAMPLES
 
@@ -83,8 +83,10 @@
 ECAP_DESC=	Enable loadable content adaptation modules
 ESI_DESC=	Enable support for ESI
 FOLLOW_XFF_DESC=	Enable support for the X-Following-For header
-FS_AUFS_DESC=	Enable AUFS (async-io) support
+FS_AUFS_DESC=	Enable AUFS (threaded io) support
 FS_COSS_DESC=	Enable COSS (not stable yet)
+FS_DISKD_DESC=	Enable DISKD (experimental) storage engine controlled by separate service
+FS_ROCK_DESC=	Enable ROCK (unstable) storage
 HTCP_DESC=	Enable HTCP support
 ICAP_DESC=	Enable the ICAP client
 ICMP_DESC=	Enable ICMP pinging and network measurement
@@ -308,8 +310,8 @@
 
 # Storage schemes:
 
-storage_schemes=	diskd rock ufs
-diskio_modules=	AIO Blocking DiskDaemon IpcIo Mmapped
+storage_schemes=	ufs
+diskio_modules=	AIO Blocking IpcIo Mmapped
 .if ${PORT_OPTIONS:MFS_AUFS}
 storage_schemes+=	aufs
 diskio_modules+=	DiskThreads
@@ -322,6 +324,13 @@
 .if ${PORT_OPTIONS:MFS_COSS}
 storage_schemes+=	coss
 .endif
+.if ${PORT_OPTIONS:MFS_DISKD}
+storage_schemes+=	diskd
+diskio_modules+=	DiskDaemon
+.endif
+.if ${PORT_OPTIONS:MFS_ROCK}
+storage_schemes+=	rock
+.endif
 CONFIGURE_ARGS+=	--enable-storeio="${storage_schemes}"
 CONFIGURE_ARGS+=	--enable-disk-io="${diskio_modules}"
 


More information about the freebsd-ports mailing list