From owner-svn-src-all@FreeBSD.ORG Sat Jul 6 08:40:32 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 2AB2F37C; Sat, 6 Jul 2013 08:40:32 +0000 (UTC) (envelope-from peter@rulingia.com) Received: from vps.rulingia.com (host-122-100-2-194.octopus.com.au [122.100.2.194]) by mx1.freebsd.org (Postfix) with ESMTP id 88B7B1DE6; Sat, 6 Jul 2013 08:40:30 +0000 (UTC) Received: from server.rulingia.com (c220-239-237-213.belrs5.nsw.optusnet.com.au [220.239.237.213]) by vps.rulingia.com (8.14.5/8.14.5) with ESMTP id r668eTpI011888 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sat, 6 Jul 2013 18:40:30 +1000 (EST) (envelope-from peter@rulingia.com) X-Bogosity: Ham, spamicity=0.000000 Received: from server.rulingia.com (localhost.rulingia.com [127.0.0.1]) by server.rulingia.com (8.14.5/8.14.5) with ESMTP id r668eM2d091295 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 6 Jul 2013 18:40:22 +1000 (EST) (envelope-from peter@server.rulingia.com) Received: (from peter@localhost) by server.rulingia.com (8.14.5/8.14.5/Submit) id r668eMw1091294; Sat, 6 Jul 2013 18:40:22 +1000 (EST) (envelope-from peter) Date: Sat, 6 Jul 2013 18:40:22 +1000 From: Peter Jeremy To: Tim Kientzle Subject: Re: svn commit: r252373 - head/usr.bin Message-ID: <20130706084022.GA91077@server.rulingia.com> References: <201306291531.r5TFVOKb016748@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="PNTmBPCT7hxwcZjr" Content-Disposition: inline In-Reply-To: <201306291531.r5TFVOKb016748@svn.freebsd.org> X-PGP-Key: http://www.rulingia.com/keys/peter.pgp User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Jul 2013 08:40:32 -0000 --PNTmBPCT7hxwcZjr Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On 2013-Jun-29 15:31:24 +0000, Tim Kientzle wrote: >Log: > Enable svnlite on armv6. This breaks building world with gcc on Raspberry Pi: gcc -O -pipe -I/tank/src10r/usr.bin/svn/svn/../../../contrib/subversion/su= bversion/include -I/tank/src10r/usr.bin/svn/svn/../../../contrib/subversion= /subversion -I/tank/src10r/usr.bin/svn/svn/.. -I/tank/src10r/usr.bin/svn/s= vn/../lib/libapr -I/tank/src10r/usr.bin/svn/svn/../../../contrib/apr/inclu= de/arch/unix -I/tank/src10r/usr.bin/svn/svn/../../../contrib/apr/include = -I/tank/src10r/usr.bin/svn/svn/../lib/libapr_util -I/tank/src10r/usr.bin/s= vn/svn/../../../contrib/apr-util/include/private -I/tank/src10r/usr.bin/sv= n/svn/../../../contrib/apr-util/include -std=3Dgnu99 -Wno-pointer-sign -o = svnlite add-cmd.o blame-cmd.o cat-cmd.o changelist-cmd.o checkout-cmd.o cl-= conflicts.o cleanup-cmd.o commit-cmd.o conflict-callbacks.o copy-cmd.o dele= te-cmd.o deprecated.o diff-cmd.o export-cmd.o file-merge.o help-cmd.o impor= t-cmd.o info-cmd.o list-cmd.o lock-cmd.o log-cmd.o merge-cmd.o mergeinfo-cm= d.o mkdir-cmd.o move-cmd.o notify.o patch-cmd.o propdel-cmd.o propedit-cmd.= o propget-cmd.o proplist-cmd.o props.o propset-cmd.o relocate-cmd.o resolve= -cmd.o resolved-cmd.o revert-cmd.o status-cmd.o status.o svn.o switch-cmd.o= unlock-cmd.o update-cmd.o upgrade-cmd.o util.o -L/tank/obj/rpi/arm.armv6/t= ank/src10r/usr.bin/svn/svn/../lib/libsvn_client -lsvn_client -L/tank/obj/r= pi/arm.armv6/tank/src10r/usr.bin/svn/svn/../lib/libsvn_wc -lsvn_wc -L/tank= /obj/rpi/arm.armv6/tank/src10r/usr.bin/svn/svn/../lib/libsvn_ra -lsvn_ra -= L/tank/obj/rpi/arm.armv6/tank/src10r/usr.bin/svn/svn/../lib/libsvn_ra_local= -lsvn_ra_local -L/tank/obj/rpi/arm.armv6/tank/src10r/usr.bin/svn/svn/../l= ib/libsvn_ra_svn -lsvn_ra_svn -L/tank/obj/rpi/arm.armv6/tank/src10r/usr.bi= n/svn/svn/../lib/libsvn_ra_serf -lsvn_ra_serf -L/tank/obj/rpi/arm.armv6/ta= nk/src10r/usr.bin/svn/svn/../lib/libsvn_repos -lsvn_repos -L/tank/obj/rpi/= arm.armv6/tank/src10r/usr.bin/svn/svn/../lib/libsvn_fs -lsvn_fs -L/tank/ob= j/rpi/arm.armv6/tank/src10r/usr.bin/svn/svn/../lib/libsvn_fs_fs -lsvn_fs_fs= -L/tank/obj/rpi/arm.armv6/tank/src10r/usr.bin/svn/svn/../lib/libsvn_fs_ut= il -lsvn_fs_util -L/tank/obj/rpi/arm.armv6/tank/src10r/usr.bin/svn/svn/../= lib/libsvn_delta -lsvn_delta -L/tank/obj/rpi/arm.armv6/tank/src10r/usr.bin= /svn/svn/../lib/libsvn_diff -lsvn_diff -L/tank/obj/rpi/arm.armv6/tank/src1= 0r/usr.bin/svn/svn/../lib/libsvn_subr -lsvn_subr -L/tank/obj/rpi/arm.armv6= /tank/src10r/usr.bin/svn/svn/../lib/libserf -lserf -L/tank/obj/rpi/arm.arm= v6/tank/src10r/usr.bin/svn/svn/../lib/libapr_util -lapr-util -lbsdxml -L/= tank/obj/rpi/arm.armv6/tank/src10r/usr.bin/svn/svn/../lib/libapr -lapr -L/= tank/obj/rpi/arm.armv6/tank/src10r/usr.bin/svn/svn/../lib/libsqlite3 -lsqli= te3 -lz -lcrypt -lmagic -lcrypto -lssl -lpthread /tank/obj/rpi/arm.armv6/tank/src10r/usr.bin/svn/svn/../lib/libsvn_subr/libs= vn_subr.a(named_atomic.o): In function `svn_named_atomic__cmpxchg': named_atomic.c:(.text+0xf0): undefined reference to `__sync_val_compare_and= _swap_8' /tank/obj/rpi/arm.armv6/tank/src10r/usr.bin/svn/svn/../lib/libsvn_subr/libs= vn_subr.a(named_atomic.o): In function `svn_named_atomic__add': named_atomic.c:(.text+0x174): undefined reference to `__sync_add_and_fetch_= 8' /tank/obj/rpi/arm.armv6/tank/src10r/usr.bin/svn/svn/../lib/libsvn_subr/libs= vn_subr.a(named_atomic.o): In function `svn_named_atomic__write': named_atomic.c:(.text+0x1c0): undefined reference to `__sync_lock_test_and_= set_8' /tank/obj/rpi/arm.armv6/tank/src10r/usr.bin/svn/svn/../lib/libapr/libapr.a(= builtins.o): In function `apr_atomic_dec32': builtins.c:(.text+0x90): undefined reference to `__sync_sub_and_fetch_4' *** Error code 1 Stop. make: stopped in /tank/src10r/usr.bin/svn/svn I've split the failures into two categories: __sync_add_and_fetch_8 __sync_lock_test_and_set_8 __sync_val_compare_and_swap_8 these should be defined in /usr/src/sys/arm/arm/stdatomic.c (and compiled into libcompiler_rt.a) but that file only defines 1-, 2- and 4-byte variants for userland armv6 (it looks like it fakes 8-byte variants in the kernel by disabling interrupts). I don't know ARM assembler well enough to know if there's any way to do 64-bit atomic operations. I suspect not. __sync_sub_and_fetch_4 There are references to __sync_sub_and_fetch() but I can't any sign of a definition. It looks like __sync_sub_and_fetch_4 is supposed to be a gcc builtin so I'm not sure why it's being emitted without a definition. --=20 Peter Jeremy --PNTmBPCT7hxwcZjr Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.20 (FreeBSD) iEYEARECAAYFAlHX1/YACgkQ/opHv/APuIcuwwCcCjDgQlNkFiZegVo5BdIhlFIl n1wAn2I+HLgmSVKWQlIqC7nKKOMhIgpS =TF+/ -----END PGP SIGNATURE----- --PNTmBPCT7hxwcZjr--