A synthetic target update:

1) fix the linker script to cope with toolchain changes.
2) avoid some problems when the I/O auxiliary exits - I have been
   getting occasional X errors.
3) use the right compiler flags.

Bart

2008-08-13  Bart Veer  <[EMAIL PROTECTED]>

        * host/ecosynth.tcl: avoid X problems when shutting down.
        * src/synth.ld: update for recent gcc versions.
        * cdl/hal_synth.cdl: use the right compiler flags to avoid a build
        warning. 

Index: current/src/synth.ld
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/synth/arch/current/src/synth.ld,v
retrieving revision 1.7
diff -u -p -r1.7 synth.ld
--- current/src/synth.ld        12 Jun 2007 20:06:25 -0000      1.7
+++ current/src/synth.ld        13 Aug 2008 21:01:52 -0000
@@ -76,7 +76,9 @@ GROUP(libtarget.a libgcc.a)
 #define SECTION_text(_region_, _vma_, _lma_)                    \
   .text _vma_ : _lma_                                           \
   { _stext = .;                                                 \
-    *(.text*) *(.gnu.warning) *(.gnu.linkonce.t.*) *(.init) }   \
+    *(.text*) *(.gnu.warning) *(.gnu.linkonce.t.*) *(.init)     \
+    *(.note.gnu.build-id)                                       \
+  }                                                             \
   > _region_                                                    \
   _etext = .;  PROVIDE (etext = .);
 
@@ -100,9 +102,11 @@ GROUP(libtarget.a libgcc.a)
     { _FIXUP_START_ = ABSOLUTE(.); *(.fixup) _FIXUP_END_ = ABSOLUTE(.);}       
\
     > _region_
 
-#define SECTION_gcc_except_table(_region_, _vma_, _lma_)                       
        \
-    .gcc_except_table _vma_ : _lma_                                            
\
-    { _EXCEPT_START_ = ABSOLUTE(.); *(.gcc_except_table)                       
\
+#define SECTION_gcc_except_table(_region_, _vma_, _lma_)                       
            \
+    .gcc_except_table _vma_ : _lma_                                         \
+    { _EXCEPT_START_ = ABSOLUTE(.);                                         \
+       *(.gcc_except_table)                                                 \
+       *(.gcc_except_table.*)                                               \
       _EXCEPT_END_ = ABSOLUTE(.);}                                             
\
     > _region_
 
Index: current/cdl/hal_synth.cdl
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/synth/arch/current/cdl/hal_synth.cdl,v
retrieving revision 1.9
diff -u -p -r1.9 hal_synth.cdl
--- current/cdl/hal_synth.cdl   5 Nov 2005 19:43:24 -0000       1.9
+++ current/cdl/hal_synth.cdl   13 Aug 2008 21:02:16 -0000
@@ -65,7 +65,7 @@ cdl_package CYGPKG_HAL_SYNTH {
 
     make {
         <PREFIX>/lib/target.ld: <PACKAGE>/src/synth.ld
-        $(CC) -E -P -Wp,-MD,target.tmp -DEXTRAS=1 -xc $(INCLUDE_PATH) 
$(CFLAGS) -o $@ $<
+        $(CC) -E -P -Wp,-MD,target.tmp -DEXTRAS=1 -xc $(INCLUDE_PATH) 
$(ACTUAL_CFLAGS) -o $@ $<
         @echo $@ ": \\" > $(notdir $@).deps
         @tail -n +2 target.tmp >> $(notdir $@).deps
         @echo >> $(notdir $@).deps
Index: current/host/ecosynth.tcl
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/synth/arch/current/host/ecosynth.tcl,v
retrieving revision 1.1
diff -u -p -r1.1 ecosynth.tcl
--- current/host/ecosynth.tcl   15 Sep 2002 17:52:52 -0000      1.1
+++ current/host/ecosynth.tcl   13 Aug 2008 21:02:46 -0000
@@ -1321,9 +1321,9 @@ namespace eval synth {
     variable _handle_exit_after   ""
     
     proc _handle_exit_request { } {
-
        if { !$synth::ecos_running } {
-           exit 0
+            after idle destroy .
+            return
        }
        # Setting this flag causes ecosynth to exit immediately once
        # the application terminates.
@@ -2332,6 +2332,7 @@ namespace eval synth {
        place .status.heartbeat.image -x $synth::_heartbeat_offset -y 0
 
        proc _heartbeat_update { } {
+            catch {
            if { ! $synth::ecos_running } {
                place configure .status.heartbeat.image -x 0 -y 0
            } else {
@@ -2350,6 +2351,7 @@ namespace eval synth {
                after 100 synth::_heartbeat_update
            }
        }
+        }
        after 100 synth::_heartbeat_update
        
     } elseif { 0 } {
@@ -3097,7 +3099,11 @@ namespace eval synth {
        # Depending on command-line arguments and whether or not the GUI is 
present,
        # the auxiliary should now exit
        if { $synth::flag_immediate_exit } {
+            if { $synth::flag_gui } {
+                after idle destroy .
+            } else {
            exit 0
+            }
        } elseif { !$synth::flag_gui } {
            synth::report "eCos application has exited: I/O auxiliary still 
running in the background.\n"
        }

Reply via email to