[18/25] Fix interleaving of Fortran stop messages

Message ID 2ba94a85fe9c01c57e474a4cc6b7171cc0adb351.1536144068.git.ams@codesourcery.com
State New
Headers show
Series
  • AMD GCN Port
Related show

Commit Message

Andrew Stubbs Sept. 5, 2018, 11:51 a.m.
Fortran STOP and ERROR STOP use a different function to print the "STOP" string
and the message string.  On GCN this results in out-of-order output, such as
"<msg>ERROR STOP ".

This patch fixes the problem by making estr_write use the proper Fortran write,
not C printf, so both parts are now output the same way.  This also ensures
that both parts are output to STDERR (not that that means anything on GCN).

2018-09-05  Kwok Cheung Yeung  <kcy@codesourcery.com>

	libgfortran/
	* runtime/minimal.c (estr_write): Define in terms of write.
---
 libgfortran/runtime/minimal.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Janne Blomqvist Sept. 5, 2018, 6:11 p.m. | #1
On Wed, Sep 5, 2018 at 7:57 PM Toon Moene <toon@moene.org> wrote:

>

>

>

> -------- Forwarded Message --------

> Subject: [PATCH 18/25] Fix interleaving of Fortran stop messages

> Date: Wed, 5 Sep 2018 12:51:19 +0100

> From: ams@codesourcery.com

> To: gcc-patches@gcc.gnu.org

>

>

> Fortran STOP and ERROR STOP use a different function to print the "STOP"

> string

> and the message string.  On GCN this results in out-of-order output, such

> as

> "<msg>ERROR STOP ".

>

> This patch fixes the problem by making estr_write use the proper Fortran

> write,

> not C printf, so both parts are now output the same way.  This also ensures

> that both parts are output to STDERR (not that that means anything on GCN).

>

> 2018-09-05  Kwok Cheung Yeung  <kcy@codesourcery.com>

>

>         libgfortran/

>         * runtime/minimal.c (estr_write): Define in terms of write.

> ---

>   libgfortran/runtime/minimal.c | 2 +-

>   1 file changed, 1 insertion(+), 1 deletion(-)

>

>

>

Ok, thanks.

-- 
Janne Blomqvist
Andrew Stubbs Sept. 12, 2018, 1:55 p.m. | #2
On 05/09/18 19:11, Janne Blomqvist wrote:
> Ok, thanks.


Committed, thanks.

Apologies again for missing the Fortran list.

Andrew

Patch

diff --git a/libgfortran/runtime/minimal.c b/libgfortran/runtime/minimal.c
index 8940f97..b6d26fd 100644
--- a/libgfortran/runtime/minimal.c
+++ b/libgfortran/runtime/minimal.c
@@ -196,7 +196,7 @@  sys_abort (void)
 #undef st_printf
 #define st_printf printf
 #undef estr_write
-#define estr_write printf
+#define estr_write(X) write(STDERR_FILENO, (X), strlen (X))
 #if __nvptx__
 /* Map "exit" to "abort"; see PR85463 '[nvptx] "exit" in offloaded region
    doesn't terminate process'.  */