From owner-freebsd-arm@FreeBSD.ORG Tue Jul 16 19:25:31 2013 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 39E8FAC8 for ; Tue, 16 Jul 2013 19:25:31 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from nibbler.fubar.geek.nz (nibbler.fubar.geek.nz [199.48.134.198]) by mx1.freebsd.org (Postfix) with ESMTP id 22BE4C93 for ; Tue, 16 Jul 2013 19:25:30 +0000 (UTC) Received: from bender.Home (97e5e46b.skybroadband.com [151.229.228.107]) by nibbler.fubar.geek.nz (Postfix) with ESMTPSA id 30DE15E200 for ; Tue, 16 Jul 2013 19:25:23 +0000 (UTC) Date: Tue, 16 Jul 2013 20:25:16 +0100 From: Andrew Turner To: freebsd-arm@freebsd.org Subject: HEADS UP: The default ABI has changed Message-ID: <20130716202516.10a67fec@bender.Home> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Jul 2013 19:25:31 -0000 As of r253396 the default ABI on FreeBSD/ARM is the ARM EABI. If you run FreeBSD HEAD on an ARM CPU this will apply to you. If you are currently using the ARM EABI nothing should change for you other than you no longer need to set WITH_ARM_EABI as it is the default. If you are not sure what ABI you are running it is most likely the OABI. People currently running OABI have two options: 1. Stay on OABI by setting WITHOUT_ARM_EABI in make.conf, src.conf or on the command line. This option will be removed sometime in the future. 2. Move to ARM EABI by following the instructions below. By changing to EABI you will need to reinstall everything. This includes your kernel, world and ports/packages (i.e. everything). This is because the ABIs are incompatible with each other. Also not that an EABI kernel is unable to run OABI binaries and vice versa. The suggested way to upgrade to the ARM EABI is to rebuild your kernel and world with a second build machine then upgrade all ports and packages. Building and installing an ARM EABI kernel and world on an OABI system is not guaranteed to work, and it is almost certain to fail. Advantages of ARM EABI: - The main advantage is we are now more compatible with third party software that relies on the ABI. - Compatible with future toolchains. The OABI will likely get less testing as less people use it outside of FreeBSD. - Improved structure alignment rules. - Allow future work to enable Thumb-2 by updating the syscall interface. - Allow future work to enable the hard float variant of the ARM EABI. This will provide a performance improvement for code using floating point operations. There is a known issue with pkg where it will detect the wrong ABI. This is fixed upstream and will be available soon. Andrew