This is the mail archive of the ecos-discuss@sources.redhat.com 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]

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

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