From patchwork Thu Jul 21 07:00:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Huber X-Patchwork-Id: 56212 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 93AEA385AE56 for ; Thu, 21 Jul 2022 07:01:10 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from dedi548.your-server.de (dedi548.your-server.de [85.10.215.148]) by sourceware.org (Postfix) with ESMTPS id 077D23858D28 for ; Thu, 21 Jul 2022 07:00:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 077D23858D28 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=embedded-brains.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=embedded-brains.de Received: from sslproxy03.your-server.de ([88.198.220.132]) by dedi548.your-server.de with esmtpsa (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1oEQB2-000DJZ-EM for gcc-patches@gcc.gnu.org; Thu, 21 Jul 2022 09:00:53 +0200 Received: from [82.100.198.138] (helo=mail.embedded-brains.de) by sslproxy03.your-server.de with esmtpsa (TLSv1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oEQB2-000K4D-Kh for gcc-patches@gcc.gnu.org; Thu, 21 Jul 2022 09:00:52 +0200 Received: from localhost (localhost [127.0.0.1]) by mail.embedded-brains.de (Postfix) with ESMTP id 58BC748006B for ; Thu, 21 Jul 2022 09:00:52 +0200 (CEST) Received: from mail.embedded-brains.de ([127.0.0.1]) by localhost (zimbra.eb.localhost [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id v34zLlM2KE7Q for ; Thu, 21 Jul 2022 09:00:52 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by mail.embedded-brains.de (Postfix) with ESMTP id E6F804801E4 for ; Thu, 21 Jul 2022 09:00:51 +0200 (CEST) X-Virus-Scanned: amavisd-new at zimbra.eb.localhost Received: from mail.embedded-brains.de ([127.0.0.1]) by localhost (zimbra.eb.localhost [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id gaVL2vDGSDaf for ; Thu, 21 Jul 2022 09:00:51 +0200 (CEST) Received: from zimbra.eb.localhost (unknown [192.168.96.242]) by mail.embedded-brains.de (Postfix) with ESMTPSA id D250D48006B for ; Thu, 21 Jul 2022 09:00:51 +0200 (CEST) From: Sebastian Huber To: gcc-patches@gcc.gnu.org Subject: [PATCH v2] RTEMS: Add -ftls-model=local-exec to multilibs Date: Thu, 21 Jul 2022 09:00:49 +0200 Message-Id: <20220721070049.70294-1-sebastian.huber@embedded-brains.de> X-Mailer: git-send-email 2.35.3 MIME-Version: 1.0 X-Authenticated-Sender: smtp-embedded@poldinet.de X-Virus-Scanned: Clear (ClamAV 0.103.6/26607/Wed Jul 20 10:04:34 2022) X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_SHORT, SPF_HELO_NONE, SPF_PASS, TXREP 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: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Use the local-exec TLS model for all multilibs of all RTEMS targets with proper TLS support. gcc/ChangeLog: * config.gcc (aarch64-*-rtems*): Extend tmake_file. * config/arm/t-rtems (MULTILIB_EXTRA_OPTS): Define to use -ftls-model=local-exec. * config/i386/t-rtems (MULTILIB_EXTRA_OPTS): Likewise. * config/m68k/t-rtems (MULTILIB_EXTRA_OPTS): Likewise. * config/microblaze/t-rtems (MULTILIB_EXTRA_OPTS): Likewise. * config/nios2/t-rtems (MULTILIB_EXTRA_OPTS): Likewise. * config/riscv/t-rtems (MULTILIB_EXTRA_OPTS): Likewise. * config/rs6000/t-rtems (MULTILIB_EXTRA_OPTS): Likewise. * config/sparc/t-rtems (MULTILIB_EXTRA_OPTS): Likewise. * config/aarch64/t-aarch64-rtems: New file. --- v2: * Include aarch64. This required a new RTEMS-specific file. gcc/config.gcc | 1 + gcc/config/aarch64/t-aarch64-rtems | 20 ++++++++++++++++++++ gcc/config/arm/t-rtems | 1 + gcc/config/i386/t-rtems | 1 + gcc/config/m68k/t-rtems | 1 + gcc/config/microblaze/t-rtems | 1 + gcc/config/nios2/t-rtems | 1 + gcc/config/riscv/t-rtems | 2 ++ gcc/config/rs6000/t-rtems | 1 + gcc/config/sparc/t-rtems | 2 ++ 10 files changed, 31 insertions(+) create mode 100644 gcc/config/aarch64/t-aarch64-rtems diff --git a/gcc/config.gcc b/gcc/config.gcc index 4e3b15bb5e9..c8041723d2a 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1093,6 +1093,7 @@ aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*) ;; aarch64-*-rtems*) tm_file="${tm_file} aarch64/rtems.h rtems.h" + tmake_file="${tmake_file} aarch64/t-aarch64-rtems" ;; esac case $target in diff --git a/gcc/config/aarch64/t-aarch64-rtems b/gcc/config/aarch64/t-aarch64-rtems new file mode 100644 index 00000000000..049ea4fa7c0 --- /dev/null +++ b/gcc/config/aarch64/t-aarch64-rtems @@ -0,0 +1,20 @@ +# Machine description for AArch64 architecture. +# Copyright (C) 2022 Free Software Foundation, Inc. +# +# This file is part of GCC. +# +# GCC is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# GCC is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING3. If not see +# . + +MULTILIB_EXTRA_OPTS = ftls-model=local-exec diff --git a/gcc/config/arm/t-rtems b/gcc/config/arm/t-rtems index b2fcf572bca..aaf11355b11 100644 --- a/gcc/config/arm/t-rtems +++ b/gcc/config/arm/t-rtems @@ -8,6 +8,7 @@ MULTILIB_EXCEPTIONS = MULTILIB_REUSE = MULTILIB_MATCHES = MULTILIB_REQUIRED = +MULTILIB_EXTRA_OPTS = ftls-model=local-exec # Enumeration of multilibs diff --git a/gcc/config/i386/t-rtems b/gcc/config/i386/t-rtems index 692c99484b3..83b95a6e53d 100644 --- a/gcc/config/i386/t-rtems +++ b/gcc/config/i386/t-rtems @@ -24,3 +24,4 @@ MULTILIB_MATCHES += march?pentium=march?k6 march?pentiumpro=march?athlon MULTILIB_EXCEPTIONS = \ march=pentium/*msoft-float* \ march=pentiumpro/*msoft-float* +MULTILIB_EXTRA_OPTS = ftls-model=local-exec diff --git a/gcc/config/m68k/t-rtems b/gcc/config/m68k/t-rtems index 0997afebc94..53a585e3018 100644 --- a/gcc/config/m68k/t-rtems +++ b/gcc/config/m68k/t-rtems @@ -7,3 +7,4 @@ M68K_MLIB_CPU += && (match(MLIB, "^68") \ || MLIB == "5329" \ || MLIB == "5407" \ || MLIB == "5475") +MULTILIB_EXTRA_OPTS = ftls-model=local-exec diff --git a/gcc/config/microblaze/t-rtems b/gcc/config/microblaze/t-rtems index d0c38261aaa..c9c9716ab62 100644 --- a/gcc/config/microblaze/t-rtems +++ b/gcc/config/microblaze/t-rtems @@ -1 +1,2 @@ # Custom multilibs for RTEMS +MULTILIB_EXTRA_OPTS = ftls-model=local-exec diff --git a/gcc/config/nios2/t-rtems b/gcc/config/nios2/t-rtems index beda8328bd2..3c9fbc69c83 100644 --- a/gcc/config/nios2/t-rtems +++ b/gcc/config/nios2/t-rtems @@ -8,6 +8,7 @@ MULTILIB_EXCEPTIONS = MULTILIB_REUSE = MULTILIB_MATCHES = MULTILIB_REQUIRED = +MULTILIB_EXTRA_OPTS = ftls-model=local-exec # Enumeration of multilibs diff --git a/gcc/config/riscv/t-rtems b/gcc/config/riscv/t-rtems index 41f5927fc87..bb49e559ec5 100644 --- a/gcc/config/riscv/t-rtems +++ b/gcc/config/riscv/t-rtems @@ -1,3 +1,5 @@ +MULTILIB_EXTRA_OPTS = ftls-model=local-exec + MULTILIB_OPTIONS = MULTILIB_DIRNAMES = diff --git a/gcc/config/rs6000/t-rtems b/gcc/config/rs6000/t-rtems index 4f8c147be3e..ba7177bf0f5 100644 --- a/gcc/config/rs6000/t-rtems +++ b/gcc/config/rs6000/t-rtems @@ -23,6 +23,7 @@ MULTILIB_DIRNAMES = MULTILIB_MATCHES = MULTILIB_EXCEPTIONS = MULTILIB_REQUIRED = +MULTILIB_EXTRA_OPTS = ftls-model=local-exec MULTILIB_OPTIONS += mcpu=403/mcpu=505/mcpu=603e/mcpu=604/mcpu=860/mcpu=7400/mcpu=8540/mcpu=e6500 MULTILIB_DIRNAMES += m403 m505 m603e m604 m860 m7400 m8540 me6500 diff --git a/gcc/config/sparc/t-rtems b/gcc/config/sparc/t-rtems index c58836c1e96..1917eda322e 100644 --- a/gcc/config/sparc/t-rtems +++ b/gcc/config/sparc/t-rtems @@ -17,6 +17,8 @@ # . # +MULTILIB_EXTRA_OPTS = ftls-model=local-exec + MULTILIB_OPTIONS = msoft-float mcpu=v8/mcpu=leon3/mcpu=leon3v7/mcpu=leon \ mfix-ut699/mfix-at697f/mfix-gr712rc MULTILIB_DIRNAMES = soft v8 leon3 leon3v7 leon ut699 at697f gr712rc