From patchwork Thu Mar 11 22:01:14 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Edelsohn X-Patchwork-Id: 1451552 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=sourceware.org; envelope-from=gcc-patches-bounces@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=n7wvuHqJ; dkim-atps=neutral Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DxNFR6QbWz9sVt for ; Fri, 12 Mar 2021 09:01:30 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 4E3043894406; Thu, 11 Mar 2021 22:01:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4E3043894406 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1615500088; bh=rm03B/ua63WKUUy+ljEyYmKIn7QINTRrzOprxYfhsKc=; h=Date:Subject:To:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=n7wvuHqJ7u4yeEgnSymn6neTqRCmaaWTKzgo3lx9vf+n2GhEYDC4M7EeFJBA5ljFV HUHPBzlzZrY9SpPRbkEu/mkKi04+66LpeN1jD7KoqGWdQdDw+yEorhHl7OfIXjPZaL k0uChWca2sibfAQXYqC4Pkvnyogcq8Z+/rkaVycA= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) by sourceware.org (Postfix) with ESMTPS id 4E7953860C2E for ; Thu, 11 Mar 2021 22:01:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 4E7953860C2E Received: by mail-wr1-x433.google.com with SMTP id y16so3645197wrw.3 for ; Thu, 11 Mar 2021 14:01:26 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=rm03B/ua63WKUUy+ljEyYmKIn7QINTRrzOprxYfhsKc=; b=FwhIqFFSae0yjTHBk9bYkS4QQ4deDzQM0XKIFrhfacsLc3QaByHgk9xeA98IhyyWn6 WbF/Qcds+9k8nWRhLKk/FPj4Csp2dxxcx4PlTiyfuL8dBABJnxq/RknWBQDELYr0IQNr zQ/1RrRUS/FE4QYYJ69DP4fm2QoIoxdn+uUQD/UMt6PtfsMhzgBJcX6jKfzkFyiHghhX xbpQoEVfrGVqqynQkhtSj/OWeL+Pg/b2Tb/jZ3cnsoOIV+nTpJs+/iJmwuWHSO4k5/tn 7/i9YXJrPfI9wHxl8tpFDXq/Orl0VUCLpxMqLgEZECoD5F8Gn2sFZgWhjewoBcuJDAyr 1/Nw== X-Gm-Message-State: AOAM530g68dGM6LHfalMssr58G8ALQSIRvAWyDslcIlpiCD977Mg2bfl RwwU0VApMb3cgQKZ99V7Xn4ovlGMPhTnWFcN03YOuEJcjA0= X-Google-Smtp-Source: ABdhPJyAUnafOrkInr3sZ+Oi0BnsqDN6gtYPpPoWlDHzhXdv9lKWEaSpnBhECyfK8TBFtOmyTBhdqcorf6KeWvNUyVA= X-Received: by 2002:a5d:4281:: with SMTP id k1mr10748196wrq.374.1615500085025; Thu, 11 Mar 2021 14:01:25 -0800 (PST) MIME-Version: 1.0 Date: Thu, 11 Mar 2021 17:01:14 -0500 Message-ID: Subject: [PATCH] AIX thread local uninitialized data (PR 99094) To: GCC Patches X-Spam-Status: No, score=-8.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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: , X-Patchwork-Original-From: David Edelsohn via Gcc-patches From: David Edelsohn Reply-To: David Edelsohn Errors-To: gcc-patches-bounces@gcc.gnu.org Sender: "Gcc-patches" GCC on AIX generates thread local uninitialized data in the common section, which could conflict with another module. This patch changes the code generation to place static uninitialized thread local data into the local common section specified with .lcomm. This change also removes the need to create a file-local name for the TBSS data. Bootstrapped on powerpc-ibm-aix7.2.3.0. gcc/ChangeLog: 2021-03-11 David Edelsohn PR target/99094 * config/rs6000/rs6000.c (rs6000_xcoff_file_start): Don't create xcoff_tbss_section_name. * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .lcomm. * xcoffout.c (xcoff_tbss_section_name): Delete. * xcoffout.h (xcoff_tbss_section_name): Delete. diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 35ecf5ac9ab..46ddf49d34b 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -21261,8 +21261,6 @@ rs6000_xcoff_file_start (void) main_input_filename, ".ro_"); rs6000_gen_section_name (&xcoff_tls_data_section_name, main_input_filename, ".tls_"); - rs6000_gen_section_name (&xcoff_tbss_section_name, - main_input_filename, ".tbss_[UL]"); fputs ("\t.file\t", asm_out_file); output_quoted_string (asm_out_file, main_input_filename); diff --git a/gcc/config/rs6000/xcoff.h b/gcc/config/rs6000/xcoff.h index c01667809a5..cb9aae753b2 100644 --- a/gcc/config/rs6000/xcoff.h +++ b/gcc/config/rs6000/xcoff.h @@ -255,11 +255,11 @@ } while (0) #ifdef HAVE_AS_TLS -#define ASM_OUTPUT_TLS_COMMON(FILE, DECL, NAME, SIZE) \ - do { fputs (COMMON_ASM_OP, (FILE)); \ - RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \ - fprintf ((FILE), "[UL]," HOST_WIDE_INT_PRINT_UNSIGNED"\n", \ - (SIZE)); \ +#define ASM_OUTPUT_TLS_COMMON(FILE, DECL, NAME, SIZE) \ + do { fputs (LOCAL_COMMON_ASM_OP, (FILE)); \ + fprintf ((FILE), "%s," HOST_WIDE_INT_PRINT_UNSIGNED",%s[UL],3\n", \ + (*targetm.strip_name_encoding) (NAME), (SIZE), \ + (*targetm.strip_name_encoding) (NAME)); \ } while (0) #endif diff --git a/gcc/xcoffout.c b/gcc/xcoffout.c index d07c2fba44e..3dbea04ea5d 100644 --- a/gcc/xcoffout.c +++ b/gcc/xcoffout.c @@ -66,7 +66,6 @@ char *xcoff_bss_section_name; char *xcoff_private_data_section_name; char *xcoff_private_rodata_section_name; char *xcoff_tls_data_section_name; -char *xcoff_tbss_section_name; char *xcoff_read_only_section_name; /* Last source file name mentioned in a NOTE insn. */ diff --git a/gcc/xcoffout.h b/gcc/xcoffout.h index 10a583b48e0..ae6aee0af2a 100644 --- a/gcc/xcoffout.h +++ b/gcc/xcoffout.h @@ -129,7 +129,6 @@ extern char *xcoff_bss_section_name; extern char *xcoff_private_data_section_name; extern char *xcoff_private_rodata_section_name; extern char *xcoff_tls_data_section_name; -extern char *xcoff_tbss_section_name; extern char *xcoff_read_only_section_name; /* Last source file name mentioned in a NOTE insn. */