freemint / fvdi

fVDI fork with additional fixes and drivers.
https://fvdi.sourceforge.io
7 stars 6 forks source link

commit 7d17626 breaks build #5

Closed mfro0 closed 4 years ago

mfro0 commented 4 years ago

fVDI does not build for me with commit 7d17626 ("We do not need to preprocess some simple assembler include files")

make[1]: Verzeichnis „/home/mfro/Dokumente/Development/atari/fvdi/fvdi/engine“ wird betreten
  GEN      fvdi.gnu.s
  GEN      ../drivers/1_plane/1_expand.inc.gnu
  AS       fvdi.gnu.o
/tmp/ccxlRoFD.s: Assembler messages:
/tmp/ccxlRoFD.s:29: Error: can't open vdi.gnu for reading: Datei oder Verzeichnis nicht gefunden
/tmp/ccxlRoFD.s:30: Error: can't open macros.gnu for reading: Datei oder Verzeichnis nicht gefunden
fvdi.gnu.s:181: Error: syntax error -- statement `move.l control(a2),a2' ignored
fvdi.gnu.s:297: Error: Unknown operator -- statement `save_regs' ignored
fvdi.gnu.s:300: Error: syntax error -- statement `move.l control(a2),a1' ignored
fvdi.gnu.s:450: Error: Unknown operator -- statement `return' ignored
fvdi.gnu.s:478: Error: syntax error -- statement `move.l control(a1),a2' ignored
fvdi.gnu.s:547: Error: syntax error -- statement `move.l control(a1),a2' ignored
fvdi.gnu.s:568: Error: syntax error -- statement `move.l control(a1),a2' ignored
../utility/conv2gas/RULES:93: recipe for target 'fvdi.gnu.o' failed
make[1]: *** [fvdi.gnu.o] Error 1
make[1]: Verzeichnis „/home/mfro/Dokumente/Development/atari/fvdi/fvdi/engine“ wird verlassen
Makefile:10: recipe for target 'all' failed
make: *** [all] Error 1

This is for m68k builds; CPU=v4e works fine.

th-otto commented 4 years ago

Works fine here. However two of the files are symlinks, can that cause problems?

th-otto commented 4 years ago

Hm i don't get it. Just tried in my local fork, and in the snapshot it get

$ ls -l ../include
ls -l ../include
total 112
-rw-rw-r-- 1 travis travis  1233 May 22 07:29 calamus.h
-rw-rw-r-- 1 travis travis  9459 May 22 07:29 function.h
-rw-rw-r-- 1 travis travis 18067 May 22 07:29 fvdi.h
-rw-rw-r-- 1 travis travis  2605 May 22 07:29 globals.h
-rw-rw-r-- 1 travis travis  2236 May 22 07:29 macros.dev
-rw-rw-r-- 1 travis travis  1386 May 22 07:29 macros.gnu
-rw-rw-r-- 1 travis travis   126 May 22 07:29 macros.inc
-rw-rw-r-- 1 travis travis  1565 May 22 07:29 macros.tas
drwxrwxr-x 2 travis travis  4096 May 22 07:29 modules
-rw-rw-r-- 1 travis travis  6839 May 22 07:29 nf_ops.h
-rw-rw-r-- 1 travis travis   529 May 22 07:29 os.h
-rw-rw-r-- 1 travis travis  2685 May 22 07:29 relocate.h
drwxrwxr-x 2 travis travis  4096 May 22 07:29 stdio
drwxrwxr-x 2 travis travis  4096 May 22 07:29 stdlib
drwxrwxr-x 2 travis travis  4096 May 22 07:29 string
-rw-rw-r-- 1 travis travis  9959 May 22 07:29 types.inc
-rw-rw-r-- 1 travis travis  4449 May 22 07:29 utility.h
-rw-rw-r-- 1 travis travis   479 May 22 07:29 vdi.inc

That is, include/vdi.gnu (the symlink) is not there.

However, when i do a fresh clone, it is...

Edit: ah, forget it. That was only an error in my fork, were that file was actually missing. But should be present in this repo.

mfro0 commented 4 years ago

the links are there, that does not seem to be the problem.

... found it: you changed the $(AS) commands to $(CC) -x assembler-with-cpp (why?), but left the -I... option. That way, the include path option will be eaten by the preprocessor (that can't do much with it because inside the assembler files we still have the as .include and no #include option).

The ASFLAGS include variables must be prepended with -Wa,-I...then. Now it builds again for me.

I wonder how this could work for you? Do you want to fix the repo yourself or do you want me to push my changes instead?

th-otto commented 4 years ago

Yes, that's the strange thing. My compiler driver (also gcc 4.6.4) passes along the -I directives when invoking as. But Vincents version does not. Should be fixed now.

BTW i wasn't notified by travis that the build failed, otherwise i would have noticed it earlier. Do you remember which setting is responsible for that?

th-otto commented 4 years ago

The idea for using gcc with -x assembler-with-cpp was to simplify the conv2gas step, by using c-style comments (pasm also support such comments). However it turned out that pacf complains about that, so i had to revert the changes to the include files.

mfro0 commented 4 years ago

My compiler driver (also gcc 4.6.4) passes along the -I directives when invoking as. But Vincents version does not. Should be fixed now.

That seems odd. If your driver really does that, I would consider this a bug, as this will probably make problems more often than not (I cannot think of a situation where it would be the assembler would be desireable).

It seems the travis build notifications are somehow disturbed - the last build obviously succeded but the button on the same page says "failed". I have just added an explicit build notification but at the moment, there is no build triggered at all?

I'm going to close this issue as the problem is fixed.

th-otto commented 4 years ago

That seems odd.

Yes, that might be true. But that's the reason why i didn't notice the problem.

Maybe i should revert that attempt completely, and directly use AS again. But that whole business about converting the assembler sources drives me mad. There are some dangerous substitutions made there (ie it substitutes all branches to .loop1 labels by 1b etc, if you ever use that in some other order then you are doomed)