This is the mail archive of the
ecos-patches@sourceware.org
mailing list for the eCos project.
synthetic target update
- From: Bart Veer <bartv at ecoscentric dot com>
- To: ecos-patches at sourceware dot org
- Date: Wed, 13 Aug 2008 22:05:41 +0100
- Subject: 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"
}