This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Building Redboot for Arm processors and gcc4.0
But when I try and build Redboot. I get an error due to the #error
at line 80 in
....\packages\hal\arm\arch\current\src\redboot_linux_exec.c
I was under the impression that this problem had been fixed in releases
after ecos 2.0...
see thread "Error building standard templates"
http://sourceware.org/ml/ecos-discuss/2005-05/msg00040.html
it's fixed in the redboot_ROM.ecm of your target so you need to either import that or
modify the ecc by hand. I don't like linux_exec being enabled by default either.
Also has anybody tried building and using the ecos when compiled with
gcc4.0.0 Particularly with regard to ARM processors?
I am aware of the need to remove the -mno-short-load-words in the gcc
options etc.
I think all I had to do is what's in the attahced patch, besides what you mention.
Most are warning fixes only those in redboot are errors IIRC.
I prefer to run with the latest stable release of gcc. So wondering if
anybody has had any runtime issues.
I did not see anything particular.
Jani
diff -Nur -x 'cscope*' -x CVS cvs/packages/infra/current/include/cyg_ass.h contrib/packages/infra/current/include/cyg_ass.h
--- cvs/packages/infra/current/include/cyg_ass.h 2004-04-13 17:39:00.000000000 +0300
+++ contrib/packages/infra/current/include/cyg_ass.h 2005-05-19 15:27:50.000000000 +0300
@@ -157,7 +157,7 @@
// regions.
externC cyg_bool cyg_check_data_ptr(const void *ptr);
-externC cyg_bool cyg_check_func_ptr(const void (*ptr)(void));
+externC cyg_bool cyg_check_func_ptr(void (*ptr)(void));
#ifdef CYGDBG_USE_ASSERTS
diff -Nur -x 'cscope*' -x CVS cvs/packages/io/i2c/current/src/i2c.cxx contrib/packages/io/i2c/current/src/i2c.cxx
--- cvs/packages/io/i2c/current/src/i2c.cxx 2005-05-17 17:38:15.000000000 +0300
+++ contrib/packages/io/i2c/current/src/i2c.cxx 2005-05-20 13:02:23.000000000 +0300
@@ -97,7 +97,7 @@
#ifdef CYGDBG_USE_ASSERTS
bus->i2c_current_device = (const cyg_i2c_device*) 0;
#endif
- if ((void (*)(const cyg_i2c_bus*))0 != bus->i2c_init_fn) {
+ if ((void (*)(cyg_i2c_bus*))0 != bus->i2c_init_fn) {
(*bus->i2c_init_fn)(bus);
}
}
diff -Nur -x 'cscope*' -x CVS cvs/packages/isoinfra/current/include/unistd.h contrib/packages/isoinfra/current/include/unistd.h
--- cvs/packages/isoinfra/current/include/unistd.h 2004-04-13 17:39:00.000000000 +0300
+++ contrib/packages/isoinfra/current/include/unistd.h 2005-06-29 09:30:39.270840352 +0300
@@ -260,10 +260,10 @@
extern long sysconf(int name);
extern int vfork(void);
-extern int execl(char *path,...);
+extern int execl(char *path, char *arg, ...);
extern int execv(char *path,char **argv);
-extern int execle(char *path,...);
-extern int execlp(char *file,...);
+extern int execle(char *path, char *arg, ...);
+extern int execlp(char *file, char *arg, ...);
extern int execvp(char *file, char **argv);
extern int execve(char *name, char **argv, char **envv);
extern void _exit(int code);
diff -Nur -x 'cscope*' -x CVS cvs/packages/language/c/libc/string/current/src/strcmp.cxx contrib/packages/language/c/libc/string/current/src/strcmp.cxx
--- cvs/packages/language/c/libc/string/current/src/strcmp.cxx 2004-04-13 17:39:00.000000000 +0300
+++ contrib/packages/language/c/libc/string/current/src/strcmp.cxx 2005-06-29 09:31:13.795591792 +0300
@@ -83,8 +83,6 @@
int retval;
- CYG_UNUSED_PARAM( int, retval ); // in case tracing is off
-
#if defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) || defined(__OPTIMIZE_SIZE__)
while (*s1 != '\0' && *s1 == *s2)
{
diff -Nur -x 'cscope*' -x CVS cvs/packages/redboot/current/src/main.c contrib/packages/redboot/current/src/main.c
--- cvs/packages/redboot/current/src/main.c 2005-06-09 12:47:31.000000000 +0300
+++ contrib/packages/redboot/current/src/main.c 2005-06-29 09:17:48.000000000 +0300
@@ -394,7 +394,7 @@
CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);
// set up a temporary context that will take us to the trampoline
- HAL_THREAD_INIT_CONTEXT((CYG_ADDRWORD)workspace_end,
+ HAL_THREAD_INIT_CONTEXT(workspace_end,
breakpoint, trampoline,0);
// switch context to trampoline (get GDB stubs started)
@@ -594,7 +594,7 @@
HAL_ICACHE_INVALIDATE_ALL();
HAL_DCACHE_INVALIDATE_ALL();
// set up a temporary context that will take us to the trampoline
- HAL_THREAD_INIT_CONTEXT((CYG_ADDRWORD)workspace_end,
+ HAL_THREAD_INIT_CONTEXT(workspace_end,
entry, trampoline, 0);
// switch context to trampoline
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss