Re: [PATCH] H8/300: sim: testsuite: Use the correct file descriptor for stdout.

Andrew Burgess <[email protected]>
Newsgroups gmane.comp.gdb.patches
Message-ID <[email protected]>
Hi Jan,

Thanks for fixing this.

Note: your subject lines ends with a period.  The GDB/sim style is to
drop the period from the subject line.

Jan Dubiec <[email protected]> writes:

> This is obviously a typo, because the file descriptor for stdout is 1 on
> both Linux and Windows. As a result, the test cases returned nothing
> on Windows, i.e. neither "pass" nor "fail". Which, BTW, raises the
> question of why 0 works on Linux. For over 20 years...

On Linux, FDs 0, 1, and 2 are usually all pointing at the same
underlying device which is opened for bi-directional I/O.  FD 1 might
get line or block buffering from libc, but once the write actually goes
out to the kernel, it's all going to the same underlying pseudo-terminal
device which is bi-directional.

As a result, writing to stdin will work just fine.

Obviously none of this is true if the parent process goes out of its way
to adjust 0, 1, and 2 prior to exec-ing the simulator.  But for normal
use, that's why this is working on Linux.

>
> Signed-off-by: Jan Dubiec <[email protected]>

Please remove this tag.  This has no meaning for GDB/simulator right
now, but might in the future, in which case it would be good to keep the
commit history free of these tags.

You might want to update the commit message to mention why this was
working fine on Linux.  But with the subject line period removed, and
the Signed-off-by tag removed:

Approved-By: Andrew Burgess <[email protected]>

Thanks,
Andrew


> ---
>  sim/testsuite/h8300/testutils.inc | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/sim/testsuite/h8300/testutils.inc b/sim/testsuite/h8300/testutils.inc
> index 63d27d45c14..1e2c7c31c7b 100644
> --- a/sim/testsuite/h8300/testutils.inc
> +++ b/sim/testsuite/h8300/testutils.inc
> @@ -85,7 +85,7 @@ _main:
>  
>  ; Output "pass\n"
>  	.macro pass
> -	mov.w	#0, r0		; fd == stdout
> +	mov.w	#1, r0		; fd == stdout
>  .if (sim_cpu == h8300)
>  	mov.w	#pass_str, r1	; buf == "pass\n"
>  	mov.w	#5, r2		; len == 5
> @@ -98,7 +98,7 @@ _main:
>  
>  ; Output "fail\n"
>  	.macro fail
> -	mov.w	#0, r0		; fd == stdout
> +	mov.w	#1, r0		; fd == stdout
>  .if (sim_cpu == h8300)
>  	mov.w	#fail_str, r1	; buf == "fail\n"
>  	mov.w	#5, r2		; len == 5
> -- 
> 2.55.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.