From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 99707 invoked by alias); 31 Jul 2018 08:45:59 -0000 Mailing-List: contact fortran-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: fortran-owner@gcc.gnu.org Received: (qmail 99698 invoked by uid 89); 31 Jul 2018 08:45:58 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=4.1 required=5.0 tests=BAYES_00,KAM_SHORT,SPAM_BODY,SPF_PASS autolearn=no version=3.3.2 spammy=edelsohn, Edelsohn, H*Ad:U*tkoenig, H*u:38.2.0 X-HELO: foss.arm.com Received: from foss.arm.com (HELO foss.arm.com) (217.140.101.70) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 31 Jul 2018 08:45:56 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D0C297A9; Tue, 31 Jul 2018 01:45:54 -0700 (PDT) Received: from [10.2.207.62] (e107157-lin.cambridge.arm.com [10.2.207.62]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 145583F5BA; Tue, 31 Jul 2018 01:45:53 -0700 (PDT) Subject: Re: Re: Build fail on gthr-simple.h targets (Re: AsyncI/O patch committed) To: fortran@gcc.gnu.org References: <20180726133142.DE075D801C7@oc3748833570.ibm.com> <01cd923e-18c7-f745-a75d-49536d56cdbf@netcologne.de> From: "Andre Vieira (lists)" Cc: tkoenig@netcologne.de, Ulrich Weigand , dje.gcc@gmail.com Message-ID: <5B6021C0.5060507@arm.com> Date: Tue, 31 Jul 2018 08:45:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-SW-Source: 2018-07/txt/msg00133.txt.bz2 On 27/07/18 13:25, David Edelsohn wrote: > Thomas, > > Correct, the proposed patch does not fix the build failure on AIX. > > Please see the information on the GCC Compile Farm wiki page for > instructions to bootstrap on gcc119. > https://gcc.gnu.org/wiki/CompileFarm#Projects_Ideas - at the bottom of > Project ideas. > > Thanks, David > On Fri, Jul 27, 2018 at 3:30 AM Thomas Koenig wrote: >> >> Am 26.07.2018 um 22:54 schrieb Thomas Koenig: >>> Hi Ulrich, >>> >>>> The problem is that io/asynch.h unconditionally uses a couple of >>>> features that are not provided by gthr-simplex, in particular >>>> __gthread_cond_t >>>> and >>>> __gthread_equal / __gthread_self >>>> >>>> According to the documentation in gthr.h, the former is only available >>>> if __GTHREAD_HAS_COND is defined, and the latter are only available if >>>> __GTHREADS_CXX0X is defined. Neither is true for gthr-simple.h. >>> >>> Thanks for the analysis, and the pointer to the macros. >>> >>> Because the functionality depends on these features, it is best to >>> remove them if it is not present. So, here is a patch which does >>> just that. >>> >>> This was reg-tested on Linux, which showed that the functionality is >>> still there. I tried bootstrapping on AIX on gcc119, but this failed >>> due to an unrelated issue (problem with compiling the inline >>> libraries). >>> >> >> OK, this does not work. >> >> We have found a method of checking on Linux, and this does not work. >> We have also found a way of working in the next couple of days, so >> expect an update in one or two days. >> >> If that is too much time, feel free to revert the async patch >> in the meantime. >> >> Regards >> >> Thomas > Hi Thomas, Sorry but I had to revert your patch as it has been breaking our bare-metal builds for over 5 days now. Comitted as r263082. 2018-07-31 Andre Vieira Reverted 'AsyncI/O patch committed' 2018-07-25 Nicolas Koenig Thomas Koenig PR fortran/25829 * gfortran.texi: Add description of asynchronous I/O. * trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables as volatile. * trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to st_wait_async and change argument spec from ".X" to ".w". (gfc_trans_wait): Pass ID argument via reference. Reverted 'AsyncI/O patch committed' 2018-07-25 Nicolas Koenig Thomas Koenig PR fortran/25829 * gfortran.dg/f2003_inquire_1.f03: Add write statement. * gfortran.dg/f2003_io_1.f03: Add wait statement. Reverted 'AsyncI/O patch committed' 2018-07-25 Nicolas Koenig Thomas Koenig PR fortran/25829 * Makefile.am: Add async.c to gfor_io_src. Add async.h to gfor_io_headers. * Makefile.in: Regenerated. * gfortran.map: Add _gfortran_st_wait_async. * io/async.c: New file. * io/async.h: New file. * io/close.c: Include async.h. (st_close): Call async_wait for an asynchronous unit. * io/file_pos.c (st_backspace): Likewise. (st_endfile): Likewise. (st_rewind): Likewise. (st_flush): Likewise. * io/inquire.c: Add handling for asynchronous PENDING and ID arguments. * io/io.h (st_parameter_dt): Add async bit. (st_parameter_wait): Correct. (gfc_unit): Add au pointer. (st_wait_async): Add prototype. (transfer_array_inner): Likewise. (st_write_done_worker): Likewise. * io/open.c: Include async.h. (new_unit): Initialize asynchronous unit. * io/transfer.c (async_opt): New struct. (wrap_scalar_transfer): New function. (transfer_integer): Call wrap_scalar_transfer to do the work. (transfer_real): Likewise. (transfer_real_write): Likewise. (transfer_character): Likewise. (transfer_character_wide): Likewise. (transfer_complex): Likewise. (transfer_array_inner): New function. (transfer_array): Call transfer_array_inner. (transfer_derived): Call wrap_scalar_transfer. (data_transfer_init): Check for asynchronous I/O. Perform a wait operation on any pending asynchronous I/O if the data transfer is synchronous. Copy PDT and enqueue thread for data transfer.