git » sdcc.git » commit f5af93c

upd:

author Sergej Pupykin
2010-11-22 15:17:11 UTC
committer Sergej Pupykin
2010-11-22 15:17:11 UTC
parent f9ea92af163ed574c85e0c88acce991576c4266f

upd:

PKGBUILD +6 -9
sdcc-2.9.0.patch +0 -879

diff --git a/PKGBUILD b/PKGBUILD
index dfca85d..ef7b911 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,25 +2,22 @@
 # Maintainer: Jose Negron <josenj.arch@mailnull.net>
 
 pkgname=sdcc
-pkgver=2.9.0
-pkgrel=2
+pkgver=3.0.0
+pkgrel=1
 pkgdesc="Retargettable ANSI C compiler (Intel 8051, Maxim 80DS390, Zilog Z80 and the Motorola 68HC08)"
 arch=('i686' 'x86_64')
 license=('GPL')
 depends=('bash' 'gcc-libs')
 makedepends=('gputils' 'flex' 'bison' 'patch')
+optdepends=('python')
 url="http://sdcc.sourceforge.net/"
 options=(!strip)
-#Patch file was taken from https://bugzilla.redhat.com/show_bug.cgi?id=488217
-source=(http://downloads.sourceforge.net/sourceforge/sdcc/$pkgname-src-$pkgver.tar.bz2
-        http://aur.archlinux.org/packages/$pkgname/$pkgname/$pkgname-$pkgver.patch)
-md5sums=('a6151ed328fd3bc48305ffbc628dc122'
-         '35313a8edca4f2c8a03ad57036da4e62')
+source=(http://downloads.sourceforge.net/sourceforge/sdcc/$pkgname-src-$pkgver.tar.bz2)
+md5sums=('20fbd49a3421e09fe65577c45524c89e')
 
 build() {
   cd $srcdir/$pkgname
-  patch -p1 -i ../$pkgname-$pkgver.patch
-  ./configure --prefix=$pkgdir/usr
+  LDFLAGS="-lm" ./configure --prefix=$pkgdir/usr
   make
   make install
   strip $pkgdir/usr/bin/* || true
diff --git a/sdcc-2.9.0.patch b/sdcc-2.9.0.patch
deleted file mode 100644
index fa7db11..0000000
--- a/sdcc-2.9.0.patch
+++ /dev/null
@@ -1,879 +0,0 @@
-Only in sdcc_2.9.0/as/link: getline.c
-Only in sdcc_2.9.0/as/link: getline.h
-diff -ruP sdcc_2.9.0/as/link/hc08/Makefile.in sdcc_2.9.0_new/as/link/hc08/Makefile.in
---- sdcc_2.9.0/as/link/hc08/Makefile.in	2009-01-10 00:04:14.000000000 +0100
-+++ sdcc_2.9.0_new/as/link/hc08/Makefile.in	2009-05-03 09:33:59.920935155 +0200
-@@ -46,7 +46,7 @@
- 
- ASXXLIBSRC = strcmpi.c
- 
--LKLIBSRC = getline.c lkaomf51.c lkar.c lkdata.c lkeval.c \
-+LKLIBSRC = lk_readnl.c lkaomf51.c lkar.c lkdata.c lkeval.c \
-            lkhead.c lklex.c lklib.c lklibr.c lklist.c \
-            lknoice.c lkrel.c lksdcclib.c lkstore.c lksym.c
- 
-diff -ruP sdcc_2.9.0/as/link/lklib.c sdcc_2.9.0_new/as/link/lklib.c
---- sdcc_2.9.0/as/link/lklib.c	2009-02-05 23:15:19.000000000 +0100
-+++ sdcc_2.9.0_new/as/link/lklib.c	2009-05-03 09:33:53.032847214 +0200
-@@ -31,7 +31,7 @@
- 
- #include <string.h>
- 
--#include "getline.h"
-+#include "lk_readnl.h"
- #include "aslink.h"
- #include "lklibr.h"
- #include "lkrel.h"
-@@ -51,7 +51,7 @@
- {
-   char relfil[NINPUT];
- 
--  while (getline (relfil, sizeof (relfil), libfp) != NULL)
-+  while (lk_readnl (relfil, sizeof (relfil), libfp) != NULL)
-     {
-       FILE *fp;
-       char str[PATH_MAX];
-@@ -126,7 +126,7 @@
- 
-   D ("Searching symbol: %s\n", name);
- 
--  while (getline (relfil, sizeof (relfil), libfp) != NULL)
-+  while (lk_readnl (relfil, sizeof (relfil), libfp) != NULL)
-     {
-       char str[PATH_MAX];
-       FILE *fp;
-@@ -206,7 +206,7 @@
-  *
-  *   functions called:
-  *      int     fclose()    c_library
-- *      char    *getline()  getline.c
-+ *      char    *lk_readnl()  lk_readnl.c
-  *      FILE *  fopen()     c_library
-  *      VOID    link_main() lkmain.c
-  *      int     strlen()    c_library
-diff -ruP sdcc_2.9.0/as/link/lk_readnl.c sdcc_2.9.0_new/as/link/lk_readnl.c
---- sdcc_2.9.0/as/link/lk_readnl.c	1970-01-01 01:00:00.000000000 +0100
-+++ sdcc_2.9.0_new/as/link/lk_readnl.c	2009-05-03 09:31:37.874839633 +0200
-@@ -0,0 +1,93 @@
-+/*
-+  lk_readnl.c - read a line from file into a buffer
-+  version 1.0.0, April 25th, 2008
-+
-+  Copyright (c) 2008 Borut Razem
-+
-+  This software is provided 'as-is', without any express or implied
-+  warranty.  In no event will the authors be held liable for any damages
-+  arising from the use of this software.
-+
-+  Permission is granted to anyone to use this software for any purpose,
-+  including commercial applications, and to alter it and redistribute it
-+  freely, subject to the following restrictions:
-+
-+  1. The origin of this software must not be misrepresented; you must not
-+     claim that you wrote the original software. If you use this software
-+     in a product, an acknowledgment in the product documentation would be
-+     appreciated but is not required.
-+  2. Altered source versions must be plainly marked as such, and must not be
-+     misrepresented as being the original software.
-+  3. This notice may not be removed or altered from any source distribution.
-+
-+  Borut Razem
-+  borut.razem@siol.net
-+*/
-+
-+#include "lk_readnl.h"
-+
-+/*******************************************************************************
-+
-+                                lk_readnl
-+
-+lk_readnl() reads in at most one less than size characters from stream and stores
-+them into the buffer pointed to by s. Reading stops after an EOF or a newline.
-+The newline character is not stored into the buffer. A '\0' is stored after the
-+last character in the buffer. All the characters between size and the newline or
-+EOF are skipped.
-+
-+lk_readnl() return s on success, and NULL on error or when end of file occurs
-+while no characters have been read.
-+
-+*******************************************************************************/
-+
-+char *
-+lk_readnl (char *s, int size, FILE * stream)
-+{
-+  static char eof_f = 0;
-+  int c = '\0';
-+  char *s_o;
-+  char prev_c;
-+
-+  if (eof_f)
-+    {
-+      eof_f = 0;
-+      return NULL;
-+    }
-+
-+  s_o = s;
-+  --size;                       /* for null terminator */
-+  while (size > 0)
-+    {
-+      prev_c = c;
-+      if ((c = getc (stream)) == '\n' || c == EOF)
-+        break;
-+
-+      if (prev_c == '\r')
-+        {
-+          *s++ = prev_c;
-+          if (--size <= 0)
-+            break;
-+        }
-+
-+      if (c != '\r')
-+        {
-+          *s++ = c;
-+          --size;
-+        }
-+    }
-+  *s = '\0';
-+
-+  while (c != '\n' && c != EOF)
-+    c = getc (stream);
-+
-+  if (c == EOF)
-+    {
-+      if (s == s_o)
-+        return NULL;
-+
-+      eof_f = 1;
-+    }
-+
-+  return s_o;
-+}
-diff -ruP sdcc_2.9.0/as/link/lk_readnl.h sdcc_2.9.0_new/as/link/lk_readnl.h
---- sdcc_2.9.0/as/link/lk_readnl.h	1970-01-01 01:00:00.000000000 +0100
-+++ sdcc_2.9.0_new/as/link/lk_readnl.h	2009-05-03 09:31:32.383875928 +0200
-@@ -0,0 +1,44 @@
-+/*
-+  lk_readnl.h - read a line from file into a buffer
-+  version 1.0.0, Aprile 25th, 2008
-+
-+  Copyright (c) 2008 Borut Razem
-+
-+  This software is provided 'as-is', without any express or implied
-+  warranty.  In no event will the authors be held liable for any damages
-+  arising from the use of this software.
-+
-+  Permission is granted to anyone to use this software for any purpose,
-+  including commercial applications, and to alter it and redistribute it
-+  freely, subject to the following restrictions:
-+
-+  1. The origin of this software must not be misrepresented; you must not
-+     claim that you wrote the original software. If you use this software
-+     in a product, an acknowledgment in the product documentation would be
-+     appreciated but is not required.
-+  2. Altered source versions must be plainly marked as such, and must not be
-+     misrepresented as being the original software.
-+  3. This notice may not be removed or altered from any source distribution.
-+
-+  Borut Razem
-+  borut.razem@siol.net
-+*/
-+
-+
-+#ifndef __LK_READNL_H
-+#define __LK_READNL_H
-+
-+#include <stdio.h>
-+
-+#ifdef __cplusplus
-+extern "C"
-+{
-+#endif
-+
-+  char *lk_readnl (char *s, int size, FILE * stream);
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif                          /* __LK_READNL_H */
-diff -ruP sdcc_2.9.0/as/link/lkrel.c sdcc_2.9.0_new/as/link/lkrel.c
---- sdcc_2.9.0/as/link/lkrel.c	2009-02-05 23:15:19.000000000 +0100
-+++ sdcc_2.9.0_new/as/link/lkrel.c	2009-05-03 09:34:27.455805185 +0200
-@@ -32,7 +32,7 @@
- #include <string.h>
- #include <assert.h>
- 
--#include "getline.h"
-+#include "lk_readnl.h"
- #include "aslink.h"
- #include "lkrel.h"
- 
-@@ -79,7 +79,7 @@
- 
-       end = (size >= 0) ? ftell (libfp) + size : -1;
- 
--      while ((end < 0 || ftell (libfp) < end) && getline (str, sizeof (str), libfp) != NULL)
-+      while ((end < 0 || ftell (libfp) < end) && lk_readnl (str, sizeof (str), libfp) != NULL)
-         {
-           if (0 == strcmp (str, "</REL>"))
-             return 1;
-@@ -110,7 +110,7 @@
-    * our object file and don't go into the next one.
-    */
- 
--  while ((end < 0 || ftell (fp) < end) && getline (buf, sizeof (buf), fp) != NULL)
-+  while ((end < 0 || ftell (fp) < end) && lk_readnl (buf, sizeof (buf), fp) != NULL)
-     {
-       char symname[NINPUT];
-       char c;
-diff -ruP sdcc_2.9.0/as/link/lksdcclib.c sdcc_2.9.0_new/as/link/lksdcclib.c
---- sdcc_2.9.0/as/link/lksdcclib.c	2009-02-05 23:15:19.000000000 +0100
-+++ sdcc_2.9.0_new/as/link/lksdcclib.c	2009-05-03 09:35:29.888085514 +0200
-@@ -32,13 +32,13 @@
- #include <stdlib.h>
- #include <string.h>
- 
--#include "getline.h"
-+#include "lk_readnl.h"
- #include "aslink.h"
- #include "lklibr.h"
- #include "lkrel.h"
- 
- #define EQ(A,B) !strcmp((A),(B))
--#define MAXLINE 254             /*when using getline */
-+#define MAXLINE 254             /* when using lk_readnl */
- 
- 
- static int
-@@ -72,14 +72,14 @@
-   char str[NINPUT];
-   int state = 0;
- 
--  while (getline (str, sizeof (str), libfp) != NULL)
-+  while (lk_readnl (str, sizeof (str), libfp) != NULL)
-     {
-       switch (state)
-         {
-         case 0:
-           if (EQ (str, "<FILE>"))
-             {
--              if (NULL != getline (str, sizeof (str), libfp) && EQ (str, ModName))
-+              if (NULL != lk_readnl (str, sizeof (str), libfp) && EQ (str, ModName))
-                 state = 1;
-               else
-                 return 0;
-@@ -105,7 +105,7 @@
-   long IndexOffset = 0;
-   pmlibrarysymbol ThisSym = NULL;
- 
--  while (getline (FLine, sizeof (FLine), libfp))
-+  while (lk_readnl (FLine, sizeof (FLine), libfp))
-     {
-       switch (state)
-         {
-@@ -113,7 +113,7 @@
-           if (EQ (FLine, "<INDEX>"))
-             {
-               /*The next line has the size of the index */
--              getline (FLine, sizeof (FLine), libfp);
-+              lk_readnl (FLine, sizeof (FLine), libfp);
-               IndexOffset = atol (FLine);
-               state = 1;
-             }
-@@ -128,7 +128,7 @@
- 
-               /* The next line has the name of the module and the offset
-                  of the corresponding embedded file in the library */
--              getline (FLine, sizeof (FLine), libfp);
-+              lk_readnl (FLine, sizeof (FLine), libfp);
-               sscanf (FLine, "%s %ld", ModName, &FileOffset);
-               state = 2;
- 
-@@ -205,7 +205,7 @@
-   int state = 0;
-   int ret = 0;
- 
--  while (getline (str, sizeof (str), libfp) != NULL)
-+  while (lk_readnl (str, sizeof (str), libfp) != NULL)
-     {
-       switch (state)
-         {
-@@ -239,7 +239,7 @@
-   int state = 0;
-   long IndexOffset = 0, FileOffset;
- 
--  while (getline (FLine, sizeof (FLine), libfp))
-+  while (lk_readnl (FLine, sizeof (FLine), libfp))
-     {
-       char filspc[PATH_MAX];
- 
-@@ -260,7 +260,7 @@
-           if (EQ (FLine, "<INDEX>"))
-             {
-               /* The next line has the size of the index */
--              getline (FLine, sizeof (FLine), libfp);
-+              lk_readnl (FLine, sizeof (FLine), libfp);
-               IndexOffset = atol (FLine);
-               state = 1;
-             }
-@@ -271,7 +271,7 @@
-             {
-               /* The next line has the name of the module and the offset
-                  of the corresponding embedded file in the library */
--              getline (FLine, sizeof (FLine), libfp);
-+              lk_readnl (FLine, sizeof (FLine), libfp);
-               sscanf (FLine, "%s %ld", ModName, &FileOffset);
-               state = 2;
-             }
-diff -ruP sdcc_2.9.0/as/link/mcs51/Makefile.in sdcc_2.9.0_new/as/link/mcs51/Makefile.in
---- sdcc_2.9.0/as/link/mcs51/Makefile.in	2009-01-10 00:04:14.000000000 +0100
-+++ sdcc_2.9.0_new/as/link/mcs51/Makefile.in	2009-05-03 09:33:58.180806351 +0200
-@@ -46,7 +46,7 @@
- 
- ASXXLIBSRC = strcmpi.c
- 
--LKLIBSRC = getline.c lkaomf51.c lkar.c lkdata.c lkeval.c \
-+LKLIBSRC = lk_readnl.c lkaomf51.c lkar.c lkdata.c lkeval.c \
-            lkhead.c lklex.c lklib.c lklibr.c lklist.c \
-            lknoice.c lkrel.c lksdcclib.c lkstore.c lksym.c
- 
-diff -ruP sdcc_2.9.0/as/link/z80/Makefile.in sdcc_2.9.0_new/as/link/z80/Makefile.in
---- sdcc_2.9.0/as/link/z80/Makefile.in	2009-01-10 00:04:14.000000000 +0100
-+++ sdcc_2.9.0_new/as/link/z80/Makefile.in	2009-05-03 09:33:56.000806236 +0200
-@@ -13,7 +13,7 @@
- 
- LKLIB = $(srcdir)/..
- 
--LKLIBSRC = getline.c lkaomf51.c lkar.c lkdata.c lkeval.c \
-+LKLIBSRC = lk_readnl.c lkaomf51.c lkar.c lkdata.c lkeval.c \
-            lkhead.c lklex.c lklib.c lklibr.c lklist.c \
-            lknoice.c lkrel.c lksdcclib.c lkstore.c lksym.c
- 
-diff -ruP sdcc_2.9.0/ChangeLog sdcc_2.9.0_new/ChangeLog
---- sdcc_2.9.0/ChangeLog	2009-03-15 14:30:34.000000000 +0100
-+++ sdcc_2.9.0_new/ChangeLog	2009-05-03 14:22:47.139942135 +0200
-@@ -1,3 +1,35 @@
-+2009-05-03 Borut Razem <borut.razem AT siol.net>
-+
-+	* as/link/hc08/Makefile.in, as/link/mcs51/Makefile.in,
-+	  as/link/z80/Makefile.in, as/link/lk_readnl.c, as/link/lklib.c,
-+	  as/link/lk_readnl.h, as/link/lk_readnl.h, as/link/lkrel.c,
-+	  as/link/lksdcclib.c: getline renamed to lk_readln to prevent
-+	  conflicts with Fedora 11 glibc-2.9.90-19 getline
-+
-+2009-04-28 Borut Razem <borut.razem AT siol.net>
-+
-+	* fixed GCC 4.4.0 mingw compilation:
-+	  sim/ucsim/cmd.src/cmdlex.cc: regenerated - added #include <stdio.h>
-+	* src/SDCCsymt.c: fixed warning:
-+	  suggest parentheses around operand of '!' or change '&' to '&&' or
-+	  '!' to '~'
-+	* support/scripts/sdcc_mingw32: sync with sdcc-build
-+
-+2009-04-27 Borut Razem <borut.razem AT siol.net>
-+
-+	* fixed GCC 4.4.0 mingw compilation:
-+	* sim/ucsim/cmd.src/cmdlex.l: added #include <stdio.h>
-+	* support/cpp/sdcpp-opts.c: fixed warning:
-+	  unknown conversion type character 'm' in format,
-+	  use strerror(errno) instead of %m glibc extension format specifier
-+	* src/SDCCsymt.c: fixed warning:
-+	  suggest parentheses around operand of '!' or change '&' to '&&' or
-+	  '!' to '~'
-+	* src/pic16/pcode.c, src/pic16/glue.c: fixed warning:
-+	  unknown conversion type character 'h' in format,
-+	  replaced hh printf format specifier with parameter casting to
-+	  unsigned char
-+
- 2009-03-15 Borut Razem <borut.razem AT siol.net>
- 
- 	* support/scripts/repack_release.sh: added
-diff -ruP sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.cc sdcc_2.9.0_new/sim/ucsim/cmd.src/cmdlex.cc
---- sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.cc	2004-07-16 18:32:30.000000000 +0200
-+++ sdcc_2.9.0_new/sim/ucsim/cmd.src/cmdlex.cc	2009-05-03 09:56:34.837824283 +0200
-@@ -1,6 +1,6 @@
--#line 2 "cmdlex.cc"
-+#line 2 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.cc"
- 
--#line 4 "cmdlex.cc"
-+#line 4 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.cc"
- 
- #define  YY_INT_ALIGNED short int
- 
-@@ -9,13 +9,16 @@
- #define FLEX_SCANNER
- #define YY_FLEX_MAJOR_VERSION 2
- #define YY_FLEX_MINOR_VERSION 5
--#define YY_FLEX_SUBMINOR_VERSION 31
-+#define YY_FLEX_SUBMINOR_VERSION 35
- #if YY_FLEX_SUBMINOR_VERSION > 0
- #define FLEX_BETA
- #endif
- 
-     /* The c++ scanner is a mess. The FlexLexer.h header file relies on the
--     * following macro.
-+     * following macro. This is required in order to pass the c++-multiple-scanners
-+     * test in the regression suite. We get reports that it breaks inheritance.
-+     * We will address this in a future release of flex, or omit the C++ scanner
-+     * altogether.
-      */
-     #define yyFlexLexer yyFlexLexer
- 
-@@ -32,7 +35,15 @@
- 
- /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
- 
--#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
-+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-+
-+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
-+ * if you want the limit (max/min) macros for int types. 
-+ */
-+#ifndef __STDC_LIMIT_MACROS
-+#define __STDC_LIMIT_MACROS 1
-+#endif
-+
- #include <inttypes.h>
- typedef int8_t flex_int8_t;
- typedef uint8_t flex_uint8_t;
-@@ -83,6 +94,7 @@
- /* begin standard C++ headers. */
- #include <iostream> 
- #include <errno.h>
-+#include <cstdio>
- #include <cstdlib>
- #include <cstring>
- /* end standard C++ headers. */
-@@ -94,11 +106,12 @@
- 
- #else	/* ! __cplusplus */
- 
--#if __STDC__
-+/* C99 requires __STDC__ to be defined as 1. */
-+#if defined (__STDC__)
- 
- #define YY_USE_CONST
- 
--#endif	/* __STDC__ */
-+#endif	/* defined (__STDC__) */
- #endif	/* ! __cplusplus */
- 
- #ifdef YY_USE_CONST
-@@ -143,6 +156,10 @@
- #define YY_BUF_SIZE 16384
- #endif
- 
-+/* The state buf must be large enough to hold one state per character in the main buffer.
-+ */
-+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
-+
- #ifndef YY_TYPEDEF_YY_BUFFER_STATE
- #define YY_TYPEDEF_YY_BUFFER_STATE
- typedef struct yy_buffer_state *YY_BUFFER_STATE;
-@@ -172,14 +189,9 @@
- 
- #define unput(c) yyunput( c, (yytext_ptr)  )
- 
--/* The following is because we cannot portably get our hands on size_t
-- * (without autoconf's help, which isn't available because we want
-- * flex-generated scanners to compile on their own).
-- */
--
- #ifndef YY_TYPEDEF_YY_SIZE_T
- #define YY_TYPEDEF_YY_SIZE_T
--typedef unsigned int yy_size_t;
-+typedef size_t yy_size_t;
- #endif
- 
- #ifndef YY_STRUCT_YY_BUFFER_STATE
-@@ -405,8 +417,9 @@
- #define yymore() yymore_used_but_not_detected
- #define YY_MORE_ADJ 0
- #define YY_RESTORE_YY_MORE_OFFSET
--#line 1 "cmdlex.l"
--#line 2 "cmdlex.l"
-+#line 1 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.l"
-+#line 2 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.l"
-+#include <stdio.h>
- #include "cmdlexcl.h"
- #include "cmdpars.h"
- 
-@@ -417,7 +430,7 @@
- #define tok(x) (YY_cl_ucsim_parser_CLASS::x)
- #define lexer_obj (dynamic_cast<class cl_ucsim_lexer *>(this))
- 
--#line 421 "cmdlex.cc"
-+#line 434 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.cc"
- 
- #define INITIAL 0
- 
-@@ -517,14 +530,14 @@
- 	register char *yy_cp, *yy_bp;
- 	register int yy_act;
-     
--#line 14 "cmdlex.l"
-+#line 15 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.l"
- 
- 
--#line 524 "cmdlex.cc"
-+#line 537 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.cc"
- 
--	if ( (yy_init) )
-+	if ( !(yy_init) )
- 		{
--		(yy_init) = 0;
-+		(yy_init) = 1;
- 
- #ifdef YY_USER_INIT
- 		YY_USER_INIT;
-@@ -605,67 +618,67 @@
- 
- case 1:
- YY_RULE_SETUP
--#line 16 "cmdlex.l"
-+#line 17 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.l"
- ;
- 	YY_BREAK
- case 2:
- YY_RULE_SETUP
--#line 18 "cmdlex.l"
-+#line 19 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.l"
- return(tok(PTOK_PLUS));
- 	YY_BREAK
- case 3:
- YY_RULE_SETUP
--#line 19 "cmdlex.l"
-+#line 20 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.l"
- return(tok(PTOK_MINUS));
- 	YY_BREAK
- case 4:
- YY_RULE_SETUP
--#line 20 "cmdlex.l"
-+#line 21 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.l"
- return(tok(PTOK_ASTERIX));
- 	YY_BREAK
- case 5:
- YY_RULE_SETUP
--#line 21 "cmdlex.l"
-+#line 22 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.l"
- return(tok(PTOK_SLASH));
- 	YY_BREAK
- case 6:
- YY_RULE_SETUP
--#line 22 "cmdlex.l"
-+#line 23 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.l"
- return(tok(PTOK_LEFT_PAREN));
- 	YY_BREAK
- case 7:
- YY_RULE_SETUP
--#line 23 "cmdlex.l"
-+#line 24 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.l"
- return(tok(PTOK_RIGHT_PAREN));
- 	YY_BREAK
- case 8:
- YY_RULE_SETUP
--#line 24 "cmdlex.l"
-+#line 25 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.l"
- return(tok(PTOK_LEFT_BRACKET));
- 	YY_BREAK
- case 9:
- YY_RULE_SETUP
--#line 25 "cmdlex.l"
-+#line 26 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.l"
- return(tok(PTOK_RIGHT_BRACKET));
- 	YY_BREAK
- case 10:
- YY_RULE_SETUP
--#line 26 "cmdlex.l"
-+#line 27 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.l"
- return(tok(PTOK_EQUAL));
- 	YY_BREAK
- case 11:
- YY_RULE_SETUP
--#line 27 "cmdlex.l"
-+#line 28 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.l"
- return(tok(PTOK_DOT));
- 	YY_BREAK
- case 12:
- YY_RULE_SETUP
--#line 28 "cmdlex.l"
-+#line 29 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.l"
- return(tok(PTOK_AMPERSAND));
- 	YY_BREAK
- case 13:
- YY_RULE_SETUP
--#line 30 "cmdlex.l"
-+#line 31 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.l"
- {
-   yylval->number= strtol(yytext, 0, 0);
-   return(YY_cl_ucsim_parser_CLASS::PTOK_NUMBER);
-@@ -673,20 +686,20 @@
- 	YY_BREAK
- case 14:
- YY_RULE_SETUP
--#line 35 "cmdlex.l"
-+#line 36 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.l"
- return(lexer_obj->check_id(yytext));
- 	YY_BREAK
- case 15:
- YY_RULE_SETUP
--#line 37 "cmdlex.l"
-+#line 38 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.l"
- ;
- 	YY_BREAK
- case 16:
- YY_RULE_SETUP
--#line 39 "cmdlex.l"
-+#line 40 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.l"
- ECHO;
- 	YY_BREAK
--#line 690 "cmdlex.cc"
-+#line 703 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.cc"
- case YY_STATE_EOF(INITIAL):
- 	yyterminate();
- 
-@@ -819,12 +832,14 @@
- 		} /* end of scanning one token */
- } /* end of yylex */
- 
-+/* The contents of this function are C++ specific, so the () macro is not used.
-+ */
- yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout )
- {
- 	yyin = arg_yyin;
- 	yyout = arg_yyout;
- 	yy_c_buf_p = 0;
--	yy_init = 1;
-+	yy_init = 0;
- 	yy_start = 0;
- 	yy_flex_debug = 0;
- 	yylineno = 1;	// this will only get updated if %option yylineno
-@@ -837,23 +852,28 @@
- 	yy_more_offset = yy_prev_more_offset = 0;
- 
- 	yy_start_stack_ptr = yy_start_stack_depth = 0;
--	yy_start_stack = 0;
-+	yy_start_stack = NULL;
- 
--    (yy_buffer_stack) = 0;
--    (yy_buffer_stack_top) = 0;
--    (yy_buffer_stack_max) = 0;
-+	yy_buffer_stack = 0;
-+	yy_buffer_stack_top = 0;
-+	yy_buffer_stack_max = 0;
- 
- 	yy_state_buf = 0;
- 
- }
- 
-+/* The contents of this function are C++ specific, so the () macro is not used.
-+ */
- yyFlexLexer::~yyFlexLexer()
- {
- 	delete [] yy_state_buf;
- 	yyfree(yy_start_stack  );
- 	yy_delete_buffer( YY_CURRENT_BUFFER );
-+	yyfree(yy_buffer_stack  );
- }
- 
-+/* The contents of this function are C++ specific, so the () macro is not used.
-+ */
- void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out )
- {
- 	if ( new_in )
-@@ -954,7 +974,7 @@
- 
- 	else
- 		{
--			size_t num_to_read =
-+			int num_to_read =
- 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
- 
- 		while ( num_to_read <= 0 )
-@@ -999,7 +1019,7 @@
- 
- 		/* Read in more data. */
- 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
--			(yy_n_chars), num_to_read );
-+			(yy_n_chars), (size_t) num_to_read );
- 
- 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
- 		}
-@@ -1023,6 +1043,14 @@
- 	else
- 		ret_val = EOB_ACT_CONTINUE_SCAN;
- 
-+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
-+		/* Extend the array by 50%, plus the number we really need. */
-+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
-+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
-+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
-+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
-+	}
-+
- 	(yy_n_chars) += number_to_move;
- 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
- 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
-@@ -1428,7 +1456,9 @@
- 		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
- 								(num_to_alloc * sizeof(struct yy_buffer_state*)
- 								);
--		
-+		if ( ! (yy_buffer_stack) )
-+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
-+								  
- 		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
- 				
- 		(yy_buffer_stack_max) = num_to_alloc;
-@@ -1446,6 +1476,8 @@
- 								((yy_buffer_stack),
- 								num_to_alloc * sizeof(struct yy_buffer_state*)
- 								);
-+		if ( ! (yy_buffer_stack) )
-+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
- 
- 		/* zero only the new slots.*/
- 		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
-@@ -1469,8 +1501,7 @@
- 			(yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size  );
- 
- 		if ( ! (yy_start_stack) )
--			YY_FATAL_ERROR(
--			"out of memory expanding start-condition stack" );
-+			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
- 		}
- 
- 	(yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
-@@ -1528,7 +1559,7 @@
- static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
- {
- 	register int i;
--    	for ( i = 0; i < n; ++i )
-+	for ( i = 0; i < n; ++i )
- 		s1[i] = s2[i];
- }
- #endif
-@@ -1537,7 +1568,7 @@
- static int yy_flex_strlen (yyconst char * s )
- {
- 	register int n;
--    	for ( n = 0; s[n]; ++n )
-+	for ( n = 0; s[n]; ++n )
- 		;
- 
- 	return n;
-@@ -1568,19 +1599,7 @@
- 
- #define YYTABLES_NAME "yytables"
- 
--#undef YY_NEW_FILE
--#undef YY_FLUSH_BUFFER
--#undef yy_set_bol
--#undef yy_new_buffer
--#undef yy_set_interactive
--#undef yytext_ptr
--#undef YY_DO_BEFORE_ACTION
--
--#ifdef YY_DECL_IS_OURS
--#undef YY_DECL_IS_OURS
--#undef YY_DECL
--#endif
--#line 39 "cmdlex.l"
-+#line 40 "../../../../sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.l"
- 
- 
- 
-diff -ruP sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.l sdcc_2.9.0_new/sim/ucsim/cmd.src/cmdlex.l
---- sdcc_2.9.0/sim/ucsim/cmd.src/cmdlex.l	2004-07-16 18:32:30.000000000 +0200
-+++ sdcc_2.9.0_new/sim/ucsim/cmd.src/cmdlex.l	2009-05-03 09:48:14.354802912 +0200
-@@ -1,4 +1,5 @@
- %{
-+#include <stdio.h>
- #include "cmdlexcl.h"
- #include "cmdpars.h"
- 
-diff -ruP sdcc_2.9.0/src/pic16/glue.c sdcc_2.9.0_new/src/pic16/glue.c
---- sdcc_2.9.0/src/pic16/glue.c	2008-12-07 00:31:13.000000000 +0100
-+++ sdcc_2.9.0_new/src/pic16/glue.c	2009-05-03 13:50:18.000000000 +0200
-@@ -1399,9 +1399,9 @@
- 
-         for(i=0;i<=(pic16->cwInfo.confAddrEnd-pic16->cwInfo.confAddrStart);i++)
-                 if(pic16->cwInfo.crInfo[i].emit)        //mask != -1)
--                        fprintf (of, "\t__config 0x%x, 0x%hhx\n",
-+                        fprintf (of, "\t__config 0x%x, 0x%02x\n",
-                                 pic16->cwInfo.confAddrStart+i,
--                                pic16->cwInfo.crInfo[i].value);
-+                                (unsigned char) pic16->cwInfo.crInfo[i].value);
- }
- 
- void pic16_emitIDRegs(FILE *of)
-@@ -1410,9 +1410,9 @@
- 
-         for(i=0;i<=(pic16->idInfo.idAddrEnd-pic16->idInfo.idAddrStart);i++)
-                 if(pic16->idInfo.irInfo[i].emit)
--                        fprintf (of, "\t__idlocs 0x%06x, 0x%hhx\n",
-+                        fprintf (of, "\t__idlocs 0x%06x, 0x%02x\n",
-                                 pic16->idInfo.idAddrStart+i,
--                                pic16->idInfo.irInfo[i].value);
-+                                (unsigned char) pic16->idInfo.irInfo[i].value);
- }
- 
- 
-diff -ruP sdcc_2.9.0/src/pic16/pcode.c sdcc_2.9.0_new/src/pic16/pcode.c
---- sdcc_2.9.0/src/pic16/pcode.c	2009-03-10 02:29:02.000000000 +0100
-+++ sdcc_2.9.0_new/src/pic16/pcode.c	2009-05-03 13:50:18.000000000 +0200
-@@ -3977,7 +3977,7 @@
- 
-   pcop->name = NULL;
-   //if(lit>=0)
--    sprintf(s,"0x%02hhx", (unsigned char)lit);
-+    sprintf(s,"0x%02x", (unsigned char) lit);
-   //else
-   //  sprintf(s, "%i", lit);
- 
-diff -ruP sdcc_2.9.0/src/SDCCsymt.c sdcc_2.9.0_new/src/SDCCsymt.c
---- sdcc_2.9.0/src/SDCCsymt.c	2008-11-15 15:13:47.000000000 +0100
-+++ sdcc_2.9.0_new/src/SDCCsymt.c	2009-05-03 13:50:32.000000000 +0200
-@@ -2324,7 +2324,7 @@
-   srcScls = SPEC_SCLS (src);
- 
-   /* Compensate for const to const code change in checkSClass() */
--  if (!level & port->mem.code_ro && SPEC_CONST (dest))
-+  if (((!level) & port->mem.code_ro) && SPEC_CONST (dest))
-     {
-       if (srcScls == S_CODE && destScls == S_FIXED)
-         destScls = S_CODE;
-diff -ruP sdcc_2.9.0/support/cpp/sdcpp-opts.c sdcc_2.9.0_new/support/cpp/sdcpp-opts.c
---- sdcc_2.9.0/support/cpp/sdcpp-opts.c	2008-03-31 20:10:22.000000000 +0200
-+++ sdcc_2.9.0_new/support/cpp/sdcpp-opts.c	2009-05-03 13:57:25.445053848 +0200
-@@ -564,7 +564,7 @@
- 
-   if (out_stream == NULL)
-     {
--      fatal_error ("opening output file %s: %m", out_fname);
-+      fatal_error ("opening output file %s: %s", out_fname, strerror(errno));
-       return false;
-     }
- 
-@@ -641,7 +641,7 @@
- 	{
- 	  deps_stream = fopen (deps_file, deps_append ? "a": "w");
- 	  if (!deps_stream)
--	    fatal_error ("opening dependency file %s: %m", deps_file);
-+            fatal_error ("opening dependency file %s: %s", deps_file, strerror(errno));
- 	}
-     }
- 
-@@ -651,10 +651,10 @@
- 
-   if (deps_stream && deps_stream != out_stream
-       && (ferror (deps_stream) || fclose (deps_stream)))
--    fatal_error ("closing dependency file %s: %m", deps_file);
-+    fatal_error ("closing dependency file %s: %s", deps_file, strerror(errno));
- 
-   if (out_stream && (ferror (out_stream) || fclose (out_stream)))
--    fatal_error ("when writing output to %s: %m", out_fname);
-+    fatal_error ("when writing output to %s: %s", out_fname, strerror(errno));
- }
- 
- /* Either of two environment variables can specify output of