From patchwork Mon Oct 27 07:59:40 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Pinski X-Patchwork-Id: 39592 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-lb0-f199.google.com (mail-lb0-f199.google.com [209.85.217.199]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id AE0E22118A for ; Mon, 27 Oct 2014 08:05:28 +0000 (UTC) Received: by mail-lb0-f199.google.com with SMTP id n15sf1039843lbi.10 for ; Mon, 27 Oct 2014 01:05:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:delivered-to:mailing-list :precedence:list-id:list-unsubscribe:list-subscribe:list-archive :list-post:list-help:sender:delivered-to:from:to:cc:subject:date :message-id:in-reply-to:references:x-original-sender :x-original-authentication-results; bh=ivkEHd1OCiXoO1CdXa4w7mIxWEz2xrto6SOkH/hDAUg=; b=N8YkzkfEzMUKa87SIOB3Y2oOLmuK4jumW1n1HEPJvOb2yDX/BRjWIcxVpTGfaNuFcO P9JaoL0s8+p2bbvQdEPmYtRwnvVdB3HobqdJSJs5YcLCtROo8KbnzttOl9z7jD4deJsm /1I+b0AVn7mSc3vD/7rRUG/DAYz5RrnJByhhRUygaEtT+DYOYP31fmwfquC3W4NvPxu6 dkUqPMBpwtGg7lPJLrMpOttxkCBUBc3EP8soqaJ0Ck5pgfO8gaBKFKhGcnj10zIjKQr5 hu28zw3nW9cp3tcKk0BgX5lLqbfFVZx/R4FeW/hwLhBqC5IYdw3Ayt/Pkf9glTCh7AVt 1vRA== X-Gm-Message-State: ALoCoQkXylopU8MiF+pNzuK9YRiRQ95+X1guzEKRWI1j3tU+yI0b32Fvl8HiK1VuiCTRAeAGy+oS X-Received: by 10.112.41.228 with SMTP id i4mr10699lbl.0.1414397127193; Mon, 27 Oct 2014 01:05:27 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: patchwork-forward@linaro.org Received: by 10.152.202.230 with SMTP id kl6ls426943lac.99.gmail; Mon, 27 Oct 2014 01:05:27 -0700 (PDT) X-Received: by 10.152.22.135 with SMTP id d7mr21601129laf.46.1414397126967; Mon, 27 Oct 2014 01:05:26 -0700 (PDT) Received: from mail-la0-x229.google.com (mail-la0-x229.google.com. [2a00:1450:4010:c03::229]) by mx.google.com with ESMTPS id wh3si18627689lbb.118.2014.10.27.01.05.26 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 27 Oct 2014 01:05:26 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 2a00:1450:4010:c03::229 as permitted sender) client-ip=2a00:1450:4010:c03::229; Received: by mail-la0-f41.google.com with SMTP id pn19so5319959lab.14 for ; Mon, 27 Oct 2014 01:05:26 -0700 (PDT) X-Received: by 10.152.116.102 with SMTP id jv6mr21788921lab.40.1414397126859; Mon, 27 Oct 2014 01:05:26 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.112.84.229 with SMTP id c5csp247818lbz; Mon, 27 Oct 2014 01:05:25 -0700 (PDT) X-Received: by 10.68.103.97 with SMTP id fv1mr787926pbb.141.1414397125258; Mon, 27 Oct 2014 01:05:25 -0700 (PDT) Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id so6si9865867pac.164.2014.10.27.01.05.24 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 Oct 2014 01:05:25 -0700 (PDT) Received-SPF: pass (google.com: domain of libc-alpha-return-53824-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Received: (qmail 31387 invoked by alias); 27 Oct 2014 08:03:24 -0000 Mailing-List: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org Precedence: list List-Id: List-Unsubscribe: , List-Subscribe: List-Archive: List-Post: , List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 31329 invoked by uid 89); 27 Oct 2014 08:03:23 -0000 X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.2 X-HELO: mail-ie0-f180.google.com X-Received: by 10.107.149.202 with SMTP id x193mr20616450iod.22.1414397000323; Mon, 27 Oct 2014 01:03:20 -0700 (PDT) From: Andrew Pinski To: libc-alpha@sourceware.org Cc: Andrew Pinski Subject: [PATCH 16/29] [AARCH64] Detect ILP32 in configure scripts. Date: Mon, 27 Oct 2014 00:59:40 -0700 Message-Id: <1414396793-9005-17-git-send-email-apinski@cavium.com> In-Reply-To: <1414396793-9005-1-git-send-email-apinski@cavium.com> References: <1414396793-9005-1-git-send-email-apinski@cavium.com> X-Original-Sender: apinski@cavium.com X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 2a00:1450:4010:c03::229 as permitted sender) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org; dkim=pass header.i=@sourceware.org X-Google-Group-Id: 836684582541 This adds detecting of ILP32 to the configure scripts. Adding to preconfigure detection of ilp32 in preconfigure and then writing out the default-abi in configure. * sysdeps/aarch64/preconfigure: Detect ILP32 and set aarch64_config_abi to ilp32 for ilp32 and lp64 for lp64. Set machine to either aarch64/ilp32 or aarch64/lp64 depending on the ABI that is selected. * sysdeps/aarch64/configure.ac: Define HAVE_AARCH64_ILP32 if this is ILP32. Set the default-abi to either ilp32, lp64, ilp32_be or lp64_be depending on the ABI. * sysdeps/aarch64/configure: Regenerate. * sysdeps/unix/sysv/linux/aarch64/configure.ac: Set arch_minimum_kernel to 3.19.0 for ILP32. Set LIBC_SLIBDIR_RTLDDIR to libilp32/lib for ilp32. * sysdeps/unix/sysv/linux/aarch64/configure: Regenerate. --- sysdeps/aarch64/configure | 15 +++++++++++---- sysdeps/aarch64/configure.ac | 11 +++++++++-- sysdeps/aarch64/preconfigure | 11 ++++++++++- sysdeps/unix/sysv/linux/aarch64/configure | 22 +++++++++++++++++++--- sysdeps/unix/sysv/linux/aarch64/configure.ac | 9 +++++++-- 5 files changed, 56 insertions(+), 12 deletions(-) mode change 100644 => 100755 sysdeps/aarch64/configure mode change 100644 => 100755 sysdeps/unix/sysv/linux/aarch64/configure diff --git a/sysdeps/aarch64/configure b/sysdeps/aarch64/configure old mode 100644 new mode 100755 index 5bd355a..7dd56e8 --- a/sysdeps/aarch64/configure +++ b/sysdeps/aarch64/configure @@ -163,12 +163,19 @@ rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_aarch64_be" >&5 $as_echo "$libc_cv_aarch64_be" >&6; } + +if test $aarch64_config_abi = ilp32; then + $as_echo "#define HAVE_AARCH64_ILP32 1" >>confdefs.h + +fi + if test $libc_cv_aarch64_be = yes; then $as_echo "#define HAVE_AARCH64_BE 1" >>confdefs.h - config_vars="$config_vars -default-abi = lp64_be" + libc_aarch64_be=_be else - config_vars="$config_vars -default-abi = lp64" + libc_aarch64_be= fi + +config_vars="$config_vars +default-abi = ${aarch64_config_abi}${libc_aarch64_be}" diff --git a/sysdeps/aarch64/configure.ac b/sysdeps/aarch64/configure.ac index 7851dd4..9069325 100644 --- a/sysdeps/aarch64/configure.ac +++ b/sysdeps/aarch64/configure.ac @@ -14,9 +14,16 @@ AC_CACHE_CHECK([for big endian], yes #endif ], libc_cv_aarch64_be=yes, libc_cv_aarch64_be=no)]) + +if test $aarch64_config_abi = ilp32; then + AC_DEFINE(HAVE_AARCH64_ILP32) +fi + if test $libc_cv_aarch64_be = yes; then AC_DEFINE(HAVE_AARCH64_BE) - LIBC_CONFIG_VAR([default-abi], [lp64_be]) + libc_aarch64_be=_be else - LIBC_CONFIG_VAR([default-abi], [lp64]) + libc_aarch64_be= fi + +LIBC_CONFIG_VAR([default-abi], [${aarch64_config_abi}${libc_aarch64_be}]) diff --git a/sysdeps/aarch64/preconfigure b/sysdeps/aarch64/preconfigure index d9bd1f8..4bcd8e3 100644 --- a/sysdeps/aarch64/preconfigure +++ b/sysdeps/aarch64/preconfigure @@ -1,6 +1,15 @@ case "$machine" in aarch64*) base_machine=aarch64 - machine=aarch64 + case "$CC $CFLAGS $CPPFLAGS " in + *" -mabi=ilp32 "*) aarch64_config_abi=ilp32 ;; + *" -mabi=lp64 "*) aarch64_config_abi=lp64 ;; + *) aarch64_config_abi=default ;; + esac + case $aarch64_config_abi in + default) machine=aarch64/lp64 aarch64_config_abi=lp64 ;; + ilp32) machine=aarch64/ilp32 ;; + lp64) machine=aarch64/lp64 ;; + esac ;; esac diff --git a/sysdeps/unix/sysv/linux/aarch64/configure b/sysdeps/unix/sysv/linux/aarch64/configure old mode 100644 new mode 100755 index 60230a2..59372d2 --- a/sysdeps/unix/sysv/linux/aarch64/configure +++ b/sysdeps/unix/sysv/linux/aarch64/configure @@ -1,9 +1,23 @@ # This file is generated from configure.ac by Autoconf. DO NOT EDIT! # Local configure fragment for sysdeps/unix/sysv/linux/aarch64. -arch_minimum_kernel=3.7.0 - -test -n "$libc_cv_slibdir" || +if test $aarch64_config_abi = ilp32; then + arch_minimum_kernel=3.19.0 + test -n "$libc_cv_slibdir" || +case "$prefix" in +/usr | /usr/) + libc_cv_slibdir=/libilp32 + libc_cv_rtlddir=/lib + if test "$libdir" = '${exec_prefix}/lib'; then + libdir='${exec_prefix}/libilp32'; + # Locale data can be shared between 32-bit and 64-bit libraries. + libc_cv_localedir='${exec_prefix}/lib/locale' + fi + ;; +esac +else + arch_minimum_kernel=3.7.0 + test -n "$libc_cv_slibdir" || case "$prefix" in /usr | /usr/) libc_cv_slibdir=/lib64 @@ -15,3 +29,5 @@ case "$prefix" in fi ;; esac +fi + diff --git a/sysdeps/unix/sysv/linux/aarch64/configure.ac b/sysdeps/unix/sysv/linux/aarch64/configure.ac index 211fa9c..6526816 100644 --- a/sysdeps/unix/sysv/linux/aarch64/configure.ac +++ b/sysdeps/unix/sysv/linux/aarch64/configure.ac @@ -1,6 +1,11 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. # Local configure fragment for sysdeps/unix/sysv/linux/aarch64. -arch_minimum_kernel=3.7.0 +if test $aarch64_config_abi = ilp32; then + arch_minimum_kernel=3.19.0 + LIBC_SLIBDIR_RTLDDIR([libilp32], [lib]) +else + arch_minimum_kernel=3.7.0 + LIBC_SLIBDIR_RTLDDIR([lib64], [lib]) +fi -LIBC_SLIBDIR_RTLDDIR([lib64], [lib])