From patchwork Fri Jun 7 14:39:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Stubbs X-Patchwork-Id: 1111907 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-502575-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45L4tj6NkDz9sNR for ; Sat, 8 Jun 2019 00:39:55 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:to:references:from:message-id:date:mime-version :in-reply-to:content-type; q=dns; s=default; b=kpXGJzCWUB7FiaPzD jv32rmD3IBjaIFcjiSfXZOHZpEIAT6ejtDNoad9DVx2Tc2NwBkxuXuUwTtRLXR82 qdFO9XvYOHAU6ztSudcaM/2VKPAD0OgIOLQmlJgpnAykn/4zASA5kDHt4hanicNU 5ikM9GOGtKTFkGvj0MSyDld/nc= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:to:references:from:message-id:date:mime-version :in-reply-to:content-type; s=default; bh=6ZtAvirF+F00R1KqjhTijqM EWEY=; b=cXniRUH/KWRU1tPk12/kFNQYIcUKRoxkW7lYvO4ugsEarH2sNn7P+BF LYCYjHKSx8z0gJZU7/u3LN/gzEYssKVaH/mzzrg954ReahcL7qLEDFgaBMj2HNIb LtTtSDIztHrxwDw5JiGwBtJU3r6RcYFSOOX8aCaG+4LSvm6FV7BY= Received: (qmail 55504 invoked by alias); 7 Jun 2019 14:39:44 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 55482 invoked by uid 89); 7 Jun 2019 14:39:44 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-17.6 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.1 spammy=config.gcc, configgcc, UD:config.gcc, launched X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 07 Jun 2019 14:39:42 +0000 Received: from nat-ies.mentorg.com ([192.94.31.2] helo=svr-ies-mbx-01.mgc.mentorg.com) by relay1.mentorg.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-SHA384:256) id 1hZG1s-0004X5-Hm from Andrew_Stubbs@mentor.com ; Fri, 07 Jun 2019 07:39:40 -0700 Received: from [127.0.0.1] (137.202.0.90) by svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Fri, 7 Jun 2019 15:39:36 +0100 Subject: [PATCH 1/3] Create GCN-specific gthreads To: "gcc-patches@gcc.gnu.org" , Fortran List References: From: Andrew Stubbs Message-ID: Date: Fri, 7 Jun 2019 15:39:36 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 MIME-Version: 1.0 In-Reply-To: This patch creates a new gthread model for AMD GCN devices. For now, there's just enough support for libgfortran to use mutexes in its I/O routines. The rest can be added at a later time, if at all. Notes: * GCN GPUs do not support dynamic creation and deletion of threads, so there can be no implementation for those functions. (There may be many threads, of course, but they are hardware managed and must be launched all at once.) * It would be possible to implement support for EMUTLS, but I have no wish to do so at this time, and it isn't likely to be needed by OpenMP or OpenACC offload kernels, so those functions are also stub implementations. OK to commit? Create GCN-specific gthreads 2019-06-05 Kwok Cheung Yeung Andrew Stubbs gcc/ * config.gcc (thread_file): Set to gcn for AMD GCN. * config/gcn/gcn.c (gcn_emutls_var_init): New function. (TARGET_EMUTLS_VAR_INIT): New hook. config/ * gthr.m4 (GCC_AC_THREAD_HEADER): Add case for gcn. libgcc/ * configure: Regenerate. * config/gcn/gthr-gcn.h: New. diff --git a/config/gthr.m4 b/config/gthr.m4 index 7b29f1f3327..4b937306ad0 100644 --- a/config/gthr.m4 +++ b/config/gthr.m4 @@ -13,6 +13,7 @@ AC_DEFUN([GCC_AC_THREAD_HEADER], case $1 in aix) thread_header=config/rs6000/gthr-aix.h ;; dce) thread_header=config/pa/gthr-dce.h ;; + gcn) thread_header=config/gcn/gthr-gcn.h ;; lynx) thread_header=config/gthr-lynx.h ;; mipssde) thread_header=config/mips/gthr-mipssde.h ;; posix) thread_header=gthr-posix.h ;; diff --git a/gcc/config.gcc b/gcc/config.gcc index 6b00c387247..b450098aa09 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1428,6 +1428,7 @@ amdgcn-*-amdhsa) fi # Force .init_array support. gcc_cv_initfini_array=yes + thread_file=gcn ;; moxie-*-elf) gas=yes diff --git a/gcc/config/gcn/gcn.c b/gcc/config/gcn/gcn.c index 71f4b4ce35a..e528b649cce 100644 --- a/gcc/config/gcn/gcn.c +++ b/gcc/config/gcn/gcn.c @@ -3163,6 +3163,16 @@ gcn_valid_cvt_p (machine_mode from, machine_mode to, enum gcn_cvt_t op) || (to == DFmode && (from == SImode || from == SFmode))); } +/* Implement TARGET_EMUTLS_VAR_INIT. + + Disable emutls (gthr-gcn.h does not support it, yet). */ + +tree +gcn_emutls_var_init (tree, tree decl, tree) +{ + sorry_at (DECL_SOURCE_LOCATION (decl), "TLS is not implemented for GCN."); +} + /* }}} */ /* {{{ Costs. */ @@ -6007,6 +6017,8 @@ print_operand (FILE *file, rtx x, int code) #define TARGET_CONSTANT_ALIGNMENT gcn_constant_alignment #undef TARGET_DEBUG_UNWIND_INFO #define TARGET_DEBUG_UNWIND_INFO gcn_debug_unwind_info +#undef TARGET_EMUTLS_VAR_INIT +#define TARGET_EMUTLS_VAR_INIT gcn_emutls_var_init #undef TARGET_EXPAND_BUILTIN #define TARGET_EXPAND_BUILTIN gcn_expand_builtin #undef TARGET_FUNCTION_ARG diff --git a/libgcc/config/gcn/gthr-gcn.h b/libgcc/config/gcn/gthr-gcn.h new file mode 100644 index 00000000000..4227b515f01 --- /dev/null +++ b/libgcc/config/gcn/gthr-gcn.h @@ -0,0 +1,163 @@ +/* Threads compatibility routines for libgcc2 and libobjc. */ +/* Compile this one with gcc. */ +/* Copyright (C) 2019 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. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +. */ + +/* AMD GCN does not support dynamic creation of threads. There may be many + hardware threads, but they're all created simultaneously at launch time. + + This implementation is intended to provide mutexes for libgfortran, etc. + It is not intended to provide a TLS implementation at this time, + although that may be added later if needed. + + __gthread_active_p returns "1" to ensure that mutexes are used, and that + programs attempting to use emutls will fail with the appropriate abort. + It is expected that the TLS tests will fail. */ + +#ifndef GCC_GTHR_GCN_H +#define GCC_GTHR_GCN_H + +#define __GTHREADS 1 + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef _LIBOBJC +#error "Objective C is not supported on AMD GCN" +#else + +static inline int +__gthread_active_p (void) +{ + return 1; +} + +typedef int __gthread_key_t; +typedef int __gthread_once_t; +typedef int __gthread_mutex_t; +typedef int __gthread_recursive_mutex_t; + +#define __GTHREAD_ONCE_INIT 0 +#define __GTHREAD_MUTEX_INIT 0 +#define __GTHREAD_RECURSIVE_MUTEX_INIT 0 + +static inline int +__gthread_once (__gthread_once_t *__once __attribute__((unused)), + void (*__func) (void) __attribute__((unused))) +{ + return 0; +} + +static inline int +__gthread_key_create (__gthread_key_t *__key __attribute__((unused)), + void (*__dtor) (void *) __attribute__((unused))) +{ + /* Operation is not supported. */ + return -1; +} + +static inline int +__gthread_key_delete (__gthread_key_t __key __attribute__ ((__unused__))) +{ + /* Operation is not supported. */ + return -1; +} + +static inline void * +__gthread_getspecific (__gthread_key_t __key __attribute__((unused))) +{ + return NULL; +} + +static inline int +__gthread_setspecific (__gthread_key_t __key __attribute__((unused)), + const void *__ptr __attribute__((unused))) +{ + /* Operation is not supported. */ + return -1; +} + +static inline int +__gthread_mutex_destroy (__gthread_mutex_t *__mutex __attribute__((unused))) +{ + return 0; +} + +static inline int +__gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex __attribute__((unused))) +{ + return 0; +} + + +static inline int +__gthread_mutex_lock (__gthread_mutex_t *__mutex) +{ + while (__sync_lock_test_and_set (__mutex, 1)) + asm volatile ("s_sleep\t1" ::: "memory"); + + return 0; +} + +static inline int +__gthread_mutex_trylock (__gthread_mutex_t *__mutex) +{ + return __sync_lock_test_and_set (__mutex, 1); +} + +static inline int +__gthread_mutex_unlock (__gthread_mutex_t *__mutex) +{ + __sync_lock_release (__mutex); + + return 0; +} + +static inline int +__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex __attribute__((unused))) +{ + /* Operation is not supported. */ + return -1; +} + +static inline int +__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex __attribute__((unused))) +{ + /* Operation is not supported. */ + return -1; +} + +static inline int +__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex __attribute__((unused))) +{ + /* Operation is not supported. */ + return -1; +} +#endif /* _LIBOBJC */ + +#ifdef __cplusplus +} +#endif + +#endif /* ! GCC_GTHR_GCN_H */ diff --git a/libgcc/configure b/libgcc/configure index b2914de0629..af910b62931 100644 --- a/libgcc/configure +++ b/libgcc/configure @@ -5542,6 +5542,7 @@ tm_file="${tm_file_}" case $target_thread_file in aix) thread_header=config/rs6000/gthr-aix.h ;; dce) thread_header=config/pa/gthr-dce.h ;; + gcn) thread_header=config/gcn/gthr-gcn.h ;; lynx) thread_header=config/gthr-lynx.h ;; mipssde) thread_header=config/mips/gthr-mipssde.h ;; posix) thread_header=gthr-posix.h ;; From patchwork Fri Jun 7 14:40:16 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Stubbs X-Patchwork-Id: 1111908 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-502576-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="Fxk9nb/u"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45L4vP1YhWz9sNR for ; Sat, 8 Jun 2019 00:40:30 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:to:references:from:message-id:date:mime-version :in-reply-to:content-type; q=dns; s=default; b=EX7uc/jVlT3tvmtcb IHKs34lnclKNUgTeDDBCiM96FVscIhfgYUHytuXHNrB0bBLYkQy8Nc4jEiuDu6qa oxyYhdmqDihDjosbso9B6j29rwRrSHDLT/skyJIgGJ6SrTJSMXulBHWeLhrKL7Du xfp3qUw+SFeKjKYEm22zrgFvBE= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:to:references:from:message-id:date:mime-version :in-reply-to:content-type; s=default; bh=elxIWBHgkRmdO+oL19B+deB MoGE=; b=Fxk9nb/u9NYOuAvb/rQMLRXCyHdSnsQuMjrapHBSv2kzusRTWR5UXQs n5Ua8dY14laLZL3qd7WgXvm4r9vvnsrdM7XVLBCiKuqNDz2GNCQBRg/ih0IcaalS DVnd/oPCvmcxFsWf9ip4Y+FYLG9iRGxWbrJqUakE1JJrCGlIzydI= Received: (qmail 58014 invoked by alias); 7 Jun 2019 14:40:23 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 57998 invoked by uid 89); 7 Jun 2019 14:40:23 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-17.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.1 spammy= X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 07 Jun 2019 14:40:22 +0000 Received: from nat-ies.mentorg.com ([192.94.31.2] helo=svr-ies-mbx-01.mgc.mentorg.com) by relay1.mentorg.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-SHA384:256) id 1hZG2W-0004Z0-Re from Andrew_Stubbs@mentor.com ; Fri, 07 Jun 2019 07:40:20 -0700 Received: from [127.0.0.1] (137.202.0.90) by svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Fri, 7 Jun 2019 15:40:17 +0100 Subject: [PATCH 2/3] Stub implementation of unwinding for AMD GCN. To: "gcc-patches@gcc.gnu.org" , Fortran List References: From: Andrew Stubbs Message-ID: Date: Fri, 7 Jun 2019 15:40:16 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 MIME-Version: 1.0 In-Reply-To: This patch provides the "_Unwind_Backtrace" and "_Unwind_GetIPInfo" symbols required to link programs using libgfortran. I do not wish to implement proper backtracing at this time (I have other things to work on), and IIUC none of the existing implementations will Just Work. OK to commit? Stub implementation of unwinding for AMD GCN. 2019-06-07 Andrew Stubbs libgcc/ * config/gcn/t-amdgcn (LIB2ADD): Add unwind-gcn.c. * config/gcn/unwind-gcn.c: New file. diff --git a/libgcc/config/gcn/t-amdgcn b/libgcc/config/gcn/t-amdgcn index 8687c9f3d9f..adbd866a1d9 100644 --- a/libgcc/config/gcn/t-amdgcn +++ b/libgcc/config/gcn/t-amdgcn @@ -1,5 +1,6 @@ LIB2ADD += $(srcdir)/config/gcn/lib2-divmod.c \ - $(srcdir)/config/gcn/lib2-divmod-hi.c + $(srcdir)/config/gcn/lib2-divmod-hi.c \ + $(srcdir)/config/gcn/unwind-gcn.c LIB2ADDEH= LIB2FUNCS_EXCLUDE=__main diff --git a/libgcc/config/gcn/unwind-gcn.c b/libgcc/config/gcn/unwind-gcn.c new file mode 100644 index 00000000000..8aa84d372c3 --- /dev/null +++ b/libgcc/config/gcn/unwind-gcn.c @@ -0,0 +1,37 @@ +/* Stub unwinding implementation. + + Copyright (C) 2019 Free Software Foundation, Inc. + Contributed by Mentor Graphics + + This file 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. + + This file 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. + + Under Section 7 of GPL version 3, you are granted additional + permissions described in the GCC Runtime Library Exception, version + 3.1, as published by the Free Software Foundation. + + You should have received a copy of the GNU General Public License and + a copy of the GCC Runtime Library Exception along with this program; + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + . */ + +#include "unwind.h" + +_Unwind_Reason_Code +_Unwind_Backtrace(_Unwind_Trace_Fn trace, void * trace_argument) +{ + return 0; +} + +_Unwind_Ptr +_Unwind_GetIPInfo (struct _Unwind_Context *c, int *ip_before_insn) +{ + return 0; +} From patchwork Fri Jun 7 14:40:59 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Stubbs X-Patchwork-Id: 1111909 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-502577-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="xLFuR6Du"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45L4wB6s3kz9sNR for ; Sat, 8 Jun 2019 00:41:13 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:to:references:from:message-id:date:mime-version :in-reply-to:content-type; q=dns; s=default; b=cV5Hpa2nFG32EAt4V WGw52qtzkWVTSNu9hm6D5LHoeF6c0+UddnvkpCToyNKQU627RePjnSloTuLJSRiz K4JXDflbdojAhxW5viM/CH0Si2c87kCSASdgXcAeinhFToh7kW1jeNBqfnn9OV+S XEhvu/s377Kncg95N/xnyEKrL4= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:to:references:from:message-id:date:mime-version :in-reply-to:content-type; s=default; bh=vyWNNCJqzlmNt97gsHlA0cp +qGg=; b=xLFuR6DuxpeEy0oMPdHRSOux6/p2/0rx4nHWovnaT1k8y6AlB8DSum2 LrDrZn7V4nF6uFf/NyDB42lLIqbo7BK1ebV7cTDoKZ809mMo+Hz1gxqQmBKuKUF/ geJ37Dw3wI8TjWmOQRcY16OWwqFgd6PihpsKkVP+laW6qpBSUrYo= Received: (qmail 60542 invoked by alias); 7 Jun 2019 14:41:07 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 60528 invoked by uid 89); 7 Jun 2019 14:41:06 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-17.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.1 spammy=HX-Languages-Length:1540 X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 07 Jun 2019 14:41:05 +0000 Received: from nat-ies.mentorg.com ([192.94.31.2] helo=svr-ies-mbx-01.mgc.mentorg.com) by relay1.mentorg.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-SHA384:256) id 1hZG3D-0004av-7d from Andrew_Stubbs@mentor.com ; Fri, 07 Jun 2019 07:41:03 -0700 Received: from [127.0.0.1] (137.202.0.90) by svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Fri, 7 Jun 2019 15:40:59 +0100 Subject: [PATCH 3/3] Enable full libgfortran library for AMD GCN To: "gcc-patches@gcc.gnu.org" , Fortran List References: From: Andrew Stubbs Message-ID: Date: Fri, 7 Jun 2019 15:40:59 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 MIME-Version: 1.0 In-Reply-To: This patch basically reverts the previous patch to put AMD GCN in "minimal" mode. OK to commit? Enable full GFortran library for AMD GCN 2019-06-07 Kwok Cheung Yeung Andrew Stubbs libgfortran/ * configure: Regenerate. * configure.ac (LIBGFOR_MINIMAL): Do not use on AMD GCN. diff --git a/libgfortran/configure b/libgfortran/configure index 60867b93d0e..15c9307f9d5 100755 --- a/libgfortran/configure +++ b/libgfortran/configure @@ -6179,8 +6179,7 @@ fi # * C library support for other features such as signal, environment # variables, time functions - if test "x${target_cpu}" = xnvptx \ - || test "x${target_cpu}" = xamdgcn; then + if test "x${target_cpu}" = xnvptx; then LIBGFOR_MINIMAL_TRUE= LIBGFOR_MINIMAL_FALSE='#' else diff --git a/libgfortran/configure.ac b/libgfortran/configure.ac index 7cfce28ab69..8dcc8606bd4 100644 --- a/libgfortran/configure.ac +++ b/libgfortran/configure.ac @@ -205,8 +205,7 @@ AM_CONDITIONAL(LIBGFOR_USE_SYMVER_SUN, [test "x$gfortran_use_symver" = xsun]) # * C library support for other features such as signal, environment # variables, time functions -AM_CONDITIONAL(LIBGFOR_MINIMAL, [test "x${target_cpu}" = xnvptx \ - || test "x${target_cpu}" = xamdgcn]) +AM_CONDITIONAL(LIBGFOR_MINIMAL, [test "x${target_cpu}" = xnvptx]) # Figure out whether the compiler supports "-ffunction-sections -fdata-sections", # similarly to how libstdc++ does it