From f7ead3fa539345726e9faf1f35b53b80631c85cd Mon Sep 17 00:00:00 2001 From: Roy Rankin Date: Mar 20 2011 08:59:09 +0000 Subject: Upstrem release 3.0.0, do not use gc --- diff --git a/.gitignore b/.gitignore index 063a6ef..8e395c0 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ sdcc-src-2.9.0.tar.bz2 +/sdcc-src-3.0.0.tar.bz2 diff --git a/sdcc-2.8.0-debugger-makefile.diff b/sdcc-2.8.0-debugger-makefile.diff deleted file mode 100644 index d8c68c9..0000000 --- a/sdcc-2.8.0-debugger-makefile.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- debugger/mcs51/Makefile.in.orig 2008-09-11 18:06:29.000000000 -0700 -+++ debugger/mcs51/Makefile.in 2008-09-11 18:06:34.000000000 -0700 -@@ -7,11 +7,11 @@ - CPP = @CPP@ - INSTALL = @INSTALL@ - STRIP = @STRIP@ - - --top_builddir = ../../ -+top_builddir = ../.. - top_srcdir = @srcdir@/../.. - SLIB = $(top_builddir)/support/Util - SDCCLIB = $(top_builddir)/src - - VPATH = @srcdir@ diff --git a/sdcc-2.8.0-doc-lyx.diff b/sdcc-2.8.0-doc-lyx.diff deleted file mode 100644 index 52ce57d..0000000 --- a/sdcc-2.8.0-doc-lyx.diff +++ /dev/null @@ -1,26 +0,0 @@ ---- sdcc/doc/Makefile.in.orig 2006-06-17 22:40:28.000000000 +0100 -+++ sdcc/doc/Makefile.in 2008-10-16 20:29:34.000000000 +0100 -@@ -117,15 +117,14 @@ - # # the glossary, not implemented yet - # # $(MAKEINDEX) -s l2hglo.ist -o $@ $< - --%.pdf: %.tex -- $(PDFLATEX) $* -- -$(MAKEINDEX) $* -- $(PDFLATEX) $* -- -$(MAKEINDEX) $* -- $(PDFLATEX) $* -- $(PDFOPT) $*.pdf tmp.pdf -- rm $*.pdf -- mv tmp.pdf $*.pdf -+%.pdf: %.lyx -+ if [ "$(srcdir)" != "." ] ; then \ -+ cp $< . ; \ -+ $(LYX) -e pdf2 $(notdir $<) || echo "LyX gave a warning"; \ -+ rm $(notdir $<) ; \ -+ else \ -+ $(LYX) -e pdf2 $< || echo "LyX gave a warning"; \ -+ fi - - archive: all - rm -rf sdcc-doc sdcc-doc.tar.bz2 diff --git a/sdcc-2.9.0-configure.diff b/sdcc-2.9.0-configure.diff deleted file mode 100644 index 3cd0cab..0000000 --- a/sdcc-2.9.0-configure.diff +++ /dev/null @@ -1,67 +0,0 @@ -diff -urN sdcc.orig/configure.in sdcc/configure.in ---- sdcc.orig/configure.in 2009-01-19 13:06:40.000000000 -0800 -+++ sdcc/configure.in 2009-05-11 14:55:54.000000000 -0700 -@@ -332,12 +332,12 @@ - # This is the first time when CFLAGS are set/modified!! - adl_DD_COPT(CC, ggdb) - if test "$sdcc_cv_CCggdb" = "yes"; then -- CFLAGS="-ggdb ${CFLAGS}" -+: CFLAGS="-ggdb ${CFLAGS}" - fi - - adl_DD_COPT(CC, pipe) - if test "$sdcc_cv_CCpipe" = "yes"; then -- CFLAGS="-pipe $CFLAGS" -+: CFLAGS="-pipe $CFLAGS" - fi - - -diff -urN sdcc.orig/debugger/mcs51/configure.in sdcc/debugger/mcs51/configure.in ---- sdcc.orig/debugger/mcs51/configure.in 2007-01-03 13:19:58.000000000 -0800 -+++ sdcc/debugger/mcs51/configure.in 2009-05-11 15:00:54.000000000 -0700 -@@ -151,12 +151,12 @@ - # This is the first time when CFLAGS are set/modified!! - adl_DD_COPT(CC, ggdb) - if test "$sdcc_cv_CCggdb" = "yes"; then -- CFLAGS="-ggdb ${CFLAGS}" -+: CFLAGS="-ggdb ${CFLAGS}" - fi - - adl_DD_COPT(CC, pipe) - if test "$sdcc_cv_CCpipe" = "yes"; then -- CFLAGS="-pipe $CFLAGS" -+: CFLAGS="-pipe $CFLAGS" - fi - - -diff -urN sdcc.orig/sim/ucsim/configure.in sdcc/sim/ucsim/configure.in ---- sdcc.orig/sim/ucsim/configure.in 2007-06-28 02:06:31.000000000 -0700 -+++ sdcc/sim/ucsim/configure.in 2009-05-11 14:57:45.000000000 -0700 -@@ -519,21 +519,21 @@ - DD_COPT(CXX, ggdb) - DD_COPT(CXX, gstabs) - if test "$ucsim_cv_CXXgstabs" = "yes"; then -- gopt="-gstabs+ -g3" -+: gopt="-gstabs+ -g3" - elif test "$ucsim_cv_CXXggdb" = "yes"; then -- gopt="-ggdb -g3" -+: gopt="-ggdb -g3" - else -- gopt="-g" -+: gopt="-g" - fi - if test "$CXXFLAGS"x = x ;then -- CXXFLAGS="$gopt" -+: CXXFLAGS="$gopt" - else -- CXXFLAGS="$CXXFLAGS $gopt" -+: CXXFLAGS="$CXXFLAGS $gopt" - fi - - DD_COPT(CXX, pipe) - if test "$ucsim_cv_CXXpipe" = "yes"; then -- CXXFLAGS="$CXXFLAGS -pipe" -+: CXXFLAGS="$CXXFLAGS -pipe" - fi - - PICOPT="" diff --git a/sdcc-2.9.0-patch-out-getline.diff b/sdcc-2.9.0-patch-out-getline.diff deleted file mode 100644 index fa7db11..0000000 --- a/sdcc-2.9.0-patch-out-getline.diff +++ /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 - --#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 -+ -+#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 - #include - --#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, "")) - 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 - #include - --#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, "")) - { -- 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, "")) - { - /*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, "")) - { - /* 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 -+ -+ * 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 -+ -+ * fixed GCC 4.4.0 mingw compilation: -+ sim/ucsim/cmd.src/cmdlex.cc: regenerated - added #include -+ * 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 -+ -+ * fixed GCC 4.4.0 mingw compilation: -+ * sim/ucsim/cmd.src/cmdlex.l: added #include -+ * 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 - - * 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 . 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 - typedef int8_t flex_int8_t; - typedef uint8_t flex_uint8_t; -@@ -83,6 +94,7 @@ - /* begin standard C++ headers. */ - #include - #include -+#include - #include - #include - /* 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 - #include "cmdlexcl.h" - #include "cmdpars.h" - -@@ -417,7 +430,7 @@ - #define tok(x) (YY_cl_ucsim_parser_CLASS::x) - #define lexer_obj (dynamic_cast(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 - #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 diff --git a/sdcc-2.9.0-r5476-fix-doublefree.diff b/sdcc-2.9.0-r5476-fix-doublefree.diff deleted file mode 100644 index ab69503..0000000 --- a/sdcc-2.9.0-r5476-fix-doublefree.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- trunk/sdcc/as/link/lkar.c 2009/07/18 08:25:57 5475 -+++ trunk/sdcc/as/link/lkar.c 2009/07/18 09:11:36 5476 -@@ -454,8 +454,6 @@ - { - long moduleOffset = ftell (libfp); - -- free (obj_name); -- - /* Opened OK - create a new libraryfile object for it */ - if (This == NULL) - { -@@ -484,7 +482,7 @@ - - add_rel_index (libfp, hdr.ar_size, This); - -- fseek (libfp, moduleOffset + hdr.ar_size + (hdr.ar_size & 1), SEEK_SET); -+ fseek (libfp, moduleOffset + hdr.ar_size + (hdr.ar_size & 1), SEEK_SET);; - } - } - diff --git a/sdcc-2.9.0-r5508-fix-bug2805333.diff b/sdcc-2.9.0-r5508-fix-bug2805333.diff deleted file mode 100644 index 1e73db9..0000000 --- a/sdcc-2.9.0-r5508-fix-bug2805333.diff +++ /dev/null @@ -1,39 +0,0 @@ -Index: sdcc/src/mcs51/gen.c -=================================================================== ---- sdcc/src/mcs51/gen.c (revision 5507) -+++ sdcc/src/mcs51/gen.c (working copy) -@@ -1413,7 +1413,8 @@ - return aop->aopu.aop_reg[offset]->name; - - case AOP_CRY: -- emitcode ("mov", "c,%s", aop->aopu.aop_dir); -+ if (!IS_OP_RUONLY (oper)) -+ emitcode ("mov", "c,%s", aop->aopu.aop_dir); - emitcode ("clr", "a"); - emitcode ("rlc", "a"); - return (dname ? "acc" : "a"); -@@ -10052,7 +10053,7 @@ - ifxCond = genUnpackBits (result, rname, POINTER, ifx); - else - { -- /* we have can just get the values */ -+ /* we can just get the values */ - int size = AOP_SIZE (result); - int offset = 0; - -@@ -10060,7 +10061,6 @@ - { - if (ifx || IS_AOP_PREG (result) || AOP_TYPE (result) == AOP_STK) - { -- - emitcode ("mov", "a,@%s", rname); - if (!ifx) - aopPut (result, "a", offset); -@@ -10483,7 +10483,6 @@ - the pointer values */ - switch (p_type) - { -- - case POINTER: - case IPOINTER: - genNearPointerGet (left, result, ic, pi, ifx); diff --git a/sdcc.spec b/sdcc.spec index d543719..e3e892e 100644 --- a/sdcc.spec +++ b/sdcc.spec @@ -1,22 +1,18 @@ Name: sdcc -Version: 2.9.0 -Release: 8%{?dist} +Version: 3.0.0 +Release: 0%{?dist} Summary: Small Device C Compiler Group: Applications/Engineering License: GPLv2+ URL: http://sdcc.sourceforge.net/ Source0: http://downloads.sourceforge.net/sdcc/sdcc-src-%{version}.tar.bz2 Source1: README.fedora -Patch0: sdcc-2.9.0-patch-out-getline.diff -Patch1: sdcc-2.9.0-configure.diff -Patch2: sdcc-2.9.0-r5476-fix-doublefree.diff -Patch3: sdcc-2.9.0-r5508-fix-bug2805333.diff BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: autoconf BuildRequires: bison BuildRequires: flex -BuildRequires: gc-devel +#BuildRequires: gc-devel BuilDrequires: gputils BuildRequires: lyx BuildRequires: latex2html @@ -54,10 +50,6 @@ Emacs extensions for SDCC. %prep %setup -q -n sdcc -%patch0 -p1 -%patch1 -p1 -%patch2 -p2 -%patch3 -p1 find -name '*.[ch]' -exec chmod -x '{}' \; # Disable brp-strip-static-archive for now because it errors trying to @@ -68,11 +60,9 @@ find -name '*.[ch]' -exec chmod -x '{}' \; %build # Rebuild configure scripts (patched configure.in s in patch0). autoconf -cd debugger/mcs51 ; autoconf ; cd ../.. -cd sim/ucsim ; autoconf ; cd ../.. -%configure --enable-doc --enable-libgc STRIP=: -make Q= +%configure --enable-doc STRIP=: +%{__make} %{?_smp_mflags} Q= %install @@ -86,7 +76,7 @@ find $RPM_BUILD_ROOT -type f -name \*.c -exec chmod a-x '{}' \; mkdir -p $RPM_BUILD_ROOT%{_libexecdir}/sdcc mv $RPM_BUILD_ROOT%{_bindir}/* $RPM_BUILD_ROOT%{_libexecdir}/sdcc -# Create launch scripts in %{_bindir} +# Create launch scripts in _bindir pushd $RPM_BUILD_ROOT%{_bindir} for x in ../libexec/sdcc/*; do echo "#!/bin/sh @@ -125,8 +115,8 @@ rm -rf $RPM_BUILD_ROOT %changelog -* Wed Feb 09 2011 Fedora Release Engineering - 2.9.0-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild +* Sun Mar 20 2011 Roy Rankin - 3.0.0-0 +- Upstrem release 3.0.0, do not use gc * Sun Dec 6 2009 Conrad Meyer - 2.9.0-7 - Only disable brp-strip-static. diff --git a/sources b/sources index aac2711..54b6af8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -a6151ed328fd3bc48305ffbc628dc122 sdcc-src-2.9.0.tar.bz2 +20fbd49a3421e09fe65577c45524c89e sdcc-src-3.0.0.tar.bz2