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


Reply via email to