PDP 10 ITS Building issue
Posted by aIDserse@reddit | retrobattlestations | View on Reddit | 9 comments
Hi everyone. I'm trying to set up a retro battle station emulation machine on my old Mac mini (to save it from the trashbin since it's a Core 2 duo and I wouldn't make much use of it anyway hdhshahah) and since I've always been interested in the Dec PDP line (and the first years of the hacker culture) I was extremely happy to find a complete build for ITS on GitHub: https://github.com/PDP-10/its
But when I tried to compile it (on my linux system first) it gave me this error:
Kernel: 6.15.7-1-MANJARO gcc (GCC) 15.2.1 20250813 When trying to build with simh:
make EMULATOR=simh produces this: git submodule sync --recursive dirname tools/pdp6/.gitignore Sincronizzazione URL sottomodulo per 'tools/pdp6' in corso git submodule update --recursive --init dirname tools/pdp6/.gitignore git submodule sync --recursive dirname tools/ncp/.gitignore Sincronizzazione URL sottomodulo per 'tools/ncp' in corso Sincronizzazione URL sottomodulo per 'tools/ncp/test/simh' in corso git submodule update --recursive --init dirname tools/ncp/.gitignore make -C tools/itstar make[1]: ingresso nella directory «/home/aidserse/its/tools/itstar» Makefile:25: warning: ignoring prerequisites on suffix rule definition cc -O -c itstar.c itstar.c:65:6: error: conflicting types for ‘save’; have ‘void(void)’ 65 | void save(), weenixname(), nomem(); | ^~~~ In file included from itstar.c:48: itstar.h:2:6: note: previous declaration of ‘save’ with type ‘void(char )’ 2 | void save(char f); | ^~~~ itstar.c:65:14: error: conflicting types for ‘weenixname’; have ‘void(void)’ 65 | void save(), weenixname(), nomem(); | ^~~~~~~~~~ itstar.h:1:6: note: previous declaration of ‘weenixname’ with type ‘void(char )’ 1 | void weenixname(char p); | ^~~~~~~~~~ itstar.c: In function ‘main’: itstar.c:126:41: error: too many arguments to function ‘usage’; expected 0, have 1 126 | usage(0); | ^~~~~ ~ itstar.c:58:13: note: declared here 58 | static void usage(void); | ^~~~~ itstar.c:151:41: error: too many arguments to function ‘usage’; expected 0, have 1 151 | usage(1); | ^~~~~ ~ itstar.c:58:13: note: declared here 58 | static void usage(void); | ^~~~~ itstar.c:154:41: error: too many arguments to function ‘usage’; expected 0, have 1 154 | usage(1); | ^~~~~ ~ itstar.c:58:13: note: declared here 58 | static void usage(void); | ^~~~~ itstar.c:185:17: error: too many arguments to function ‘posneot’; expected 0, have 1 185 | posneot(1); / space to EOT / | ^~~~~~~ ~ itstar.h:15:6: note: declared here 15 | void posneot(); | ^~~~~~~ itstar.c:187:17: error: too many arguments to function ‘addfiles’; expected 0, have 2 187 | addfiles(argc,argv); / add files onto end / | ^~~~~~~~ ~~~~ itstar.c:62:13: note: declared here 62 | static void addfiles(), addfile(), listfiles(), listfile(), | ^~~~~~~~ itstar.c:194:17: error: too many arguments to function ‘addfiles’; expected 0, have 2 194 | addfiles(argc,argv); / add files onto end / | ^~~~~~~~ ~~~~ itstar.c:62:13: note: declared here 62 | static void addfiles(), addfile(), listfiles(), listfile(), | ^~~~~~~~ itstar.c:197:29: error: too many arguments to function ‘usage’; expected 0, have 1 197 | if(argc!=0) usage(1); / should we handle filenames? no. / | ^~~~~ ~ itstar.c:58:13: note: declared here 58 | static void usage(void); | ^~~~~ itstar.c:204:29: error: too many arguments to function ‘usage’; expected 0, have 1 204 | if(argc!=0) usage(1); / should we handle filenames? soon / | ^~~~~ ~ itstar.c:58:13: note: declared here 58 | static void usage(void); | ^~~~~ itstar.c:208:17: error: too many arguments to function ‘extfiles’; expected 0, have 2 208 | extfiles(argc,argv); / extract files / | ^~~~~~~~ ~~~~ itstar.c:63:9: note: declared here 63 | extfiles(), extfile(); | ^~~~~~~~ itstar.c: At top level: itstar.c:239:13: error: conflicting types for ‘addfiles’; have ‘void(int, char )’ 239 | static void addfiles(int argc,char argv) | ^~~~~~~~ itstar.c:62:13: note: previous declaration of ‘addfiles’ with type ‘void(void)’ 62 | static void addfiles(), addfile(), listfiles(), listfile(), | ^~~~~~~~ itstar.c: In function ‘addfiles’: itstar.c:245:17: error: too many arguments to function ‘addfile’; expected 0, have 3 245 | addfile(argc,argv,v++); | ^~~~~~~ ~~~~ itstar.c:62:25: note: declared here 62 | static void addfiles(), addfile(), listfiles(), listfile(), | ^~~~~~~ itstar.c: At top level: itstar.c:254:13: error: conflicting types for ‘addfile’; have ‘void(int, char , char )’ 254 | static void addfile(int argc,char argv,char *f) | ^~~~~~~ itstar.c:62:25: note: previous declaration of ‘addfile’ with type ‘void(void)’ 62 | static void addfiles(), addfile(), listfiles(), listfile(), | ^~~~~~~ itstar.c: In function ‘addfile’: itstar.c:318:9: error: too many arguments to function ‘save’; expected 0, have 1 318 | save(f); | ^~~~ ~ itstar.c:65:6: note: declared here 65 | void save(), weenixname(), nomem(); | ^~~~ itstar.c: At top level: itstar.c:372:13: error: conflicting types for ‘listfiles’; have ‘void(int, char )’ 372 | static void listfiles(int argc,char argv) | ^~~~~~~~~ itstar.c:62:36: note: previous declaration of ‘listfiles’ with type ‘void(void)’ 62 | static void addfiles(), addfile(), listfiles(), listfile(), | ^~~~~~~~~ itstar.c:400:13: error: conflicting types for ‘extfiles’; have ‘void(int, char )’ 400 | static void extfiles(int argc,char argv) | ^~~~~~~~ itstar.c:63:9: note: previous declaration of ‘extfiles’ with type ‘void(void)’ 63 | extfiles(), extfile(); | ^~~~~~~~ itstar.c: In function ‘extfile’: itstar.c:416:9: error: too many arguments to function ‘weenixname’; expected 0, have 1 416 | weenixname(ufd); / convert to WEENIX equivalent / | ^~~~~~~~~~ ~~~ itstar.c:65:14: note: declared here 65 | void save(), weenixname(), nomem(); | ^~~~~~~~~~ itstar.c:417:9: error: too many arguments to function ‘weenixname’; expected 0, have 1 417 | weenixname(fn1); | ^~~~~~~~~~ ~~~ itstar.c:65:14: note: declared here 65 | void save(), weenixname(), nomem(); | ^~~~~~~~~~ itstar.c:418:9: error: too many arguments to function ‘weenixname’; expected 0, have 1 418 | weenixname(fn2); | ^~~~~~~~~~ ~~~ itstar.c:65:14: note: declared here 65 | void save(), weenixname(), nomem(); | ^~~~~~~~~~ itstar.c:451:17: error: too many arguments to function ‘weenixname’; expected 0, have 1 451 | weenixname(lufd); / convert to WEENIX style / | ^~~~~~~~~~ ~~~~ itstar.c:65:14: note: declared here 65 | void save(), weenixname(), nomem(); | ^~~~~~~~~~ itstar.c:452:17: error: too many arguments to function ‘weenixname’; expected 0, have 1 452 | weenixname(lfn1); | ^~~~~~~~~~ ~~~~ itstar.c:65:14: note: declared here 65 | void save(), weenixname(), nomem(); | ^~~~~~~~~~ itstar.c:453:17: error: too many arguments to function ‘weenixname’; expected 0, have 1 453 | weenixname(lfn2); | ^~~~~~~~~~ ~~~~ itstar.c:65:14: note: declared here 65 | void save(), weenixname(), nomem(); | ^~~~~~~~~~ itstar.c: At top level: itstar.c:601:13: error: conflicting types for ‘usage’; have ‘void(int)’ 601 | static void usage(int rc) | ^~~~~ itstar.c:58:13: note: previous declaration of ‘usage’ with type ‘void(void)’ 58 | static void usage(void); | ^~~~~ itstar.c:58:13: warning: ‘usage’ used but never defined itstar.c:62:13: warning: ‘addfiles’ used but never defined 62 | static void addfiles(), addfile(), listfiles(), listfile(), | ^~~~~~~~ itstar.c:62:25: warning: ‘addfile’ used but never defined 62 | static void addfiles(), addfile(), listfiles(), listfile(), | ^~~~~~~ itstar.c:62:36: warning: ‘listfiles’ used but never defined 62 | static void addfiles(), addfile(), listfiles(), listfile(), | ^~~~~~~~~ itstar.c:63:9: warning: ‘extfiles’ used but never defined 63 | extfiles(), extfile(); | ^~~~~~~~ make[1]: *** [Makefile:25: itstar.o] Error 1 make[1]: uscita dalla directory «/home/aidserse/its/tools/itstar» make: *** [Makefile:415: tools/itstar/itstar] Error 2
Same exact error when I tried to compile it on a server of mine, with these specs: Kernel: 6.8.0-71-generic gcc: Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
I really have no idea what it could be. I hope I'm not asking a stupid question, but I haven't found any solutions anywhere. I obviously have all the other dependencies in place.
Useful_Resolution888@reddit
Have you tried building everything manually as per this page?
https://gunkies.org/wiki/Installing_ITS_on_SIMH
aIDserse@reddit (OP)
Yes, but sadly that is a lot more minimal system and the disk images are quite empty, the cool thing with the ITS GitHub repo was that they already gave you a super complete disk image
Useful_Resolution888@reddit
Have you looked through the build scripts to see how exactly it's building everything?
Anyway, you've got me intrigued. I'm building it at the moment on a very slow headless Debian box using simh, I'll let you know how it goes.
aIDserse@reddit (OP)
Well, if you don't mind could you send me the built version on a zip? A couple years ago I was able to build it (in Ubuntu) and if I remember correctly the build isn't os-dependant. I tried to look on the makefile but being honest I don't know C enough to understand precisely what it's doing
Useful_Resolution888@reddit
I've uploaded the entire archive to https://archive.org/download/its.tar
Hopefully it works for you 👍
aIDserse@reddit (OP)
Well, your username says it all, it was an useful resolution!! Hahahah. This version runs apparently perfectly on my Manjaro system, but since as I remembered it wasn't system-dependant it will run on my headless Mac mini with FreeBSD with 0 problems. Strangely tho, I tried to compile it on another debian server and when I tried with simh it gave me timeout error, but with KL10 it compiled fine... Who knows, I will retry just to see on freebsd when my Mac will be ready (aka when I'll have time to set it up hahahah) and I'll let you know! Thanks in the midtime.
Useful_Resolution888@reddit
No probs. If you've got any resources for how to actually explore its i'd be grateful - :listf doesn't show any files for me.
aIDserse@reddit (OP)
:ZORK ZORK0$J This Zork created October 20, 2025. West of House This is an open field west of a white house, with a boarded front door. There is a small mailbox here. A rubber mat saying 'Welcome to Zork!' lies by the door.
Even tho the frustration is still lingering😂😂
Useful_Resolution888@reddit
yup, I'll look into it this evening after work. I can boot into its, login and play wumpus etc but I'm not convinced that everything has built correctly because I can't :listf in dsk and :inquir fails. It might well be that I'm not navigating my way round it correctly though, its is weird!