From 19fb20b3efda0e0f592330c4229c64bfcd2c3831 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 7 Nov 2009 00:03:22 +0000 Subject: [PATCH] Fixes for Z80 compile git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2240 42af7a65-404d-4744-a932-0658087f49c3 --- configs/xtrs/README.txt | 26 ++++++++++++++++++++++++++ configs/z80sim/README.txt | 29 +++++++++++++++++++++++++++++ include/nuttx/serial.h | 2 +- lib/lib_qsort.c | 8 ++++---- 4 files changed, 60 insertions(+), 5 deletions(-) diff --git a/configs/xtrs/README.txt b/configs/xtrs/README.txt index f40e859fa28..5137d1674db 100644 --- a/configs/xtrs/README.txt +++ b/configs/xtrs/README.txt @@ -98,3 +98,29 @@ Then make the SDCC binaries and install SDCC: sudo make install + +SDCC Update +^^^^^^^^^^^ + +I have had some problems building sdcc-2.6.0 on my current UBUNTU +release (9.10). I had other problems building sdcc-2.9.0 on UBUNTU 9.10. +I suspect that the newer gcc toolchains are causing problems for these +older SDCC releases. + +A 20091106 snapshot did build with no major problems on UBUNTU 9.10, but +has some compatibilty problems with the older SDCC compiler. For one, you +will need to change the Z80 assember name and options in the Make.defs +files as follows: + +-AS = as-z80 ++AS = sdasz80 + +- @$(AS) $(ASFLAGS) $2 $1 ++ $(AS) $(ASFLAGS) $1 + +For another, I had other problems building with that 20091106 that look +like compiler bugs. If you are using UBUNTU 9.10, you may have to either +(1) downgrade your GCC compiler to a version 3.x compiler and use one of +the older stable releases, or (2) wait for the next stable SDCC release +after 2.9.0. + diff --git a/configs/z80sim/README.txt b/configs/z80sim/README.txt index 77972c2d4ec..cacca297464 100644 --- a/configs/z80sim/README.txt +++ b/configs/z80sim/README.txt @@ -73,3 +73,32 @@ Then make the SDCC binaries and install SDCC: sudo make install + +SDCC Update +^^^^^^^^^^^ + +I have had some problems building sdcc-2.6.0 on my current UBUNTU +release (9.10). I had other problems building sdcc-2.9.0 on UBUNTU 9.10. +I suspect that the newer gcc toolchains are causing problems for these +older SDCC releases. + +A 20091106 snapshot did build with no major problems on UBUNTU 9.10, but +has some compatibilty problems with the older SDCC compiler. For one, you +will need to change the Z80 assember name and options in the Make.defs +files as follows: + +-AS = as-z80 ++AS = sdasz80 + +- @$(AS) $(ASFLAGS) $2 $1 ++ $(AS) $(ASFLAGS) $1 + +For another, I had other problems building with that 20091106 that look +like compiler bugs. If you are using UBUNTU 9.10, you may have to either +(1) downgrade your GCC compiler to a version 3.x compiler and use one of +the older stable releases, or (2) wait for the next stable SDCC release +after 2.9.0. + + + + diff --git a/include/nuttx/serial.h b/include/nuttx/serial.h index fad9ecd892f..69cd582af27 100644 --- a/include/nuttx/serial.h +++ b/include/nuttx/serial.h @@ -142,7 +142,7 @@ struct uart_ops_s * the return 'status'. */ - CODE int (*receive)(FAR struct uart_dev_s *dev, unsigned int *status); + CODE int (*receive)(FAR struct uart_dev_s *dev, FAR unsigned int *status); /* Call to enable or disable RX interrupts */ diff --git a/lib/lib_qsort.c b/lib/lib_qsort.c index 06e0d8b892e..2b4083da51b 100644 --- a/lib/lib_qsort.c +++ b/lib/lib_qsort.c @@ -87,9 +87,9 @@ * Private Function Prototypes ****************************************************************************/ -static inline char *med3(char *, char *, char *, - int (*)(const void *, const void *)); -static inline void swapfunc(char *, char *, int, int); +static inline void swapfunc(char *a, char *b, int n, int swaptype); +static inline char *med3(char *a, char *b, char *c, + int (*compar)(const void *, const void *)); /**************************************************************************** * Private Functions @@ -108,7 +108,7 @@ static inline void swapfunc(char *a, char *b, int n, int swaptype) } static inline char *med3(char *a, char *b, char *c, - int (*compar)(const void *, const void *)) + int (*compar)(const void *, const void *)) { return compar(a, b) < 0 ? (compar(b, c) < 0 ? b : (compar(a, c) < 0 ? c : a ))