From patchwork Wed Mar 6 13:57:04 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amrita H S X-Patchwork-Id: 86877 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 8A9933858C36 for ; Wed, 6 Mar 2024 14:01:52 +0000 (GMT) X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id EA7B6385801F for ; Wed, 6 Mar 2024 14:01:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org EA7B6385801F Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: sourceware.org; spf=none smtp.mailfrom=linux.vnet.ibm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org EA7B6385801F Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709733667; cv=none; b=raN2Ax9myoBDiJ9wn4Sxj23LoDA92252SjkIjQMnd4tpYMPyJJy2xU171VwvH617HfX6P4eR+fSCJxZkAvSF80Pi9ea7fu7ltOCgCOmFGTFSUJvJpfWNctEZbzB0OWlwHMDMHwaG83tOQzMiz2XmdR/rCL+IhDKLZcZuu6PWdto= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709733667; c=relaxed/simple; bh=sOni6YLYshAHzIn5h/i/PNayHDgNNmHtg5VzSGFjIFI=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=OFa01pZDi6HfcWD3baGJ6+ujdGrQwCXD/3SWmAzpWaNwrsUM43lb41HgBb8V/+M+4LZKUn/IXcBJNdV4RGSXkSdzfJpmm789I9yVd1ls86vkwjxm3KATuGwMzFxSsrBe+7aDQmeDC/bbNawtH/WXwSbCxFGfcRrJur4Y1+ejQPA= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 426DxNQk030106 for ; Wed, 6 Mar 2024 14:01:04 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : mime-version : content-transfer-encoding; s=pp1; bh=tlLO83WmbfoYcqRF8AzgxeQWMwybyawBOZHl4ANM9Y8=; b=SXTiOt65nJgxyqelWTnFVHIp90ZXaJceh31sEriAO88tLl3B4/DvFYBti756bsx7Ko8V MrSU4wGYTBo6d01uDbv3biG4fYD4xVNhii6USAFWTHbx/D9+jx6w22gkGKQ4fk1jjiTV vemrWn2vpz6e4YR0sRXSelAeFh7Tu6SkR1cIF373ihxBa+IGnk7Rck3aJOtURfpeS2LO 9J9gYEfjVN4TDVmOeqgM8/I7J91lPdHt2oYkv7+OR7GDt+wgSZcPvODoPbB4kdnASZhe i5Zw1Cago7EIn1pyOXp3Rn5FyOHL9ULJZdx5lsIu4yn54dyLnWF+sijfWpxQXye5GAG8 Aw== Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3wprxy25e0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 06 Mar 2024 14:01:02 +0000 Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 426C3dx2024166 for ; Wed, 6 Mar 2024 13:57:15 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3wpjwsa917-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 06 Mar 2024 13:57:15 +0000 Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com [10.20.54.101]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 426Dv9I825166344 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 6 Mar 2024 13:57:11 GMT Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4A63220043; Wed, 6 Mar 2024 13:57:09 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 88FE920040; Wed, 6 Mar 2024 13:57:08 +0000 (GMT) Received: from ltcd97-lp3.. (unknown [9.40.194.171]) by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 6 Mar 2024 13:57:08 +0000 (GMT) From: Amrita H S To: libc-alpha@sourceware.org Cc: bergner@linux.ibm.com, Amrita H S Subject: [PATCH V1] powerpc: Placeholder and infrastructure/build support to add Power11 related changes. Date: Wed, 6 Mar 2024 08:57:04 -0500 Message-ID: <20240306135705.1417833-1-amritahs@linux.vnet.ibm.com> X-Mailer: git-send-email 2.44.0 MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: 7oV18LW_LlHYrf4lBCMavrdwkSK7h3N3 X-Proofpoint-GUID: 7oV18LW_LlHYrf4lBCMavrdwkSK7h3N3 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-06_08,2024-03-05_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 mlxscore=0 impostorscore=0 clxscore=1011 lowpriorityscore=0 priorityscore=1501 spamscore=0 mlxlogscore=999 adultscore=0 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2403060112 X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org The following three changes have been added to provide initial Power11 support. 1. Add the directories to hold Power11 files. 2. Add support to select Power11 libraries based on AT_PLATFORM. 3. Let submachine=power11 be set automatically. Signed-off-by: Amrita H S Signed-off-by: isn't needed. Reviewed-by: Florian Weimer Reviewed-by: Peter Bergner --- sysdeps/powerpc/dl-procinfo.h | 8 +++++++- sysdeps/powerpc/powerpc32/power11/Implies | 2 ++ sysdeps/powerpc/powerpc32/power11/fpu/multiarch/Implies | 1 + sysdeps/powerpc/powerpc32/power11/multiarch/Implies | 1 + sysdeps/powerpc/powerpc64/be/power11/Implies | 2 ++ sysdeps/powerpc/powerpc64/be/power11/fpu/Implies | 1 + .../powerpc/powerpc64/be/power11/fpu/multiarch/Implies | 1 + sysdeps/powerpc/powerpc64/be/power11/multiarch/Implies | 1 + sysdeps/powerpc/powerpc64/le/power11/Implies | 2 ++ sysdeps/powerpc/powerpc64/le/power11/fpu/Implies | 1 + .../powerpc/powerpc64/le/power11/fpu/multiarch/Implies | 1 + sysdeps/powerpc/powerpc64/le/power11/multiarch/Implies | 1 + sysdeps/powerpc/powerpc64/le/tst-glibc-hwcaps.c | 6 ++++-- sysdeps/powerpc/preconfigure | 2 +- sysdeps/powerpc/preconfigure.ac | 2 +- 15 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 sysdeps/powerpc/powerpc32/power11/Implies create mode 100644 sysdeps/powerpc/powerpc32/power11/fpu/multiarch/Implies create mode 100644 sysdeps/powerpc/powerpc32/power11/multiarch/Implies create mode 100644 sysdeps/powerpc/powerpc64/be/power11/Implies create mode 100644 sysdeps/powerpc/powerpc64/be/power11/fpu/Implies create mode 100644 sysdeps/powerpc/powerpc64/be/power11/fpu/multiarch/Implies create mode 100644 sysdeps/powerpc/powerpc64/be/power11/multiarch/Implies create mode 100644 sysdeps/powerpc/powerpc64/le/power11/Implies create mode 100644 sysdeps/powerpc/powerpc64/le/power11/fpu/Implies create mode 100644 sysdeps/powerpc/powerpc64/le/power11/fpu/multiarch/Implies create mode 100644 sysdeps/powerpc/powerpc64/le/power11/multiarch/Implies diff --git a/sysdeps/powerpc/dl-procinfo.h b/sysdeps/powerpc/dl-procinfo.h index 68f4241095..15e26d92e5 100644 --- a/sysdeps/powerpc/dl-procinfo.h +++ b/sysdeps/powerpc/dl-procinfo.h @@ -37,7 +37,7 @@ #define HWCAP_IMPORTANT (PPC_FEATURE_HAS_ALTIVEC \ + PPC_FEATURE_HAS_DFP) -#define _DL_PLATFORMS_COUNT 16 +#define _DL_PLATFORMS_COUNT 17 #define _DL_FIRST_PLATFORM 32 /* Mask to filter out platforms. */ @@ -61,6 +61,7 @@ #define PPC_PLATFORM_POWER8 13 #define PPC_PLATFORM_POWER9 14 #define PPC_PLATFORM_POWER10 15 +#define PPC_PLATFORM_POWER11 16 static inline const char * __attribute__ ((unused)) @@ -88,6 +89,11 @@ _dl_string_platform (const char *str) ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER10; str++; } + else if (str[1] == '1') + { + ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER11; + str++; + } else return -1; break; diff --git a/sysdeps/powerpc/powerpc32/power11/Implies b/sysdeps/powerpc/powerpc32/power11/Implies new file mode 100644 index 0000000000..051cbe0f79 --- /dev/null +++ b/sysdeps/powerpc/powerpc32/power11/Implies @@ -0,0 +1,2 @@ +powerpc/powerpc32/power10/fpu +powerpc/powerpc32/power10 diff --git a/sysdeps/powerpc/powerpc32/power11/fpu/multiarch/Implies b/sysdeps/powerpc/powerpc32/power11/fpu/multiarch/Implies new file mode 100644 index 0000000000..58edb2861d --- /dev/null +++ b/sysdeps/powerpc/powerpc32/power11/fpu/multiarch/Implies @@ -0,0 +1 @@ +powerpc/powerpc32/power10/fpu/multiarch diff --git a/sysdeps/powerpc/powerpc32/power11/multiarch/Implies b/sysdeps/powerpc/powerpc32/power11/multiarch/Implies new file mode 100644 index 0000000000..c70f0428ba --- /dev/null +++ b/sysdeps/powerpc/powerpc32/power11/multiarch/Implies @@ -0,0 +1 @@ +powerpc/powerpc32/power10/multiarch diff --git a/sysdeps/powerpc/powerpc64/be/power11/Implies b/sysdeps/powerpc/powerpc64/be/power11/Implies new file mode 100644 index 0000000000..de481d1c13 --- /dev/null +++ b/sysdeps/powerpc/powerpc64/be/power11/Implies @@ -0,0 +1,2 @@ +powerpc/powerpc64/be/power10/fpu +powerpc/powerpc64/be/power10 diff --git a/sysdeps/powerpc/powerpc64/be/power11/fpu/Implies b/sysdeps/powerpc/powerpc64/be/power11/fpu/Implies new file mode 100644 index 0000000000..dff0e13064 --- /dev/null +++ b/sysdeps/powerpc/powerpc64/be/power11/fpu/Implies @@ -0,0 +1 @@ +powerpc/powerpc64/be/power10/fpu diff --git a/sysdeps/powerpc/powerpc64/be/power11/fpu/multiarch/Implies b/sysdeps/powerpc/powerpc64/be/power11/fpu/multiarch/Implies new file mode 100644 index 0000000000..c3f259e009 --- /dev/null +++ b/sysdeps/powerpc/powerpc64/be/power11/fpu/multiarch/Implies @@ -0,0 +1 @@ +powerpc/powerpc64/be/power10/fpu/multiarch diff --git a/sysdeps/powerpc/powerpc64/be/power11/multiarch/Implies b/sysdeps/powerpc/powerpc64/be/power11/multiarch/Implies new file mode 100644 index 0000000000..9491a394c9 --- /dev/null +++ b/sysdeps/powerpc/powerpc64/be/power11/multiarch/Implies @@ -0,0 +1 @@ +powerpc/powerpc64/be/power10/multiarch diff --git a/sysdeps/powerpc/powerpc64/le/power11/Implies b/sysdeps/powerpc/powerpc64/le/power11/Implies new file mode 100644 index 0000000000..e18182dcc1 --- /dev/null +++ b/sysdeps/powerpc/powerpc64/le/power11/Implies @@ -0,0 +1,2 @@ +powerpc/powerpc64/le/power10/fpu +powerpc/powerpc64/le/power10 diff --git a/sysdeps/powerpc/powerpc64/le/power11/fpu/Implies b/sysdeps/powerpc/powerpc64/le/power11/fpu/Implies new file mode 100644 index 0000000000..e41bd55684 --- /dev/null +++ b/sysdeps/powerpc/powerpc64/le/power11/fpu/Implies @@ -0,0 +1 @@ +powerpc/powerpc64/le/power10/fpu diff --git a/sysdeps/powerpc/powerpc64/le/power11/fpu/multiarch/Implies b/sysdeps/powerpc/powerpc64/le/power11/fpu/multiarch/Implies new file mode 100644 index 0000000000..c838d50931 --- /dev/null +++ b/sysdeps/powerpc/powerpc64/le/power11/fpu/multiarch/Implies @@ -0,0 +1 @@ +powerpc/powerpc64/le/power10/fpu/multiarch diff --git a/sysdeps/powerpc/powerpc64/le/power11/multiarch/Implies b/sysdeps/powerpc/powerpc64/le/power11/multiarch/Implies new file mode 100644 index 0000000000..687248c3c2 --- /dev/null +++ b/sysdeps/powerpc/powerpc64/le/power11/multiarch/Implies @@ -0,0 +1 @@ +powerpc/powerpc64/le/power10/multiarch diff --git a/sysdeps/powerpc/powerpc64/le/tst-glibc-hwcaps.c b/sysdeps/powerpc/powerpc64/le/tst-glibc-hwcaps.c index 77465d9133..65d3e69303 100644 --- a/sysdeps/powerpc/powerpc64/le/tst-glibc-hwcaps.c +++ b/sysdeps/powerpc/powerpc64/le/tst-glibc-hwcaps.c @@ -36,9 +36,11 @@ compute_level (void) return 9; if (strcmp (platform, "power10") == 0) return 10; + if (strcmp (platform, "power11") == 0) + return 11; printf ("warning: unrecognized AT_PLATFORM value: %s\n", platform); - /* Assume that the new platform supports POWER10. */ - return 10; + /* Assume that the new platform supports POWER11. */ + return 11; } static int diff --git a/sysdeps/powerpc/preconfigure b/sysdeps/powerpc/preconfigure index 4de94089a3..9e5a07ab6d 100644 --- a/sysdeps/powerpc/preconfigure +++ b/sysdeps/powerpc/preconfigure @@ -58,7 +58,7 @@ fi ;; - a2|970|power[4-9]|power5x|power6+|power10) + a2|970|power[4-9]|power5x|power6+|power10|power11) submachine=${archcpu} if test ${libc_cv_cc_submachine+y} then : diff --git a/sysdeps/powerpc/preconfigure.ac b/sysdeps/powerpc/preconfigure.ac index 6c63bd8257..14b6dafd4a 100644 --- a/sysdeps/powerpc/preconfigure.ac +++ b/sysdeps/powerpc/preconfigure.ac @@ -46,7 +46,7 @@ case "${machine}:${submachine}" in AC_CACHE_VAL(libc_cv_cc_submachine,libc_cv_cc_submachine="") ;; - a2|970|power[[4-9]]|power5x|power6+|power10) + a2|970|power[[4-9]]|power5x|power6+|power10|power11) submachine=${archcpu} AC_CACHE_VAL(libc_cv_cc_submachine,libc_cv_cc_submachine="") ;;