Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Maxim Grigoriev <maxim@tensilica.com>
To: Pierre Muller <muller@ics.u-strasbg.fr>,
	  gdb-patches@sources.redhat.com
Subject: Re: [RFC] adding gdb.pascal subdir: updated version
Date: Fri, 07 Sep 2007 22:45:00 -0000	[thread overview]
Message-ID: <46E1D494.2010409@hq.tensilica.com> (raw)
In-Reply-To: <001901c7f19f$db34e780$919eb680$@u-strasbg.fr>

Try adding patches as an attachment.

-- Maxim


Pierre Muller wrote:
>  I don't understand what is going on with my email program,
> but if I check before sending, every line of the headers
> is OK (all header diff lines start with '+#')
> But as soon as I send the email, it gets transformed
> and mangled.
>
>   I attached the diff file,
> hoping that this will avoid my troubles.
>
> Pierre Muller
> Pascal language maintainer
>
>
> PS: Even more strangely, the generated mess
> in the headers disappears as soon as I do a Reply,
> There is probably some hidden feature of Outlook that I still did
> not understand and disable :(
>  
>   
>> Index: lib/pascal.exp
>> ===================================================================
>> RCS file: lib/pascal.exp
>> diff -N lib/pascal.exp
>> --- /dev/null	1 Jan 1970 00:00:00 -0000
>> +++ lib/pascal.exp	7 Sep 2007 21:46:32 -0000
>> @@ -0,0 +1,152 @@
>> +# Copyright 2007 Free Software Foundation, Inc.
>> +#
>> +# This program 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 of the License, or
>> +# (at your option) any later version.
>> +#
>> +# This program 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.
>> +#
>> +# You should have received a copy of the GNU General Public License
>> +# along with this program.  If not, see
>> <http://www.gnu.org/licenses/>.
>> +
>> +load_lib libgloss.exp
>>     
>
> It is almost perfectly restored, just the last line containing the web
> address is still wrongly splitted. If someone can explain how to disable
> Outlook from poking around my lines, I would appreciate greatly.
>   
> ------------------------------------------------------------------------
>
> 2007-09-08  Pierre Muller  <muller@ics.u-strasbg.fr>
>             Daniel Jacobowitz  <dan@codesourcery.com>
>
> 	* Makefile.in (ALL_SUBDIRS): Add gdb.pascal.
> 	* configure.ac (AC_OUTPUT): Add gdb.pascal/Makefile.
> 	* configure: Regenerated.
> 	* gdb.pascal/Makefile.in, gdb.pascal/hello.exp, gdb.pascal/hello.pas,
> 	gdb.pascal/types.exp, lib/pascal.exp: New files.
>
>
> Index: Makefile.in
> ===================================================================
> RCS file: /cvs/src/src/gdb/testsuite/Makefile.in,v
> retrieving revision 1.18
> diff -u -p -r1.18 Makefile.in
> --- Makefile.in	27 Mar 2007 18:09:35 -0000	1.18
> +++ Makefile.in	7 Sep 2007 21:46:12 -0000
> @@ -37,7 +37,7 @@ RPATH_ENVVAR = @RPATH_ENVVAR@
>  ALL_SUBDIRS = gdb.ada gdb.arch gdb.asm gdb.base gdb.cp gdb.disasm \
>  	gdb.dwarf2 \
>  	gdb.fortran gdb.server gdb.java gdb.mi \
> -	gdb.objc gdb.threads gdb.trace gdb.xml \
> +	gdb.objc gdb.pascal gdb.threads gdb.trace gdb.xml \
>  	$(SUBDIRS)
>  
>  EXPECT = `if [ -f $${rootme}/../../expect/expect ] ; then \
> Index: configure
> ===================================================================
> RCS file: /cvs/src/src/gdb/testsuite/configure,v
> retrieving revision 1.23
> diff -u -p -r1.23 configure
> --- configure	23 Jan 2007 17:11:54 -0000	1.23
> +++ configure	7 Sep 2007 21:46:24 -0000
> @@ -3102,7 +3102,7 @@ done
>  
>  
>  
> -                                                                                                                                                                ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.server/Makefile gdb.java/Makefile gdb.mi/Makefile gdb.objc/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
> +                                                                                                                                                                          ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.server/Makefile gdb.java/Makefile gdb.mi/Makefile gdb.objc/Makefile gdb.pascal/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
>  cat >confcache <<\_ACEOF
>  # This file is a shell script that caches the results of configure
>  # tests run on this system so they can be shared between configure
> Index: configure.ac
> ===================================================================
> RCS file: /cvs/src/src/gdb/testsuite/configure.ac,v
> retrieving revision 1.7
> diff -u -p -r1.7 configure.ac
> --- configure.ac	23 Aug 2007 17:58:44 -0000	1.7
> +++ configure.ac	7 Sep 2007 21:46:24 -0000
> @@ -113,6 +113,6 @@ AC_OUTPUT([Makefile \
>    gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile \
>    gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile \
>    gdb.fortran/Makefile gdb.server/Makefile \
> -  gdb.java/Makefile gdb.mi/Makefile \
> -  gdb.objc/Makefile gdb.threads/Makefile gdb.trace/Makefile \
> +  gdb.java/Makefile gdb.mi/Makefile gdb.objc/Makefile \  
> +  gdb.pascal/Makefile gdb.threads/Makefile gdb.trace/Makefile \
>    gdb.xml/Makefile])
> Index: gdb.pascal/Makefile.in
> ===================================================================
> RCS file: gdb.pascal/Makefile.in
> diff -N gdb.pascal/Makefile.in
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ gdb.pascal/Makefile.in	7 Sep 2007 21:46:31 -0000
> @@ -0,0 +1,24 @@
> +VPATH = @srcdir@
> +srcdir = @srcdir@
> +
> +EXECUTABLES = hello/hello 
> +
> +MISCELLANEOUS =
> +
> +all info install-info dvi install uninstall installcheck check:
> +	@echo "Nothing to be done for $@..."
> +
> +clean mostlyclean:
> +	-find . -name '*.o' -print | xargs rm -f
> +	-find . -name '*.ali' -print | xargs rm -f
> +	-find . -name 'b~*.ad[sb]' -print | xargs rm -f
> +	-rm -f *~ a.out xgdb *.x *.ci *.tmp
> +	-rm -f *~ *.o a.out xgdb *.x *.ci *.tmp
> +	-rm -f core core.coremaker coremaker.core corefile $(EXECUTABLES)
> +	-rm -f $(MISCELLANEOUS) twice-tmp.c
> +
> +distclean maintainer-clean realclean: clean
> +	-rm -f *~ core
> +	-rm -f Makefile config.status config.log
> +	-rm -f *-init.exp
> +	-rm -fr *.log summary detail *.plog *.sum *.psum site.*
> Index: gdb.pascal/hello.exp
> ===================================================================
> RCS file: gdb.pascal/hello.exp
> diff -N gdb.pascal/hello.exp
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ gdb.pascal/hello.exp	7 Sep 2007 21:46:31 -0000
> @@ -0,0 +1,72 @@
> +# Copyright 2007 Free Software Foundation, Inc.
> +#
> +# This program 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 of the License, or
> +# (at your option) any later version.
> +#
> +# This program 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.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
> +
> +if $tracelevel then {
> +    strace $tracelevel
> +}
> +
> +load_lib "pascal.exp"
> +
> +set testfile "hello"
> +set srcfile ${testfile}.pas
> +set binfile ${objdir}/${subdir}/${testfile}
> +
> +if {[gdb_compile_pascal "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug ]] != "" } {
> +  return -1
> +}
> +
> +gdb_exit
> +gdb_start
> +gdb_reinitialize_dir $srcdir/$subdir
> +gdb_load ${binfile}
> +set bp_location1 [gdb_get_line_number "set breakpoint 1 here"]
> +set bp_location2 [gdb_get_line_number "set breakpoint 2 here"]
> +
> +if { [gdb_breakpoint ${srcfile}:${bp_location1}] } {
> +    pass "setting breakpoint 1"
> +}
> +if { [gdb_breakpoint ${srcfile}:${bp_location2}] } {
> +    pass "setting breakpoint 2"
> +}
> +
> +# Verify that "start" lands inside the right procedure.
> +if { [gdb_start_cmd] < 0 } {
> +    untested start
> +    return -1
> +}
> +
> +# This test fails for gpc
> +# because debug information for 'main'
> +# is in some <implicit code>
> +gdb_test "" \
> +         ".* at .*hello.pas.*" \
> +         "start"
> +
> +gdb_test "cont" \
> +         "Breakpoint .*:${bp_location1}.*" \
> +         "Going to first breakpoint"
> +gdb_test "print st" \
> +	 ".* = ''.*" \
> +	 "Empty string check"
> +
> +# This test also fails for gpc because the program
> +# stops after the string has been written
> +# while it should stop before writing it 
> +gdb_test "cont" \
> +	 "Breakpoint .*:${bp_location2}.*" \
> +	 "Going to second breakpoint"
> +gdb_test "print st" \
> +	 ".* = 'Hello, world!'.*" \
> +	 "String after assignment check"
> Index: gdb.pascal/hello.pas
> ===================================================================
> RCS file: gdb.pascal/hello.pas
> diff -N gdb.pascal/hello.pas
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ gdb.pascal/hello.pas	7 Sep 2007 21:46:31 -0000
> @@ -0,0 +1,15 @@
> +program hello;
> +
> +var
> +  st : string;
> +
> +procedure print_hello;
> +begin
> + Writeln('Before assignment'); { set breakpoint 1 here }
> + st:='Hello, world!'; 
> + writeln(st); {set breakpoint 2 here }
> +end;
> +
> +begin
> +  print_hello;
> +end. 
> Index: gdb.pascal/types.exp
> ===================================================================
> RCS file: gdb.pascal/types.exp
> diff -N gdb.pascal/types.exp
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ gdb.pascal/types.exp	7 Sep 2007 21:46:31 -0000
> @@ -0,0 +1,109 @@
> +# Copyright 1994, 1995, 1997, 1998, 2007 Free Software Foundation, Inc.
> +# Copyright 2007 Free Software Foundation, Inc.
> +#
> +# This program 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 of the License, or
> +# (at your option) any later version.
> +#
> +# This program 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.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
> +
> +# Please email any bugs, comments, and/or additions to this file to:
> +# bug-gdb@prep.ai.mit.edu
> +
> +# This file was adapted from old Chill tests by Stan Shebs
> +# (shebs@cygnus.com).
> +# Adapted to pascal by Pierre Muller
> +
> +if $tracelevel then {
> +	strace $tracelevel
> +}
> +
> +set prms_id 0
> +set bug_id 0
> +
> +# Set the current language to pascal.  This counts as a test.  If it
> +# fails, then we skip the other tests.
> +
> +proc set_lang_pascal {} {
> +    global gdb_prompt
> +    
> +    if [gdb_test "set language pascal" ""] {
> +	return 0;
> +    }
> +
> +    if ![gdb_test "show language" ".* source language is \"pascal\".*"] {
> +	return 1;
> +    } else {
> +	return 0;
> +    }
> +}
> +
> +proc test_integer_literal_types_accepted {} {
> +    global gdb_prompt
> +
> +    # Test various decimal values.
> +    # Should be integer*4 probably.
> +    gdb_test "pt 123" "type = int" 
> +}
> +proc test_character_literal_types_accepted {} {
> +    global gdb_prompt
> +
> +    # Test various character values.
> +
> +    gdb_test "pt 'a'" "type = char"
> +}
> +
> +proc test_string_literal_types_accepted {} {
> +    global gdb_prompt
> +
> +    # Test various character values.
> +
> +    gdb_test "pt 'a simple string'" "type = string"
> +}
> +
> +proc test_logical_literal_types_accepted {} {
> +    global gdb_prompt
> +
> +    # Test the only possible values for a logical, TRUE and FALSE.
> +
> +    gdb_test "pt TRUE" "type = bool"
> +    gdb_test "pt FALSE" "type = bool"
> +}
> +
> +proc test_float_literal_types_accepted {} {
> +    global gdb_prompt
> +
> +    # Test various floating point formats
> +
> +    # this used to guess whether to look for "real*4" or
> +    # "real*8" based on a target config variable, but noone
> +    # maintained it properly.
> +
> +    gdb_test "pt .44" "type = double"
> +    gdb_test "pt 44.0" "type = double"
> +    gdb_test "pt 10e20" "type = double"
> +    gdb_test "pt 10E20" "type = double"
> +}
> +
> +# Start with a fresh gdb.
> +
> +gdb_exit
> +gdb_start
> +gdb_reinitialize_dir $srcdir/$subdir
> +
> +if [set_lang_pascal] then {
> +    test_integer_literal_types_accepted
> +    test_logical_literal_types_accepted
> +    test_character_literal_types_accepted
> +    test_string_literal_types_accepted
> +    test_float_literal_types_accepted
> +} else {
> +    warning "$test_name tests suppressed." 0
> +}
> Index: lib/pascal.exp
> ===================================================================
> RCS file: lib/pascal.exp
> diff -N lib/pascal.exp
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ lib/pascal.exp	7 Sep 2007 21:46:32 -0000
> @@ -0,0 +1,152 @@
> +# Copyright 2007 Free Software Foundation, Inc.
> +#
> +# This program 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 of the License, or
> +# (at your option) any later version.
> +#
> +# This program 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.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
> +
> +load_lib libgloss.exp
> +
> +set pascal_init_done 0
> +
> +# This procedure looks for a suitable pascal compiler
> +# For now only GNU pascal compiler and Free Pascal compiler
> +# are searched.
> +# First, environment variable GPC is checked
> +# if present, GPC compiler is assumed to be the value of
> +# that environment variable.
> +# Second, environment variable FPC is checked
> +# if present, Free Pascal compiler is assumed to be the value of
> +# that environment variable.
> +# Third, gpc executable is searched using `which gpc`  
> +# Lastly, fpc executable is searched using `which fpc` 
> +# Using environment variable allows to force
> +# which compiler is used in testsuite
> + 
> +proc pascal_init {} {
> +    global pascal_init_done
> +    global pascal_compiler_is_gpc
> +    global pascal_compiler_is_fpc
> +    global gpc_compiler
> +    global fpc_compiler
> +    global env
> + 
> +    if { $pascal_init_done == 1 } {
> +	return
> +    }
> +
> +    set pascal_compiler_is_gpc 0
> +    set pascal_compiler_is_fpc 0
> +    set gpc_compiler [transform gpc]
> +    set fpc_compiler [transform fpc]
> +
> +    if ![is_remote host] {
> +	if { [info exists env(GPC)] } {
> +	    set pascal_compiler_is_gpc 1
> +	    set gpc_compiler $env(GPC)
> +	    verbose -log "Assuming GNU Pascal ($gpc_compiler)"
> +	} elseif { [info exists env(FPC)] } {
> +	    set pascal_compiler_is_fpc 1
> +	    set fpc_compiler $env(FPC)
> +	    verbose -log "Assuming Free Pascal ($fpc_compiler)"
> +	} elseif { [which $gpc_compiler] != 0 } {
> +	    set pascal_compiler_is_gpc 1
> +	    verbose -log "GNU Pascal compiler found"
> +        } elseif { [which $fpc_compiler] != 0 } {
> +	    set pascal_compiler_is_fpc 1
> +	    verbose -log "Free Pascal compiler found"
> +	}
> +    }
> +    set pascal_init_done 1
> +}   
> +
> +proc gpc_compile {source dest type options} {
> +    global gpc_compiler
> +    set add_flags ""
> +    if {$type == "object"} {
> +	append add_flags " -c"
> +    }
> +
> +    if { $type == "preprocess" } {
> +	append add_flags " -E"
> +    }
> +    
> +    if { $type == "assembly" } {
> +	append add_flags " -S"
> +    }
> +
> +    foreach i $options {
> +	if { $i == "debug" } {
> +	    if [board_info $dest exists debug_flags] {
> +		append add_flags " [board_info $dest debug_flags]";
> +	    } else {
> +		append add_flags " -g"
> +	    }
> +	}
> +    }
> +
> +    set result [remote_exec host $gpc_compiler "-o $dest --automake $add_flags $source"]
> +    return $result
> +}
> +
> +proc fpc_compile {source dest type options} {
> +    global fpc_compiler
> +    set add_flags ""
> +    if {$type == "object"} {
> +	append add_flags " -Cn"
> +    }
> +
> +    if { $type == "preprocess" } {
> +	return "Free Pascal can not preprocess"
> +    }
> +    
> +    if { $type == "assembly" } {
> +	append add_flags " -al"
> +    }
> +
> +    foreach i $options {
> +	if { $i == "debug" } {
> +	    if [board_info $dest exists debug_flags] {
> +		append add_flags " [board_info $dest debug_flags]";
> +	    } else {
> +		append add_flags " -g"
> +	    }
> +	}
> +    }
> +
> +    set result [remote_exec host $fpc_compiler "-o$dest $add_flags $source"]
> +    return $result
> +}
> +
> +proc gdb_compile_pascal {source dest type options} {
> +    global pascal_init_done
> +    global pascal_compiler_is_gpc
> +    global pascal_compiler_is_fpc
> +
> +    if { $pascal_init_done == 0 } { 
> +	pascal_init
> +    }
> +
> +    if { $pascal_compiler_is_fpc == 1 } {
> +        set result [fpc_compile $source $dest $type $options]
> +    } elseif { $pascal_compiler_is_gpc == 1 } {
> +        set result [gpc_compile $source $dest $type $options]
> +    } else {
> +	unsupported "No pascal compiler found"
> +	return "No pascal compiler. Compilation failed."
> +    }
> +
> +    if ![file exists $dest] {
> +        unsupported "Pascal compilation failed: $result"
> +        return "Pascal compilation failed."
> +    }
> +}
> +
>
>   


  reply	other threads:[~2007-09-07 22:45 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <000601c77c0a$26b91750$742b45f0$@u-strasbg.fr>
     [not found] ` <20070412154722.GA4189@caradoc.them.org>
     [not found]   ` <001201c77de2$008bc7b0$01a35710$@u-strasbg.fr>
     [not found]     ` <002a01c7b3cf$1cd594f0$5680bed0$@u-strasbg.fr>
     [not found]       ` <20070705143246.GA4958@caradoc.them.org>
2007-07-17 22:17         ` [RFC] adding gdb.pascal subdir Pierre Muller
2007-07-18  9:16           ` 'Daniel Jacobowitz'
2007-07-18 12:39             ` Pierre Muller
2007-09-07 22:16             ` [RFC] adding gdb.pascal subdir: updated version Pierre Muller
2007-09-07 22:38               ` Pierre Muller
2007-09-07 22:45                 ` Maxim Grigoriev [this message]
2007-10-06 15:42                 ` 'Daniel Jacobowitz'
2007-10-08  7:14                   ` Pierre Muller
2007-10-08 12:03                     ` 'Daniel Jacobowitz'
2007-10-08 12:17                       ` Pierre Muller
2007-10-08 12:42                         ` 'Daniel Jacobowitz'
2007-10-08 13:42                           ` Pierre Muller
2007-10-08 13:56                             ` 'Daniel Jacobowitz'

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46E1D494.2010409@hq.tensilica.com \
    --to=maxim@tensilica.com \
    --cc=gdb-patches@sources.redhat.com \
    --cc=muller@ics.u-strasbg.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox