From: jtvolpe Date: Sun, 4 Feb 2001 20:54:30 +0000 (+0000) Subject: New memory allocation functions with Linux fixes X-Git-Url: https://git.gag.com/?p=fw%2Fsdcc;a=commitdiff_plain;h=0bbed99a81e05cf645dc464c4722a63ec070ccef New memory allocation functions with Linux fixes git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@579 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- diff --git a/Makefile b/Makefile index 9efd710e..029f78c6 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,7 @@ # # +CFLAGS+=-g SHELL = /bin/sh AUTOCONF = autoconf diff --git a/Makefile.common.in b/Makefile.common.in index 55bb167f..f5705af3 100644 --- a/Makefile.common.in +++ b/Makefile.common.in @@ -33,9 +33,12 @@ man2dir = $(mandir)/man2 infodir = @infodir@ srcdir = @srcdir@ +SLIB = $(PRJDIR)/support/Util + # Flags + DEFS = $(subs -DHAVE_CONFIG_H,,@DEFS@) -CPPFLAGS = @CPPFLAGS@ -I$(PRJDIR) +CPPFLAGS = @CPPFLAGS@ -I$(PRJDIR) -I$(SLIB) CFLAGS = @CFLAGS@ -Wall M_OR_MM = @M_OR_MM@ diff --git a/as/z80/Makefile b/as/z80/Makefile index b0056d28..5b8e5c0e 100644 --- a/as/z80/Makefile +++ b/as/z80/Makefile @@ -3,14 +3,23 @@ PRJDIR = ../.. include $(PRJDIR)/Makefile.common OBJDIR = obj/$(EXT) + SDC = . + +SLIBSRC = NewAlloc.c + SRC = asdata.c asexpr.c aslex.c aslist.c asmain.c asout.c \ assubr.c assym.c z80adr.c z80ext.c z80mch.c z80pst.c + OBJS = $(SRC:%.c=$(OBJDIR)/%.o) +SLIBOBJS = $(SLIBSRC:%.c=$(OBJDIR)/%.o) + BINS = $(BUILDDIR)as$(EXT) CFLAGS += $(OPTS) -I. -DINDEXLIB -DMLH_MAP -DUNIX -DSDK CFLAGS += -funsigned-char +CFLAGS += -I$(SLIB) + LDFLAGS += -lm all: $(OBJDIR) dep $(BINS) @@ -25,13 +34,16 @@ include Makefile.dep $(OBJDIR): mkdir -p $(OBJDIR) -$(BINS): $(OBJS) - $(CC) $(LDFLAGS) -o $(BINS) $(OBJS) +$(BINS): $(OBJS) $(SLIBOBJS) + $(CC) $(LDFLAGS) -o $(BINS) $(OBJS) $(SLIBOBJS) $(OBJDIR)/%.o: %.c $(CC) -c $(CFLAGS) -o $@ $< +$(OBJDIR)/%.o: $(SLIB)/%.c + $(CC) -c $(CFLAGS) -o $@ $< + clean: rm -rf $(OBJS) $(BINS) $(OBJDIR) diff --git a/as/z80/asdata.c b/as/z80/asdata.c index 4af2fdcc..189be0b2 100644 --- a/as/z80/asdata.c +++ b/as/z80/asdata.c @@ -13,10 +13,6 @@ #include #include -//#if !defined(_MSC_VER) -//#include -//#endif - #include "asm.h" /*)Module asdata.c diff --git a/as/z80/aslist.c b/as/z80/aslist.c index 2c006cb3..e3a12b3e 100644 --- a/as/z80/aslist.c +++ b/as/z80/aslist.c @@ -16,13 +16,14 @@ #include #include #include +#include //#include "newalloc.h" -#if defined(_MSC_VER) -#include -#else -#include -#endif +//#if defined(_MSC_VER) +//#include +//#else +//#include +//#endif #include "asm.h" diff --git a/as/z80/assym.c b/as/z80/assym.c index 3aba5c28..3285265f 100644 --- a/as/z80/assym.c +++ b/as/z80/assym.c @@ -12,12 +12,13 @@ #include #include #include - -#if defined(_MSC_VER) #include -#else -#include -#endif + +//#if defined(_MSC_VER) +//#include +//#else +//#include +//#endif #include "asm.h" diff --git a/debugger/mcs51/Makefile.in b/debugger/mcs51/Makefile.in index 14cfd30c..3de33c8c 100644 --- a/debugger/mcs51/Makefile.in +++ b/debugger/mcs51/Makefile.in @@ -13,6 +13,7 @@ CPP = @CPP@ INSTALL = @INSTALL@ PRJDIR = ../.. +SLIB = $(PRJDIR)/support/Util srcdir = @srcdir@ prefix = @prefix@ @@ -27,7 +28,7 @@ man2dir = $(mandir)/man2 infodir = ${prefix}/info STD_INC = @sdcc_include_dir@ -CPPFLAGS = @CPPFLAGS@ -I. -I$(PRJDIR) -I$(PRJDIR)/support +CPPFLAGS = @CPPFLAGS@ -I. -I$(PRJDIR) -I$(PRJDIR)/support -I$(SLIB) CFLAGS = @CFLAGS@ M_OR_MM = @M_OR_MM@ LDFLAGS = @LDFLAGS@ @@ -35,6 +36,7 @@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ LIBDIRS = +SLIBOBJS = NewAlloc.o OBJECTS = sdcdb.o symtab.o simi.o $(PRJDIR)/src/SDCCset.o \ break.o cmd.o $(PRJDIR)/src/SDCChasht.o \ @@ -90,12 +92,14 @@ include clean.mk # My rules # -------- -$(TARGET): $(OBJECTS) - $(CC) $(LDFLAGS) -o $@ $(OBJECTS) $(LIBDIRS) $(LIBS) +$(TARGET): $(OBJECTS) $(SLIBOBJS) + $(CC) $(LDFLAGS) -o $@ $(OBJECTS) $(SLIBOBJS) $(LIBDIRS) $(LIBS) .c.o: $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< +$(SLIBOBJS):%.o:$(SLIB)/%.c + $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< # Remaking configuration # ---------------------- diff --git a/link/z80/Makefile b/link/z80/Makefile index 6c4fbeae..39f64dac 100644 --- a/link/z80/Makefile +++ b/link/z80/Makefile @@ -3,25 +3,35 @@ PRJDIR = ../.. include $(PRJDIR)/Makefile.common OBJDIR = obj/$(EXT) + +SLIBSRC = NewAlloc.c + SRC = lkarea.c lkdata.c lkeval.c lkhead.c lkihx.c lklex.c \ lklibr.c lklist.c lkmain.c lkrloc.c lks19.c lksym.c \ lkgb.c lkgg.c -OBJS = $(SRC:%.c=$(OBJDIR)/%.o) + +OBJS = $(SRC:%.c=$(OBJDIR)/%.o) +SLIBOBJS = $(SLIBSRC:%.c=$(OBJDIR)/%.o) + BINS = $(BUILDDIR)link$(EXT) CFLAGS += $(OPTS) -DINDEXLIB -DMLH_MAP -DUNIX -DSDK CFLAGS += -funsigned-char -DUNIX +CFLAGS += -I$(PRJDIR)/as/$(PORT) -I$(SLIB) all: $(BINS) -$(BINS): $(OBJDIR) $(OBJS) - $(CC) $(LDFLAGS) -o $(BINS) $(OBJS) +$(BINS): $(OBJDIR) $(OBJS) $(SLIBOBJS) + $(CC) $(LDFLAGS) -o $(BINS) $(OBJS) $(SLIBOBJS) $(OBJDIR): mkdir -p $(OBJDIR) $(OBJDIR)/%.o: %.c - $(CC) -c $(CFLAGS) -I$(PRJDIR)/as/$(PORT) -o $@ $< + $(CC) -c $(CFLAGS) -o $@ $< + +$(OBJDIR)/%.o: $(SLIB)/%.c + $(CC) -c $(CFLAGS) -o $@ $< clean: rm -rf $(OBJS) $(BINS) $(OBJDIR) diff --git a/link/z80/Makefile.in b/link/z80/Makefile.in index 467a53af..911077f4 100644 --- a/link/z80/Makefile.in +++ b/link/z80/Makefile.in @@ -26,11 +26,15 @@ man1dir = $(mandir)/man1 man2dir = $(mandir)/man2 infodir = ${prefix}/info -CPPFLAGS = @CPPFLAGS@ -I. -I$(PRJDIR) -I$(PRJDIR)/as/z80 +SLIB =$(PRJDIR)/support/Util + +CPPFLAGS = @CPPFLAGS@ -I. -I$(PRJDIR) -I$(PRJDIR)/as/z80 -I$(SLIB) CFLAGS = @CFLAGS@ -Wall -DINDEXLIB -DMLH_MAP -DUNIX -DSDK -DSDK_VERSION_STRING="\"3.0.0\"" -DTARGET_STRING="\"gbz80\"" -funsigned-char M_OR_MM = @M_OR_MM@ LDFLAGS = @LDFLAGS@ -lm +SLIBOBJS = NewAlloc.o + LKOBJECTS = lkarea.o lkdata.o lkeval.o lkhead.o lkihx.o lklex.o \ lklibr.o lklist.o lkmain.o lkrloc.o lks19.o lksym.o \ lkgb.o lkgg.o @@ -42,8 +46,8 @@ LKZ80 = $(PRJDIR)/bin/link-z80 # ------------------------------------------ all: checkconf $(LKZ80) -$(LKZ80): $(LKOBJECTS) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(LKOBJECTS) +$(LKZ80): $(SLIBOBJS) $(LKOBJECTS) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(SLIBOBJS) $(LKOBJECTS) # Compiling and installing everything and runing test # --------------------------------------------------- @@ -87,6 +91,8 @@ include clean.mk .c.o: $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< +$(SLIBOBJS):%.o:$(SLIB)/%.c + $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ # Remaking configuration # ---------------------- diff --git a/link/z80/lkarea.c b/link/z80/lkarea.c index 445db4aa..f7236b9d 100644 --- a/link/z80/lkarea.c +++ b/link/z80/lkarea.c @@ -11,7 +11,7 @@ #include #include -#include +//#include #include "aslink.h" /*)Module lkarea.c diff --git a/link/z80/lkdata.c b/link/z80/lkdata.c index 58c30f58..b9565417 100644 --- a/link/z80/lkdata.c +++ b/link/z80/lkdata.c @@ -11,7 +11,7 @@ #include #include -#include +//#include #include "aslink.h" /*)Module lkdata.c diff --git a/link/z80/lkeval.c b/link/z80/lkeval.c index 59a6c6b6..183e54b2 100644 --- a/link/z80/lkeval.c +++ b/link/z80/lkeval.c @@ -11,7 +11,7 @@ #include #include -#include +//#include #include "aslink.h" /*)Module lkeval.c diff --git a/link/z80/lkhead.c b/link/z80/lkhead.c index e8011c51..3eb127d9 100644 --- a/link/z80/lkhead.c +++ b/link/z80/lkhead.c @@ -11,7 +11,7 @@ #include #include -#include +//#include #include "aslink.h" /*Module lkhead.c diff --git a/link/z80/lkihx.c b/link/z80/lkihx.c index e8cfddfe..a0e35d99 100644 --- a/link/z80/lkihx.c +++ b/link/z80/lkihx.c @@ -11,7 +11,7 @@ #include #include -#include +//#include #include "aslink.h" /*)Module lkihx.c diff --git a/link/z80/lklex.c b/link/z80/lklex.c index 5447b736..670633bd 100644 --- a/link/z80/lklex.c +++ b/link/z80/lklex.c @@ -15,7 +15,7 @@ #include #include -#include +//#include #include "aslink.h" /*)Module lklex.c diff --git a/link/z80/lklibr.c b/link/z80/lklibr.c index 4e730bef..bc10c172 100644 --- a/link/z80/lklibr.c +++ b/link/z80/lklibr.c @@ -21,8 +21,9 @@ #include #include -#include +//#include #include "aslink.h" +#include "newalloc.h" /*)Module lklibr.c * diff --git a/link/z80/lklist.c b/link/z80/lklist.c index ddd20ea9..7f055252 100644 --- a/link/z80/lklist.c +++ b/link/z80/lklist.c @@ -11,7 +11,7 @@ #include #include -#include +//#include #include "aslink.h" /*)Module lklist.c diff --git a/link/z80/lkmain.c b/link/z80/lkmain.c index a01fa62e..681c7902 100644 --- a/link/z80/lkmain.c +++ b/link/z80/lkmain.c @@ -14,7 +14,7 @@ #include #include -#include +//#include #include "aslink.h" #ifndef SDK_VERSION_STRING diff --git a/link/z80/lkrloc.c b/link/z80/lkrloc.c index 4a4b527e..0f2d6ad0 100644 --- a/link/z80/lkrloc.c +++ b/link/z80/lkrloc.c @@ -15,7 +15,7 @@ #include #include -#include +//#include #include "aslink.h" /*)Module lkrloc.c diff --git a/link/z80/lks19.c b/link/z80/lks19.c index b326600f..905e7e74 100644 --- a/link/z80/lks19.c +++ b/link/z80/lks19.c @@ -11,7 +11,7 @@ #include #include -#include +//#include #include "aslink.h" /*)Module lks19.c diff --git a/link/z80/lksym.c b/link/z80/lksym.c index 0606dae7..dac3479c 100644 --- a/link/z80/lksym.c +++ b/link/z80/lksym.c @@ -11,7 +11,7 @@ #include #include -#include +//#include #include "aslink.h" /*)Module lksym.c diff --git a/src/Makefile.in b/src/Makefile.in index a2c567ae..5e05f3be 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -18,8 +18,10 @@ LIBS = -lm @LIBS@ ifdef SDCC_SUB_VERSION CFLAGS += -DSDCC_SUB_VERSION_STR=\"$(SDCC_SUB_VERSION)\" endif + +SLIBOBJS = SDCCerr.o NewAlloc.o -OBJECTS = SDCCy.o SDCCerr.o SDCChasht.o SDCCmain.o \ +OBJECTS = SDCCy.o SDCChasht.o SDCCmain.o \ SDCCsymt.o SDCCopt.o SDCCast.o SDCCmem.o SDCCval.o \ SDCCicode.o SDCCbitv.o SDCCset.o SDCClabel.o \ SDCCBBlock.o SDCCloop.o SDCCcse.o SDCCcflow.o SDCCdflow.o \ @@ -40,7 +42,7 @@ TARGET = $(PRJDIR)/bin/sdcc # Compiling entire program or any subproject # ------------------------------------------ -all: ports checkconf $(LIBGC) $(TARGET) +all: ports checkconf $(TARGET) ports: for i in $(PORTS); do $(MAKE) -C $$i; done @@ -89,12 +91,15 @@ include clean.mk # My rules # -------- -$(TARGET): $(OBJECTS) $(PORT_LIBS) - $(CC) -o $@ $(OBJECTS) $(PORT_LIBS) $(LIBDIRS) $(LIBS) +$(TARGET): $(SLIBOBJS) $(OBJECTS) $(PORT_LIBS) + $(CC) -o $@ $(SLIBOBJS) $(OBJECTS) $(PORT_LIBS) $(LIBDIRS) $(LIBS) .c.o: $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ +$(SLIBOBJS):%.o:$(SLIB)/%.c + $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ + reswords.h: reswords.gperf Makefile gperf -o -k1,2,4 -t -C -N is_reserved_word $< > $@ diff --git a/src/SDCC.y b/src/SDCC.y index f34acde0..cfc15ea5 100644 --- a/src/SDCC.y +++ b/src/SDCC.y @@ -33,6 +33,7 @@ #include "SDCCast.h" #include "port.h" #include "newalloc.h" +#include "SDCCerr.h" extern int yyerror (char *); extern FILE *yyin; diff --git a/src/SDCCglobl.h b/src/SDCCglobl.h index d5547fdf..59ac9a1c 100644 --- a/src/SDCCglobl.h +++ b/src/SDCCglobl.h @@ -1,4 +1,4 @@ -;/* SDCCglobl.h - global macros etc required by all files */ +/* SDCCglobl.h - global macros etc required by all files */ #ifndef SDCCGLOBL_H #define SDCCGLOBL_H #include @@ -88,22 +88,6 @@ typedef int bool; type *type##FreeStack [size] ; \ int type##StackPtr = 0 ; -#if 0 -#define ALLOC(x,sz) if (!(x = calloc(1, sz))) \ - { \ - werror(E_OUT_OF_MEM,__FILE__,(long) sz);\ - exit (1); \ - } -#endif - -#if 0 -#define ALLOCTYPE(type,size) if (!(type##Pool = calloc(1, size*sizeof(type))))\ - { \ - werror(E_OUT_OF_MEM,__FILE__,(long) size); \ - exit (1); \ - } -#endif - #define PUSH(x,y) x##FreeStack[x##StackPtr++] = y #define PEEK(x) x##FreeStack[x##StackPtr-1] #define POP(type) type##FreeStack[--type##StackPtr] diff --git a/src/SDCCmain.c b/src/SDCCmain.c index 2d44d466..69cfb2eb 100644 --- a/src/SDCCmain.c +++ b/src/SDCCmain.c @@ -22,11 +22,12 @@ what you give them. Help stamp out software-hoarding! -------------------------------------------------------------------------*/ -#define USE_SYSTEM_SYSTEM_CALLS +//#define USE_SYSTEM_SYSTEM_CALLS #include "common.h" #include #include "newalloc.h" +#include "SDCCerr.h" #if NATIVE_WIN32 #include diff --git a/src/mcs51/Makefile b/src/mcs51/Makefile index d2783a64..89fa5dc0 100644 --- a/src/mcs51/Makefile +++ b/src/mcs51/Makefile @@ -5,7 +5,8 @@ include $(PRJDIR)/Makefile.common OBJ = gen.o ralloc.o main.o LIB = port.a -CFLAGS += -I.. -I. -I../.. +#CFLAGS += -I.. -I. -I../.. +CFLAGS += -I$(PRJDIR)/src -I$(PRJDIR)/support/Util all: $(LIB) diff --git a/support/cpp/Makefile.in b/support/cpp/Makefile.in index 5efe335b..21191d2b 100644 --- a/support/cpp/Makefile.in +++ b/support/cpp/Makefile.in @@ -12,6 +12,10 @@ CC = @CC@ CPP = @CPP@ INSTALL = @INSTALL@ +# Source library + +SLIB = ../Util + PRJDIR = ../.. srcdir = @srcdir@ @@ -27,11 +31,13 @@ man2dir = $(mandir)/man2 infodir = ${prefix}/info STD_INC = @sdcc_include_dir@ -CPPFLAGS = @CPPFLAGS@ -I. -I$(PRJDIR) -D_FORASXXXX_ +CPPFLAGS = @CPPFLAGS@ -I. -I$(PRJDIR) -I$(SLIB) -D_FORASXXXX_ CFLAGS = @CFLAGS@ M_OR_MM = @M_OR_MM@ LDFLAGS = @LDFLAGS@ +SLIBOBJS = NewAlloc.o + OBJECTS = cppalloc.o cpperror.o cppexp.o cpphash.o cpplib.o cppmain.o support.o SOURCES = $(patsubst %.o,%.c,$(OBJECTS)) @@ -42,8 +48,8 @@ TARGET = $(PRJDIR)/bin/sdcpp # ------------------------------------------ all: checkconf $(TARGET) -$(TARGET): $(OBJECTS) - $(CC) $(LDFLAGS) -o $@ $(OBJECTS) +$(TARGET): $(SLIBOBJS) $(OBJECTS) + $(CC) $(LDFLAGS) -o $@ $(SLIBOBJS) $(OBJECTS) # Compiling and installing everything and runing test # --------------------------------------------------- @@ -88,6 +94,8 @@ include clean.mk .c.o: $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< +$(SLIBOBJS):%.o:$(SLIB)/%.c + $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ # Remaking configuration # ----------------------