From patchwork Tue Jun 28 16:39:25 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 13433 Received: (qmail 19034 invoked by alias); 28 Jun 2016 16:41:49 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk 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 18923 invoked by uid 89); 28 Jun 2016 16:41:48 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=1416, EDIT X-HELO: na01-bn1-obe.outbound.protection.outlook.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Yuri.Norov@caviumnetworks.com; From: Yury Norov To: , CC: , , , , , , , , , , , , , , , , Andrew Pinski , Yury Norov Subject: [PATCH 10/23] [AARCH64] Detect ILP32 in configure scripts. Date: Tue, 28 Jun 2016 19:39:25 +0300 Message-ID: <1467131978-669-11-git-send-email-ynorov@caviumnetworks.com> In-Reply-To: <1467131978-669-1-git-send-email-ynorov@caviumnetworks.com> References: <1467131978-669-1-git-send-email-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-ClientProxiedBy: AM5PR0901CA0024.eurprd09.prod.outlook.com (10.164.186.162) To BN4PR07MB2243.namprd07.prod.outlook.com (10.164.63.149) X-MS-Office365-Filtering-Correlation-Id: 357dd10f-d12c-444b-c25c-08d39f731109 X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2243; 2:VhIannDVAOwJ5YUg2jLC/jjFq/ae/A0o+tk0MdDa3rHIYebdnh+7eLSRiVka4SrXR7BZ2hOtBIWYqt0Escbt9wfeLIx5QnB7AEjeGzrdRxYKaPaPvfEphNu2uMD/a+rOZd5Rbkcj+UrZuAO0Hp7gNrUs0scmd+TO19S5lE6/oKgS/XHf2Mp0Fm22ezZ1KgA+; 3:JxqFg1Re6QNeq/JZEW1HusanPgULJL8kMwxCQWO/TXs7OGPDeCp6wZDQuTqrdyJ+oR1qkeeduvlmx0vTDG45ZD4loIjvOfe7SvWLOWUTPPWsE4jrRkONedbMtQ+LJut2 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN4PR07MB2243; X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2243; 25:b2UE40W/zAGRbwZjbDQVekDUCUHEancMj+y7/CPfISMspkQixR6YLaxvl91TuDB08x8oI5fpGT3nAWGlY1xCVymBSOuWcMxTww4DdzUsnRr+4IEXIatbkBPsXV1Q/ZyVLIk2NWXxNQ14QT8guz97DtJYpM5++w0XF9C8se178YlS8bxiHomOGBa8+w9x4+es8lcEhY5+5FGKaDu3TRKJ5v7NeWGmvqKzQzEcm0XjPS0QeeUJqKhvFjRQPznQw3W3RmLCuiuNQGdsWCDqCJlHQkIjorF1uLYBjADUvXx5e+I1OEbCgUbB6URhpp6AP4sHOV1qBXzHaCEHFpbnez4KpXE0TLMx9+gHrjhEjpsWAKQ7TRlTa1jiEQmWixx0SX5DZyzA32JQv9vfO6WWispYR8xU7FBJRCzqgL/uXHxtg+UngoaQ0ku7d70IaOJZD2bYFM4xNEzdLULhgBullxf+GUSpVJFq/ONLCGo/Eu99aCAYtnQBAy2BIWuxxCyDMs0Ro4DWjPUl6V4et1f41WfLek5JkMsu06p7DpTbyD/zj6lFoYPDlpwv83rJHB+ARkcXljHhmpFcERpTx1rCSzMoobG3dlzciEoLn53rJSbXype/hOlIlj2lPq9p2l4WE0M1v2IagnVwpfmrI9qfbU8D9AoL1v+74mQA0K9BrutD9TPehSSxMEHQCJT1IwoLUWbrHj/pBtHQuExkIoAr1o5en0Kro+Etp5oGYjAkMet3ZkFw6LgBIga5dRd381R+dAcF X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2243; 31:dTUZzdvwNWSoXQt+VBNfJBh7v6Jl46U6ugkkoQAM+qZ4IhUtT9x68GHluljx4RQ24QruY0jQXU4fnJYNeE6M+z5Wk72ZWyDfB7lFnCz/g5LU6I+5D2W0X5cfRISHRKlewvhF7Q1OlKHHVRg6zfH8gPwo+TMm/SA82Qad6ytwYtI0WHlE0L3Cg8aZ9kr7feTFcnLBv43P4O458tTplabmdg==; 20:8o+vUtaGBSLAqp+F7Sm3l5gQPuRqVNrYxwyOj7jLU9oCTMeQ6pkJvPbngMkO5/RH0tIDFktzP1BVs0Vzx7YDfT+y4olu6dGlS44OZDsXzEkgf0FAlb+8C2pWLZ0Iof3krL1lNuJ8q9iB5eKoO7RjMt/Ldv/2lF5PhBVTNw2vxzPLQm4Je8OR+cANL6HSNQIWzObIA3d6N+syitztXLyDqpQsCr+/LUG6XxYjXPVaisJcUSXj7ZkLXAS69FtGZTCfW3SgZFmvOVAdmnrfMGT1/gY1O2SiZfYFmIUeFPE2Dr+i/W5LY55cHQfU7ZXhdofxEm3brtN6sepWhprq8AWFU04iFVo5vWXDUSXEDQiAmDQxzMSOsO1/NZSNn0Gl1JT/nkcOePoAUDWTWuVCmXvc3W8zCLZ3JUN7lUeWbuVC1RsXaKevD0zoq6/BeS4f2vZ4E6bgRI4fDX2Y88p5mA23/hepfhTGZjKdmUyy0/ve6mJLHOzAHuckaMS6aiz0jGbb45Js86yp+rP17I+SFLsfFFd3aKhe1/3orrhvnniGormDQ1KpnJbOE0kkmUEDwXYUpAJBWZmQ48+G3387NBeYqs4P/0up3FHlzXLlbgrsR4M= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001); SRVR:BN4PR07MB2243; BCL:0; PCL:0; RULEID:; SRVR:BN4PR07MB2243; X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2243; 4:qZQSz3IPOEc9aQxN59fAJe3XAKzsL6ebjVF9biNixNFvp6kBjqRySob89CNjjZo70Aal7KXx6oObN+M8NulKM0FcBHtyW5qdAOjJ1Jy8gt7SjzBShIwuA21Hk4+MGn3Cb0r6tCZNBQyisusvG7q3MKdpdyOomT8sbqoBpwqQcP2RSpHe6LdVNHyW0x1Kn2pYpYBDItWmk/Cog5CijKdwM/5k0OBxLTgbStJgiqJLveAz1MraicrM8sZ42HFhm5eT4BAgbjXuN+HyBiEpqOsBJCfKhYoO5+DQe2tTvFdfd4v7t7RhnGMLlzrhCg49PULCu4hScrlnOAWOt9KXDxoNbPsyol0YRE1kUvmmOM6DTVcSeOUicsnBdv4My139IIPK X-Forefront-PRVS: 0987ACA2E2 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(7916002)(199003)(189002)(50986999)(101416001)(76176999)(107886002)(5001770100001)(5003940100001)(97736004)(189998001)(66066001)(48376002)(42186005)(47776003)(76506005)(36756003)(19580395003)(92566002)(19580405001)(106356001)(50466002)(81166006)(81156014)(4326007)(8676002)(2906002)(33646002)(229853001)(105586002)(6116002)(4001430100002)(3846002)(50226002)(305945005)(7736002)(68736007)(586003)(7846002)(77096005)(2950100001)(2101003); DIR:OUT; SFP:1101; SCL:1; SRVR:BN4PR07MB2243; H:localhost; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: caviumnetworks.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN4PR07MB2243; 23:b5nkLkG+NxuNJrp/kNbZn78/ZNGrOjnPF0O/g4lOi?= =?us-ascii?Q?WRvGl+dbiGKrVBYAq0Zo2D1duzFkefhRmBJi4d22mCSd57mT7EuS+vp9Ka9w?= =?us-ascii?Q?LmJ81rAW8Zj/F2QSDsSVz742fXIX/dgbM3QbJqeCfXKHAgN/CUtMPNMcJ6uH?= =?us-ascii?Q?1OwhmoB5EFig+b4T3AANRALe5vhjwHl9w5svOv4JzgmkhNRNFec1gs46HeU8?= =?us-ascii?Q?9bGcoGIPuhgybNpszzYu6Sg199xtWRFIpy3VQRmHy/dC36WA5gz8TFTgOZ6Y?= =?us-ascii?Q?fibBRFvB8SV24WhgUuNONILJ0C5mmthQ6joUlw7oSPZeKD406CApx08PtcVf?= =?us-ascii?Q?idljItlCMzIY2JmGdPQCpN/A3My84X+0wKAMgyTjVL6X/jCPSoXb1WHLMszu?= =?us-ascii?Q?ZsVLWnbo6Bx5boXhrtbV6ygtHOPT5/z3rW1WMIVAV0lTjOsq7K2p40gnDLqO?= =?us-ascii?Q?0UeoAb0ZLg966cYVqZne46WREmS0GKIF7+2+vDslpNJPn5boe5isYkDp0ID0?= =?us-ascii?Q?GerDJ+VmlPxFyC/PFPV6J2Inp8hAIKo++1kLDHPjwpywBNZkol7HHvg27awM?= =?us-ascii?Q?0PxC24lOjb/oCX0LtVCj+xlr6D0EfvSc3v0BKg7i6qp6aNT1eyOi3Cnar9J+?= =?us-ascii?Q?d73X1oXC6mIZM5+BMjGdeXXGH97vtcteC4QzaMEy+F58+KLrypux9bKcsOqi?= =?us-ascii?Q?M8jjE/UOjZ9oG093HBo1AFrO51JifgXh6trnn38fGLfFBWLgunsPKVCO95Z8?= =?us-ascii?Q?IojgTeEuY+2Lwj1Cs2g/IlPIlGfbCDMN0FIwIuS+lu5mkcK+ntnWILv32cGe?= =?us-ascii?Q?NImBq7uEObVj/GjywfWM4x/rVqcXAiiMWPkuH/JJI+HDx5/xr7vSwQaiLKig?= =?us-ascii?Q?YQz6MpAd/xjD9HnRnVePOy/cjxxhiniEC0/Z6jvPWuz5jDMTAb8uy9AgDyPs?= =?us-ascii?Q?NOf7zH14oobO+t35xOSKmATaYMrstPlaIkHe23dZ6u+ebg6vyUsrkr4NW9Sz?= =?us-ascii?Q?CYTPwyRHctifUpnDs6x4gLOuxp5I9owjVDl/13atzDQUXyR6w5tPODzvv9gj?= =?us-ascii?Q?YF/8JPy+fuCb65QWlCcwyDqzG2J07jvz8fgSWs5c1l3dHxcQslJ1ipZoM5U+?= =?us-ascii?Q?r7oRflOD2hyJjDLE723JjYzQN0ytNHg?= X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2243; 6:Amd+tQw041WS69ywTqfS3QupMMrFaHkvjJ+YVxjSpo1s9wXyq6AJSXHefMu9+J3Si8FgyTopyYqdKvUzVIS5ZfEKKfPtWut7/O2LCwubnWFpPEtl9Fr3974W18N+gJt9UTxVfdGNW3CEY9rcI63LDuobkeIW6uuMnMEsZ6mq/rsYWPbTPFkTC577pjmpf7Qyi8LXVmWQ8U3DcNy/Vh831L0d4pGwyuqD44gOcWx6acmx9dYW6U3h3VBgVDqABph3UX13lopfPGVgEMihP81PLHQf86UbGzfxcMR1zQcHdCs=; 5:HZggojqAGXagmr+AM1UkO3d8mBliCfuAQCJwWSBaXSXwZeDlt+cjCAw6/GHdVppix/sQe++w6DBjDgWdhJCU3FjwBhznLON7v9my8yEALF8NcGVZ3Vrhufe5ckp12unnly+sQ4fkalBE49W3oE921g==; 24:uf0prS6WF+9xLIhps0fuX5Vww3KGt2WCUERxoz60M5BQsrPk9vNyjxnhFTUIRsHV9J5ogpN/tzwAGVWC3nyXQs5d8GNPo5X24GRYBIcrw6U=; 7:ebY/KNWVeL2iqYNnzdyscoHWXDyVkP7EzStRyD3uKPAT+oG5N1+n5gnF9SaqjQqhNcIZ8hqKQrYbO6WeGUy55UxLpkWDc1x9Wq995lh65eieFqUJDqCzMisrZxm03+eZfj7rC3TYSNGe19gx+nPzTtnVYQm66ELqgaGgx+i+NIWhOe4B5DuG6ru+CEdTCFuXpKNEZQn18gsEu4+apWXUk35xH+Vr08Mnle9arPuDFci8vbBzGvnNdl9xPBTwgs4Y SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jun 2016 16:41:34.1306 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN4PR07MB2243 From: Andrew Pinski 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. Signed-off-by: Yury Norov --- 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 f48472c..c6fca86 --- 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_complocaledir='${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..b37a7eb 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=10.0.0 + LIBC_SLIBDIR_RTLDDIR([libilp32], [lib]) +else + arch_minimum_kernel=3.7.0 + LIBC_SLIBDIR_RTLDDIR([lib64], [lib]) +fi -LIBC_SLIBDIR_RTLDDIR([lib64], [lib])