gforth
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gforth] FYI: gforth and gcc 4.7


From: Anton Ertl
Subject: Re: [gforth] FYI: gforth and gcc 4.7
Date: Thu, 12 Apr 2012 17:49:54 +0200
User-agent: Mutt/1.5.18 (2008-05-17)

On Thu, Apr 12, 2012 at 04:24:35PM +0100, Andrew Haley wrote:
> I found a couple of gforth bugs, FYI.
...
> It's this bug, which returns the address of a local array:
> 
> diff -r f14bc589172e prim
> --- a/prim      Thu Apr 12 14:42:46 2012 +0100
> +++ b/prim      Thu Apr 12 14:51:21 2012 +0100
> @@ -1950,7 +1950,7 @@
> 
>  newline        ( -- c_addr u ) gforth
>  ""String containing the newline sequence of the host OS""
> -char newline[] = {
> +static const char newline[] = {
>  #if DIRSEP=='/'
>  /* Unix */
>  '\n'

Thanks.  Why do you think that this is a bug in Gforth and not in gcc?
Whatever it is, we will incorporate such a change.

> We might as well also fix this other bug, which prevents the disassembler from
> working:
> 
> diff -r f14bc589172e dis-gdb.fs
> --- a/dis-gdb.fs        Thu Apr 12 14:42:46 2012 +0100
> +++ b/dis-gdb.fs        Thu Apr 12 14:51:21 2012 +0100
> @@ -25,7 +25,7 @@
>  : disasm-gdb { addr u -- }
>      base @ >r hex
>      s\" type mktemp >/dev/null && type gdb >/dev/null && file=`mktemp -t 
> gforthdis.XXXXXXXXXX` && file2=`mktemp -t gforthdis.XXXXXXXXXX` && echo \"set 
> verbose off\nset logging file $file\nset logging on\ndisas " save-mem ( addr 
> u addr1 u1 )
> -    addr 0 <<# bl hold # #s 'x hold # #> append-extend-string #>>
> +    addr 0 <<# bl hold ',' hold # #s 'x hold # #> append-extend-string #>>
>      addr u + 0 <<# # #s 'x hold # #> append-extend-string #>>
>      r> base ! cr
>      s\" \nset logging off\nquit\n\" >$file2 && gdb -nx -q -p `ps -p $$ -o 
> ppid=` -x $file2 2>/dev/null >/dev/null && rm $file2 && grep -v \"of 
> assembler\" $file && rm $file" append-extend-string

This is from an incompatible syntax change in gdb 7.1.  With this
patch, gforth will no longer work with gdb 7.0 and earlier.  The
workaround for that is:

http://www.complang.tuwien.ac.at/viewcvs/cgi-bin/viewcvs.cgi/gforth/dis-gdb.fs?r1=1.13&r2=1.8&makepatch=1&diff_format=h

- anton



reply via email to

[Prev in Thread] Current Thread [Next in Thread]