The current status is: * in rev 13670: both builds pic14 and pic16 are fine without changes; * but there are some fixes needed in order to run the tests for these ports. Attached is a patch that provides the necessary fixes (one also needs to have gpsim installed and in the path for things to run or set the GPSIM_PATH variable with the path of gpsim; * I ran the tests and I'm not sure if all the errors I got are actually specific for the pic ports. For example, this one (I got a lot of this one):
cases/../../../../sdcc/support/regression/cases/../tests/bug-2805.c:9: error 206: invalid combination of short / long * maybe some guidance from more experienced people might help me separating pic-specific bugs from generic compiler bugs (if I'm able to, I will fix as much stuff as I can); * I need help in order to add one more option to the configure script: the ability to set the gputils path at configure time and use it as the default (of course, the command line option will always have the priority but it is difficult e.g. to run the test suite using a newer build of gputils installed in a custom path. The configure script simply detects and uses the gputils but I don't have a chance to point it to one build of mine (newer, more supported chips). Can anyone help? * here is the summary of running make test-pic14 in support/regression: Summary for 'pic14': 406 abnormal stops ( ), 1264 failures, 11746 tests, 2822 test cases, 0 bytes, 0 ticks I'm suspecting that actually no tests were run at all (some tests don't compile and the ones that compile are not being run for some reason I can't see yet). On Sun, Aug 21, 2022 at 7:06 AM Benedikt Freisen <b.frei...@gmx.net> wrote: > Good morning! > > Am 21.08.22 um 07:27 schrieb Michael Havenga: > > Morning Everyone, > > > > Would it be wrong in saying there is some level of renewed interest in > > the PIC support and if the automated testing has been reviewed could > > that potentially lead to a release at some point ? > > > > Have a great day. > > > > Michael A Havenga > > That assessment of the situation is not wrong, but it is not entirely > right, either. > The PIC backends are still part of every official release, but > individual distributors might not be willing to distribute SDCC binaries > with unstable, unmaintained parts of the code enabled. > > The path to _stable_ PIC backends is as follows: > - Stabilize the build process -- it is currently hit or miss > - Stabilize regression testing itself > - Stabilize the compiler, minimizing the number of crashes during > regression testing > - Fix the code generator so that all (or most) regression tests pass > > Needless to say, the fourth step requires extensive knowledge of the PIC > platform and will likely be the hardest. > However, from a distributor's point of view, the software package itself > would already be stable after the completion of step three. > > As always: Contributions are welcome! > > Greetings, > Benedikt > > > _______________________________________________ > Sdcc-user mailing list > Sdcc-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/sdcc-user > -- Daniel "Let us change our traditional attitude to the construction of programs. Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do." (Donald Knuth) "Yes, technogeeks can be funny, even if only to each other." ( http://www.boogieonline.com/revolution/science/humor/)" "Man is driven to create; I know I really love to create things. And while I'm not good at painting, drawing, or music, I can write software." (Yukihiro Matsumoto, a.k.a. ``Matz'')
Index: sdcc/support/regression/Makefile.in =================================================================== --- sdcc/support/regression/Makefile.in (revision 13668) +++ sdcc/support/regression/Makefile.in (working copy) @@ -154,9 +154,9 @@ mos6502-stack-auto # unstable -EXCLUDE_PORTS += \ - pic14 \ - pic16 +# EXCLUDE_PORTS += \ +# pic14 \ +# pic16 # redundant, uCSim works better. EXCLUDE_PORTS += \ @@ -263,7 +263,17 @@ # Only include if we're in a per-port call. ifdef PORT -EMU_INPUT = < $(PORTS_DIR)/$(PORT_BASE)/uCsim.cmd +ifeq ($(PORT_BASE), pic14) +EMU_INPUT = $(PORTS_DIR)/$(PORT_BASE)/gpsim.cmd +EMU_EXTRA_FLAGS = -i -c +else +ifeq ($(PORT_BASE), pic16) +EMU_INPUT = $(PORTS_DIR)/$(PORT_BASE)/gpsim.cmd +EMU_EXTRA_FLAGS = -i -c +else +EMU_INPUT = $(PORTS_DIR)/$(PORT_BASE)/uCsim.cmd +endif +endif # run simulator with SIM_TIMEOUT seconds timeout # include ./$(PORT)/spec.mk if exists, else include $(PORTS_DIR)/$(PORT)/spec.mk @@ -279,7 +289,7 @@ @echo --- Running: $< > $@; -${M_V_at}if $(MAKE) $(MAKE_SUB_FLAGS) $(TMP_DIR)/$(PORT)/$*$(BINEXT) PORT=$(PORT); then \ - ${M_V_EMU}$(TMP_DIR)/timeout $(SIM_TIMEOUT) $(EMU) $(EMU_PORT_FLAG) $(EMU_FLAGS) $(TMP_DIR)/$(PORT)/$*$(BINEXT) ${EMU_INPUT} > $@; \ + ${M_V_EMU}$(TMP_DIR)/timeout $(SIM_TIMEOUT) $(EMU) $(EMU_PORT_FLAG) $(EMU_FLAGS) $(TMP_DIR)/$(PORT)/$*$(BINEXT) ${EMU_EXTRA_FLAGS} ${EMU_INPUT} > $@; \ if [ 0 -ne $$? ]; then \ echo --- FAIL: \"timeout, simulation killed\" in $< >> $@; \ echo --- Summary: 1/1/1: timeout >> $@; \ Index: sdcc/support/regression/ports/pic14/spec.mk =================================================================== --- sdcc/support/regression/ports/pic14/spec.mk (revision 13668) +++ sdcc/support/regression/ports/pic14/spec.mk (working copy) @@ -32,6 +32,8 @@ OBJEXT = .o BINEXT = .cod +EMU=$(GPSIM) + EXTRAS = $(PORT_CASES_DIR)/testfwk$(OBJEXT) $(PORT_CASES_DIR)/support$(OBJEXT) # Rule to link into .ihx Index: sdcc/support/regression/ports/pic16/spec.mk =================================================================== --- sdcc/support/regression/ports/pic16/spec.mk (revision 13668) +++ sdcc/support/regression/ports/pic16/spec.mk (working copy) @@ -33,6 +33,8 @@ OBJEXT = .o BINEXT = .cod +EMU = $(GPSIM) + EXTRAS = $(PORT_CASES_DIR)/testfwk$(OBJEXT) $(PORT_CASES_DIR)/support$(OBJEXT) # Rule to link into .ihx
_______________________________________________ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user