From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dedi548.your-server.de (dedi548.your-server.de [85.10.215.148]) by sourceware.org (Postfix) with ESMTPS id AC2AD3857C41 for ; Wed, 20 Jul 2022 09:28:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org AC2AD3857C41 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 sslproxy05.your-server.de ([78.46.172.2]) by dedi548.your-server.de with esmtpsa (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1oE60W-000H07-Ny for gcc@gcc.gnu.org; Wed, 20 Jul 2022 11:28:41 +0200 Received: from [82.100.198.138] (helo=mail.embedded-brains.de) by sslproxy05.your-server.de with esmtpsa (TLSv1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oE60W-000GYc-Ua for gcc@gcc.gnu.org; Wed, 20 Jul 2022 11:28:40 +0200 Received: from localhost (localhost [127.0.0.1]) by mail.embedded-brains.de (Postfix) with ESMTP id 996D548004B for ; Wed, 20 Jul 2022 11:28:40 +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 gcKxNZGBFboV for ; Wed, 20 Jul 2022 11:28:40 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by mail.embedded-brains.de (Postfix) with ESMTP id 422AE4801D4 for ; Wed, 20 Jul 2022 11:28:40 +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 d_I1V0lw-1l8 for ; Wed, 20 Jul 2022 11:28:40 +0200 (CEST) Received: from [10.10.171.6] (unknown [10.10.171.6]) by mail.embedded-brains.de (Postfix) with ESMTPSA id 16B3348004B for ; Wed, 20 Jul 2022 11:28:40 +0200 (CEST) Message-ID: Date: Wed, 20 Jul 2022 11:28:39 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: Use -ftls-model=local-exec for RTEMS by default? Content-Language: en-US From: Sebastian Huber To: GCC Development References: In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable 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.4 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, NICE_REPLY_A, 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@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2022 09:28:44 -0000 On 20/07/2022 10:43, Sebastian Huber wrote: > Hello, >=20 > RTEMS applications are usually fully statically linked together with th= e=20 > operating system. So, we can use the -ftls-model=3Dlocal-exec TLS model= .=20 > The default value for this option is defined in common.opt: >=20 > ftls-model=3D > Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default)=20 > Init(TLS_MODEL_GLOBAL_DYNAMIC) > -ftls-model=3D[global-dynamic|local-dynamic|initial-exec|local-exec] = =20 > Set the default thread-local storage code generation model. >=20 > Would it be possible to customize the default value for RTEMS? I think this could be done by adding #define CC1_SPEC "%{!ftls-model=3D*:-ftls-model=3Dlocal-exec}" to gcc/config/rtems.h. However, the CC1_SPEC is also defined by several=20 targets. Would it be possible to add an OS_CC1_SPEC like this? diff --git a/gcc/gcc.cc b/gcc/gcc.cc index bb07cc244e3..7ddabc888b0 100644 --- a/gcc/gcc.cc +++ b/gcc/gcc.cc @@ -709,6 +709,12 @@ proper position among the other output files. */ #define CC1_SPEC "" #endif +/* config.h can define OS_CC1_SPEC to provide extra args to cc1 and cc1p= lus + or operating system specific extra switch-translations. */ +#ifndef OS_CC1_SPEC +#define OS_CC1_SPEC "" +#endif + /* config.h can define CC1PLUS_SPEC to provide extra args to cc1plus or extra switch-translations. */ #ifndef CC1PLUS_SPEC @@ -1194,7 +1200,7 @@ proper position among the other output files. */ static const char *asm_debug =3D ASM_DEBUG_SPEC; static const char *asm_debug_option =3D ASM_DEBUG_OPTION_SPEC; static const char *cpp_spec =3D CPP_SPEC; -static const char *cc1_spec =3D CC1_SPEC; +static const char *cc1_spec =3D CC1_SPEC OS_CC1_SPEC; static const char *cc1plus_spec =3D CC1PLUS_SPEC; static const char *link_gcc_c_sequence_spec =3D LINK_GCC_C_SEQUENCE_SPE= C; static const char *link_ssp_spec =3D LINK_SSP_SPEC; How does Ada get its default TLS model? --=20 embedded brains GmbH Herr Sebastian HUBER Dornierstr. 4 82178 Puchheim Germany email: sebastian.huber@embedded-brains.de phone: +49-89-18 94 741 - 16 fax: +49-89-18 94 741 - 08 Registergericht: Amtsgericht M=C3=BCnchen Registernummer: HRB 157899 Vertretungsberechtigte Gesch=C3=A4ftsf=C3=BChrer: Peter Rasmussen, Thomas= D=C3=B6rfler Unsere Datenschutzerkl=C3=A4rung finden Sie hier: https://embedded-brains.de/datenschutzerklaerung/