and search crt0.o in all library paths,
(setIncludePath): proper handling of --nostdinc,
(setLibPath): proper handling of --nostdlib
* support/regression/Makefile,
* support/regression/ports/ds390/spec.mk,
* support/regression/ports/gbz80/spec.mk,
* support/regression/ports/hc08/spec.mk,
* support/regression/ports/mcs51/spec.mk,
* support/regression/ports/mcs51-large/spec.mk,
* support/regression/ports/mcs51-stack-auto/spec.mk,
* support/regression/ports/z80/spec.mk: use include and lib files from
built version of sdcc instead of installed version
* doc/sdccman.lyx: fixed typo in --nostdinc
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3572
4a8a32a2-be11-0410-ad9d-
d568d2c75423
+2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
+ * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
+ and search crt0.o in all library paths,
+ (setIncludePath): proper handling of --nostdinc,
+ (setLibPath): proper handling of --nostdlib
+ * support/regression/Makefile,
+ * support/regression/ports/ds390/spec.mk,
+ * support/regression/ports/gbz80/spec.mk,
+ * support/regression/ports/hc08/spec.mk,
+ * support/regression/ports/mcs51/spec.mk,
+ * support/regression/ports/mcs51-large/spec.mk,
+ * support/regression/ports/mcs51-stack-auto/spec.mk,
+ * support/regression/ports/z80/spec.mk: use include and lib files from
+ built version of sdcc instead of installed version
+ * doc/sdccman.lyx: fixed typo in --nostdinc
+
2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
* src/pic/pcode.c,
* support/regression/ports/mcs51/support.c: reload T1 asap
* doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
pdata use and clear idata startup behaviour
+ * support/regression/tests/bug1057979.c: added
2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
/
\end_inset
--nostdincl
-\begin_inset LatexCommand \index{-\/-nostdincl}
+-nostdinc
+\begin_inset LatexCommand \index{-\/-nostdinc}
\end_inset
It is very important for this file to be first on the linking proccess
so the areas are set in the correct order, expecially _GSINIT*/
if ((TARGET_IS_Z80 || TARGET_IS_GBZ80) &&
- !options.no_std_crt0 && !options.nostdlib) /*For the z80, gbz80*/
+ !options.no_std_crt0) /*For the z80, gbz80*/
{
char crt0path[PATH_MAX];
FILE * crt0fp;
- for (s = setFirstItem(libDirsSet); s != NULL; s = setNextItem(libDirsSet))
+ set *tempSet=NULL;
+
+ tempSet = appendStrSet(libDirsSet, NULL, DIR_SEPARATOR_STRING);
+ tempSet = appendStrSet(libDirsSet, NULL, c);
+ mergeSets(&tempSet, libPathsSet);
+
+ for (s = setFirstItem(tempSet); s != NULL; s = setNextItem(tempSet))
{
- sprintf (crt0path, "%s%s%s%scrt0.o",
- s, DIR_SEPARATOR_STRING, c, DIR_SEPARATOR_STRING);
+ sprintf (crt0path, "%s%scrt0.o",
+ s, DIR_SEPARATOR_STRING);
crt0fp=fopen(crt0path, "r");
if(crt0fp!=NULL)/*Found it!*/
* 4. - DATADIR/INCLUDE_DIR_SUFFIX (only on *nix)
*/
+ if (options.nostdinc)
+ return;
+
includeDirsSet = appendStrSet(dataDirsSet, NULL, INCLUDE_DIR_SUFFIX);
if ((p = getenv(SDCC_INCLUDE_NAME)) != NULL)
* 4. - DATADIR/LIB_DIR_SUFFIX/<model> (only on *nix)
*/
+ if (options.nostdlib)
+ return;
+
libDirsSet = appendStrSet(dataDirsSet, NULL, LIB_DIR_SUFFIX);
if ((p = getenv(SDCC_LIB_NAME)) != NULL)
# Helper rule for testing the mcs51 port only
test-mcs51:
$(MAKE) test-port PORT=mcs51
+
test-mcs51-large:
$(MAKE) test-port PORT=mcs51-large
+
test-mcs51-stack-auto:
$(MAKE) make-library test-port PORT=mcs51-stack-auto
SDCC_DIR = ../..
SDCC_EXTRA_DIR = ../../../sdcc-extra
-
+INC_DIR = $(SDCC_DIR)/device/include
# Defaults. Override in spec.mk if required.
# Path to SDCC
include $(PORTS_DIR)/$(PORT)/spec.mk
endif
-SDCCFLAGS += -Ifwk/include -Itests
+SDCCFLAGS += -Ifwk/include -Itests -I$(INC_DIR)
# List of intermediate files to keep. Pretty much keep everything as
# disk space is free.
S51 = $(shell if [ -f $(S51A) ]; then echo $(S51A); else echo $(S51B); fi)
-SDCCFLAGS +=-mds390 --less-pedantic -DREENTRANT=reentrant -Wl-r
+SDCCFLAGS +=-mds390 --nostdinc --less-pedantic -DREENTRANT=reentrant -Wl-r
+LINKFLAGS = --nostdlib
+LINKFLAGS += libds390.lib libsdcc.lib liblong.lib libint.lib libfloat.lib
+LIBDIR = $(SDCC_DIR)/device/lib/build/ds390
OBJEXT = .rel
EXEEXT = .ihx
# Rule to link into .ihx
%$(EXEEXT): %$(OBJEXT) $(EXTRAS)
- $(SDCC) $(SDCCFLAGS) $(EXTRAS) $< -o $@
+ $(SDCC) $(SDCCFLAGS) $(LINKFLAGS) -L $(LIBDIR) $(EXTRAS) $< -o $@
%$(OBJEXT): %.c
$(SDCC) $(SDCCFLAGS) -c $< -o $@
EMU = $(SDCC_EXTRA_DIR)/emu/rrgb/rrgb
-SDCCFLAGS +=-mgbz80 --less-pedantic -DREENTRANT=
+SDCCFLAGS +=-mgbz80 --nostdinc --less-pedantic -DREENTRANT=
+LINKFLAGS = --nostdlib
+LINKFLAGS += gbz80.lib
+LIBDIR = $(SDCC_DIR)/device/lib/build/gbz80
EXEEXT = .gb
# Rule to link into .ihx
%.gb: %.c $(EXTRAS)
- $(SDCC) $(SDCCFLAGS) $< $(EXTRAS) -o $@
+ $(SDCC) $(SDCCFLAGS) $(LINKFLAGS) -L $(LIBDIR) $(EXTRAS) $< -o $@
%$(OBJEXT): %.asm
../../bin/as-gbz80 -plosgff $@ $<
UCHC08 = $(shell if [ -f $(UCHC08A) ]; then echo $(UCHC08A); else echo $(UCHC08B); fi)
-SDCCFLAGS +=-mhc08 --less-pedantic --out-fmt-ihx -DREENTRANT=reentrant
-#SDCCFLAGS +=--less-pedantic -DREENTRANT=reentrant
+SDCCFLAGS +=-mhc08 --nostdinc --less-pedantic --out-fmt-ihx -DREENTRANT=reentrant
+LINKFLAGS = --nostdlib
+LINKFLAGS += hc08.lib
+LIBDIR = $(SDCC_DIR)/device/lib/build/hc08
OBJEXT = .rel
EXEEXT = .ihx
#%$(EXEEXT): %$(OBJEXT) $(EXTRAS)
%$(EXEEXT): %.c $(EXTRAS)
- $(SDCC) $(SDCCFLAGS) $< $(EXTRAS) -o $@
+ $(SDCC) $(SDCCFLAGS) $(LINKFLAGS) -L $(LIBDIR) $(EXTRAS) $< -o $@
%$(OBJEXT): %.asm
$(SDCC_DIR)/bin/as-hc08 -plosgff $<
EXEEXT = .bin
OBJEXT = .o
+INC_DIR = .
# otherwise `make` deletes it and `make -j`will fail
.PRECIOUS: ports/$(PORT)/testfwk$(OBJEXT)
%.out: %$(EXEEXT)
mkdir -p `dirname $@`
-$< > $@
- -grep -n FAIL $@ /dev/null || true
+ -grep -n FAIL $@ /dev/null || true
%$(EXEEXT): %$(OBJEXT) $(EXTRAS)
$(SDCC) $(SDCCFLAGS) -o $@ $< $(EXTRAS) -lm
cp $< $@
include $(PORTS_DIR)/mcs51/spec.mk
+
+LIBDIR = $(SDCC_DIR)/device/lib/build/large
#
# model small stack-auto
+include $(PORTS_DIR)/mcs51/spec.mk
+
LIBSRCDIR = ../../device/lib
LIBDIR = gen/$(PORT)/lib
-LIBSDCCFLAGS+=--stack-auto --int-long-reent --float-reent
-SDCCFLAGS +=$(LIBSDCCFLAGS) --nostdlib -L$(LIBDIR) -llibsdcc -llibint \
- -lliblong -llibfloat -lmcs51
+LIBSDCCFLAGS+=--stack-auto
+SDCCFLAGS +=$(LIBSDCCFLAGS)
# copy support.c
$(PORTS_DIR)/$(PORT)/%.c: $(PORTS_DIR)/mcs51/%.c
cp $< $@
-include $(PORTS_DIR)/mcs51/spec.mk
-
SOURCES = _atoi.c _atol.c _autobaud.c _bp.c _schar2fs.c \
_decdptr.c _divsint.c _divslong.c _divuint.c \
_divulong.c _fs2schar.c _fs2sint.c _fs2slong.c \
S51 = $(shell if [ -f $(S51A) ]; then echo $(S51A); else echo $(S51B); fi)
-SDCCFLAGS +=--less-pedantic -DREENTRANT=reentrant
+SDCCFLAGS +=--nostdinc --less-pedantic -DREENTRANT=reentrant
+LINKFLAGS = --nostdlib
+LINKFLAGS += mcs51.lib libsdcc.lib liblong.lib libint.lib libfloat.lib
+LIBDIR = $(SDCC_DIR)/device/lib/build/small
OBJEXT = .rel
EXEEXT = .ihx
# Rule to link into .ihx
%$(EXEEXT): %$(OBJEXT) $(EXTRAS)
- $(SDCC) $(SDCCFLAGS) $(EXTRAS) $< -o $@
+ $(SDCC) $(SDCCFLAGS) $(LINKFLAGS) -L $(LIBDIR) $(EXTRAS) $< -o $@
%$(OBJEXT): %.c
$(SDCC) $(SDCCFLAGS) -c $< -o $@
RRZ80 = $(SDCC_EXTRA_DIR)/emu/rrz80/rrz80
-SDCCFLAGS +=-mz80 --less-pedantic --profile -DREENTRANT=
+SDCCFLAGS +=-mz80 --nostdinc --less-pedantic --profile -DREENTRANT=
+LINKFLAGS = --nostdlib
+LINKFLAGS += z80.lib
+LIBDIR = $(SDCC_DIR)/device/lib/build/z80
EXEEXT = .bin
# Rule to link into .ihx
%.ihx: %.c $(EXTRAS)
- $(SDCC) $(SDCCFLAGS) $< $(EXTRAS) -o $@
+ $(SDCC) $(SDCCFLAGS) $(LINKFLAGS) -L $(LIBDIR) $(EXTRAS) $< -o $@
%$(OBJEXT): %.asm
$(SDCC_DIR)/bin/as-z80 -plosgff $@ $<