From my message sent to the mailing list:
I just updated my sources from repository and I cannot build them anymore. I'm getting this message:
~~~
../src/datasette/libdatasette.a(datasette.o): in functiondatasette_internal_reset': /home/Carlo/vice-emu-code/v1_x86_64/src/datasette/../../../vice/src/datasette/datasette.c:910: undefined reference to
tapeport_valid_port'
make[3]: *** [Makefile:1777: x64dtv.exe] Error 1
~~~It seems to me that there is a bug into src\Makefile.am because targets $x64dtv_libs and $xscpu64_libs are linking with $(datasette_lib) but they are missing $(tapeport_lib).
BTW, targets $x64_libs, $x64sc_libs and $x128_libs have $(tapeport_lib) multiple times, it would be worth to have just one of them.
However, adding $(tapeport_lib) is not enough. I did it and the undefined reference to tapeport_valid_port is gone, but now it complains other undefined references from tapeport library.
Probably, the bug happens after r41116.
Since it is getting more complex than expected, I'm filing a bug.
I cannot reproduce this, can you please do a 'make clean' and then a './autogen.sh' and then './configure ...etc' and then a 'make' and see what happens.
I suspect that you are compiling for GTK3 and not SDL, so this line saves you:
https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/c64dtv/c64dtvstubs.c#l34
EDIT: I confirm that compiling for GTK3 works. Tested on CYGWIN.
Last edit: Carlo Bramini 2021-11-14
I'm compiling for sdl, current trunk, and I do not get the link error, when I scan through the resulting x64dtv.exe there is no mention of tapeport_valid_port what so ever. datasette.c should not even be linked into x64dtv.exe. that's why I'm thinking something went wrong with the makefile generation, and that's why I suggest you do a clean build.
I can see that libdatasette.a is used for x64dtv, let me remove it from the linking.
please try again with rev 41133
I updated the sources with your changes and now I'm getting these new errors:
EDIT: now, also GTK3 does not build anymore here.
Last edit: Carlo Bramini 2021-11-14
Sorry about that, I undid the change I made, did a clean sdl build and now it builds like normal again.
found the issue, fixing.
Fixed in rev 41137, please try again.
missing includes?
btw, are there any advantages using clang instead of gcc?
faster compile, faster executables, smaller executables?
Just fixed the missing #includes.
clang and gcc seem to catch different issues, with clang usually being a little better at that. And clang has better tooling for static analysis and such, in my experience anyway.
As for better/smaller code or faster compiling, I haven't really tested that, but I don't think there's any major differences. I'm sure there are websites out there giving you all those details for the various versions of each compiler suite ;)
thanks.
i know there are such websites, but afaik advantages/disadvantages depend on WHAT you are compiling, that's why i asked here. :)
but as you say, most likely no major differences.
so yeah, enough of this offtopic.
I compiled successfully. Thank you!