Greg, I saw several patch for z80, does the problem get fixed or we need take a look?
Thanks Xiang On Fri, Feb 21, 2020 at 4:25 AM Gregory Nutt <spudan...@gmail.com> wrote: > > Here is a little more detail about the error: > > > > .... Here are the problems that I see now: > > > > 1. The eZ80 COMPILE target generates the .obj file without using the > > fully decorated object name. For example, when it is supposed to > > generate: > > > > > > mkfatfs.cygdrive.d.Spuda.Documents.projects.nuttx.master.apps-fork.fsutils.mkfatfs.obj > > > > It instead generates: > > > > mkfatfs.obj > > > > That should be easy to fix in the COMPILE and ASSEMBLE definitions. > > > > 2. The full path to the archive is > > > > D:\Spuda\Documents\projects\nuttx\master\apps-fork\libapps.lib > > > > But by the time it gets to the ZDS-II librarian, it becomes: > > > > D:SpudaDocumentsprojectsnuttxmasterapps-forklibapps.lib > > > > I haven't figures out where the backslashes are being lost yet. > > > > I am expecting that this explicit GCC command option will cause > > failures too: > > > > ./Makefile: $(call COMPILE, -fno-lto $<, $@) > > > > That really should be dependent on CONFIG_ARCH_TOOLCHAIN_GNU. There > > should be an issue opened up on that. > > > > These all seem like simple things, but I haven't solved them all yet. > > Makefiles are too difficult to debug! > > > Detailed output with V=1 and some instrumentation: > > make[2]: Entering directory > > '/cygdrive/d/Spuda/Documents/projects/nuttx/master/apps-fork/fsutils/mkfatfs' > > ### Here three files are compiled. They still generate the > undecorated object files. > > /cygdrive/c/ZiLOG/ZDSII_eZ80Acclaim!_5.3.3/bin/ez80cc.exe -warn > -nodebug -optsize -keeplst -NOlist -NOlistinc -keepasm -chartype:S > -promote -cpu:eZ80F91 -NOgenprintf -NOmodsect -asmsw:" -cpu:eZ80F91 > -NOigcase > > -include:'D:\Spuda\Documents\projects\nuttx\master\nuttx-fork\include;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\std;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\zilog' > -warn -nodebug -NOsdiopt" > > -stdinc:'D:\Spuda\Documents\projects\nuttx\master\nuttx-fork\include;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\std;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\zilog' > -usrinc:'.' -define:_EZ80F91 -define: > -usrinc:'D:\Spuda\Documents\projects\nuttx\master\apps-fork\include' > `cygpath -w " mkfatfs.c"` > mkfatfs.c > > /cygdrive/c/ZiLOG/ZDSII_eZ80Acclaim!_5.3.3/bin/ez80cc.exe -warn > -nodebug -optsize -keeplst -NOlist -NOlistinc -keepasm -chartype:S > -promote -cpu:eZ80F91 -NOgenprintf -NOmodsect -asmsw:" -cpu:eZ80F91 > -NOigcase > > -include:'D:\Spuda\Documents\projects\nuttx\master\nuttx-fork\include;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\std;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\zilog' > -warn -nodebug -NOsdiopt" > > -stdinc:'D:\Spuda\Documents\projects\nuttx\master\nuttx-fork\include;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\std;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\zilog' > -usrinc:'.' -define:_EZ80F91 -define: > -usrinc:'D:\Spuda\Documents\projects\nuttx\master\apps-fork\include' > `cygpath -w " configfat.c"` > configfat.c > > /cygdrive/c/ZiLOG/ZDSII_eZ80Acclaim!_5.3.3/bin/ez80cc.exe -warn > -nodebug -optsize -keeplst -NOlist -NOlistinc -keepasm -chartype:S > -promote -cpu:eZ80F91 -NOgenprintf -NOmodsect -asmsw:" -cpu:eZ80F91 > -NOigcase > > -include:'D:\Spuda\Documents\projects\nuttx\master\nuttx-fork\include;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\std;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\zilog' > -warn -nodebug -NOsdiopt" > > -stdinc:'D:\Spuda\Documents\projects\nuttx\master\nuttx-fork\include;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\std;C:\ZiLOG\ZDSII_eZ80Acclaim!_5.3.3\include\zilog' > -usrinc:'.' -define:_EZ80F91 -define: > -usrinc:'D:\Spuda\Documents\projects\nuttx\master\apps-fork\include' > `cygpath -w " writefat.c"` > writefat.c > > ### Here is the ARCHIVE. A debug echo shows that $1, $2m, and $AR > are okay > > 1= D:SpudaDocumentsprojectsnuttxmasterapps-forklibapps.lib > 2= > > mkfatfs.cygdrive.d.Spuda.Documents.projects.nuttx.master.apps-fork.fsutils.mkfatfs.obj > > configfat.cygdrive.d.Spuda.Documents.projects.nuttx.master.apps-fork.fsutils.mkfatfs.obj > > writefat.cygdrive.d.Spuda.Documents.projects.nuttx.master.apps-fork.fsutils.mkfatfs.obj > AR=/cygdrive/c/ZiLOG/ZDSII_eZ80Acclaim!_5.3.3/bin/ez80lib.exe > > ### This is the ARCHIVE loop. Things are divided on separate lines > to make it more readable > > for __obj in > > mkfatfs.cygdrive.d.Spuda.Documents.projects.nuttx.master.apps-fork.fsutils.mkfatfs.obj > > configfat.cygdrive.d.Spuda.Documents.projects.nuttx.master.apps-fork.fsutils.mkfatfs.obj > > writefat.cygdrive.d.Spuda.Documents.projects.nuttx.master.apps-fork.fsutils.mkfatfs.obj > ; \ > do \ > /cygdrive/c/ZiLOG/ZDSII_eZ80Acclaim!_5.3.3/bin/ez80lib.exe -quiet > -warn > "D:\Spuda\Documents\projects\nuttx\master\apps-fork\libapps.lib"=-+$__obj > || \ > { echo > "/cygdrive/c/ZiLOG/ZDSII_eZ80Acclaim!_5.3.3/bin/ez80lib.exe > "D:\Spuda\Documents\projects\nuttx\master\apps-fork\libapps.lib"=-+$__obj > FAILED!" ; exit 1 ; } \ > done > > ### This looks like the first call to $(AR). The $(AR) is missing > and seems to generate the error > ### The library patch still seems good > > -quiet -warn > > D:\Spuda\Documents\projects\nuttx\master\apps-fork\libapps.lib=-+mkfatfs.cygdrive.d.Spuda.Documents.projects.nuttx.master.apps-fork.fsutils.mkfatfs.obj > *** <syntax error> *** > > ### This is the error echo output. The $(AR) is present. Now the > library path is corrupted > > /cygdrive/c/ZiLOG/ZDSII_eZ80Acclaim!_5.3.3/bin/ez80lib.exe > > D:SpudaDocumentsprojectsnuttxmasterapps-forklibapps.lib=-+mkfatfs.cygdrive.d.Spuda.Documents.projects.nuttx.master.apps-fork.fsutils.mkfatfs.obj > FAILED! > > make[2]: *** > > [/cygdrive/d/Spuda/Documents/projects/nuttx/master/apps-fork/Application.mk:133: > .built] Error 1 > make[2]: Leaving directory > > '/cygdrive/d/Spuda/Documents/projects/nuttx/master/apps-fork/fsutils/mkfatfs' > > If you see any issue, let me know. I have spent quite a bit of time one > this tiny logic sequence. > > I am suspicious of the ! character in the path to ez80lib.exe. If I try > to run that from the command line I get: > > -bash: !_5.3.3/bin/ez80lib.exe: event not found > > But there seems to be no problem with int ! in the path to ez80cc.exe > for the compilations above this and this has always worked from the > context of the make in the past. > > Greg > >