This is the mail archive of the ecos-patches@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

synthetic target update


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  <bartv@ecoscentric.com>

	* 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"
 	}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]