On 2014-04-13, Eliezer Croitoru <elie...@ngtech.co.il> wrote:
> On 04/13/2014 03:36 PM, Stuart Henderson wrote:
>> I'm just trying to build 3.5-HEAD on OpenBSD/i386 (i.e. 32-bit mode) for
>> the first time. It fails due to use of 64-bit atomic ops:
>>
>> MemStore.o(.text+0xc90): In function `MemStore::anchorEntry(StoreEntry&, 
>> int, Ipc::StoreMapAnchor const&)':
>> : undefined reference to `__sync_fetch_and_add_8'
>> MemStore.o(.text+0x3aa3): In function `MemStore::copyFromShm(StoreEntry&, 
>> int, Ipc::StoreMapAnchor const&)':
>> : undefined reference to `__sync_fetch_and_add_8'
>> MemStore.o(.text+0x3cce): In function `MemStore::copyFromShm(StoreEntry&, 
>> int, Ipc::StoreMapAnchor const&)':
>> : undefined reference to `__sync_fetch_and_add_8'
>> MemStore.o(.text+0x4040): In function `MemStore::copyFromShm(StoreEntry&, 
>> int, Ipc::StoreMapAnchor const&)':
>> : undefined reference to `__sync_fetch_and_add_8'
>> MemStore.o(.text+0x435f): In function `MemStore::copyFromShm(StoreEntry&, 
>> int, Ipc::StoreMapAnchor const&)':
>> : undefined reference to `__sync_fetch_and_add_8'
>> MemStore.o(.text+0x473d): more undefined references to 
>> `__sync_fetch_and_add_8' follow
>> collect2: error: ld returned 1 exit status
>>
>> (cmpxchg8b isn't used on OpenBSD/i386 as binaries are supposed to work
>> on old CPUs too; 64 bit ops are of course OK on 64-bit architectures).
>>
>> The autoconf test for atomic ops support is working, but it only checks
>> for int-sized atomic ops (which work OK here) - since the "Initial Large
>> Rock and Collapsed Forwarding support" commit (bzr rev 13201), Squid
>> started requiring 64-bit atomic ops too.
>>
>> Should the autoconf test be changed to check for working 64-bit ops, or
>> is something more involved wanted?
>>
>>
> What "configure" options have you used?

Currently these (which are as set in the OpenBSD port) :-

--datadir="/usr/local/share/squid"
--disable-arch-native
--disable-loadable-modules
--disable-pf-transparent
--disable-strict-error-checking
--enable-arp-acl
--enable-auth
--enable-delay-pools
--enable-external-acl-helpers="LDAP_group SQL_session file_userip time_quota 
session unix_group wbinfo_group LDAP_group eDirectory_userip"
--enable-follow-x-forwarded-for
--enable-forw-via-db
--enable-http-violations
--enable-icap-client
--enable-ipfw-transparent
--enable-ipv6
--enable-referer-log
--enable-removal-policies="lru heap"
--enable-shared
--enable-ssl
--enable-ssl-crtd
--enable-stacktraces
--enable-storeio="aufs ufs diskd rock"
--infodir='/usr/local/info'
--libexecdir="/usr/local/libexec/squid"
--localstatedir='/var/squid'
--mandir='/usr/local/man'
--prefix='/usr/local'
--sysconfdir='/etc/squid'
--with-default-user="_squid"
--with-filedescriptors=8192
--with-openssl
--with-pidfile="/var/run/squid.pid"
--with-pthreads
--with-swapdir="/var/squid/cache"

Not 100% sure if rock actually works on OpenBSD, but removing it from
the --enable-storeio line doesn't change anything with this problem.

> I will put a test machine for openbsd i386 testings.

Thanks!


Reply via email to