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!