cebix / macemu

Basilisk II and SheepShaver Macintosh emulators
1.4k stars 291 forks source link

Makes fails on Linux "error: #error "No 2 byte type, you lose." #168

Open AnnoyingTechnology opened 6 years ago

AnnoyingTechnology commented 6 years ago

Same issue as one that was posted on sourceforge 5 years ago (https://sourceforge.net/p/basilisk/discussion/6131/thread/209a0e13/?limit=25)

Greetings, I am having trouble compiling from git sources tonight. The machine is Mint Linux 13 Maya 64 bit.

from ../src/Unix/ ./autogen.sh seems to work fine, generating configure. make has many errors from many header files and from main.cpp.

I have this problem regardless of whether I pull the sources from the home Basilisk page (ZIP) or whether I pull the sources from git. There are so many errors that I think there must be something simple I'm missing here. I have MAKE, GCC, G++ GDB development headers, include files (other sources compile) ….

Anyone have an idea what I'm missing here..?

This is the command from the makefile:

g++ -I./../include -I./. -I. -I./../uae_cpu -I./../slirp -DHAVE_CONFIG_H  -DOS_linux -DUNALIGNED_PROFITABLE -DX86_64_ASSEMBLY -DOPTIMIZED_FLAGS -DFPU_IEEE -D_REENTRANT -DDATADIR=\"/usr/local/share/BasiliskII\" -O2 -fno-merge-constants -fno-gcse-sm  -c ./../main.cpp -o obj/main.o

These are the errors that I get:


In file included from ./../main.cpp:21:0:
././sysdeps.h:140:2: error: #error "No 2 byte type, you lose."
././sysdeps.h:149:2: error: #error "No 4 byte type, you lose."
././sysdeps.h:168:2: error: #error "No 8 byte type, you lose."
././sysdeps.h:177:2: error: #error "Unsupported size of pointer"
In file included from ./../main.cpp:21:0:
././sysdeps.h:213:9: error: ‘uint32’ does not name a type
././sysdeps.h:221:8: error: ‘uint64’ does not name a type
././sysdeps.h:222:24: error: variable or field ‘Delay_usec’ declared void
././sysdeps.h:222:24: error: ‘uint32’ was not declared in this scope
In file included from ./../main.cpp:21:0:
././sysdeps.h:428:15: error: ‘uint32’ does not name a type
././sysdeps.h:430:15: error: ‘uint32’ does not name a type
././sysdeps.h:436:36: error: variable or field ‘do_put_mem_long’ declared void
././sysdeps.h:436:36: error: ‘uint32’ was not declared in this scope
././sysdeps.h:436:45: error: ‘a’ was not declared in this scope
././sysdeps.h:436:48: error: ‘uint32’ was not declared in this scope
././sysdeps.h:438:36: error: variable or field ‘do_put_mem_word’ declared void
././sysdeps.h:438:36: error: ‘uint16’ was not declared in this scope
././sysdeps.h:438:45: error: ‘a’ was not declared in this scope
././sysdeps.h:438:48: error: ‘uint32’ was not declared in this scope
././sysdeps.h:444:15: error: ‘uint32’ does not name a type
././sysdeps.h:447:15: error: ‘uint32’ does not name a type
In file included from ./../main.cpp:23:0:
./../uae_cpu/cpu_emulation.h:32:8: error: ‘uint32’ does not name a type
./../uae_cpu/cpu_emulation.h:34:8: error: ‘uint32’ does not name a type
./../uae_cpu/cpu_emulation.h:36:8: error: ‘uint32’ does not name a type
./../uae_cpu/cpu_emulation.h:38:8: error: ‘uint32’ does not name a type
./../uae_cpu/cpu_emulation.h:44:7: error: ‘uint32’ does not name a type
./../uae_cpu/cpu_emulation.h:46:8: error: ‘uint32’ does not name a type
In file included from ./../uae_cpu/cpu_emulation.h:60:0,
                 from ./../main.cpp:23:
./../uae_cpu/memory.h:37:17: error: ISO C++ forbids declaration of ‘uint32’ with no type 
./../uae_cpu/memory.h:37:17: error: typedef ‘uint32’ is initialized (use decltype instead)
./../uae_cpu/memory.h:37:29: error: ‘mem_get_func’ was not declared in this scope
./../uae_cpu/memory.h:38:40: error: typedef ‘mem_put_func’ is initialized (use decltype instead)
./../uae_cpu/memory.h:38:40: error: ‘uaecptr’ was not declared in this scope
./../uae_cpu/memory.h:38:49: error: ‘uint32’ was not declared in this scope
./../uae_cpu/memory.h:39:48: error: typedef ‘xlate_func’ is initialized (use decltype instead)
./../uae_cpu/memory.h:39:41: error: ‘uaecptr’ was not declared in this scope
./../uae_cpu/memory.h:53:5: error: ‘mem_get_func’ does not name a type
./../uae_cpu/memory.h:54:5: error: ‘mem_put_func’ does not name a type
./../uae_cpu/memory.h:59:5: error: ‘xlate_func’ does not name a type
./../uae_cpu/memory.h:70:40: warning: ‘default_xlate’ initialized and declared ‘extern’ 
./../uae_cpu/memory.h:70:40: error: ‘uaecptr’ was not declared in this scope
./../uae_cpu/memory.h:174:19: error: ‘uint32’ does not name a type
./../uae_cpu/memory.h:178:19: error: ‘uint32’ does not name a type
./../uae_cpu/memory.h:182:19: error: ‘uint32’ does not name a type
./../uae_cpu/memory.h:186:33: error: variable or field ‘put_long’ declared void
./../uae_cpu/memory.h:186:33: error: ‘uaecptr’ was not declared in this scope
./../uae_cpu/memory.h:186:47: error: ‘uint32’ was not declared in this scope
./../uae_cpu/memory.h:190:33: error: variable or field ‘put_word’ declared void
./../uae_cpu/memory.h:190:33: error: ‘uaecptr’ was not declared in this scope
./../uae_cpu/memory.h:190:47: error: ‘uint32’ was not declared in this scope
./../uae_cpu/memory.h:194:33: error: variable or field ‘put_byte’ declared void
./../uae_cpu/memory.h:194:33: error: ‘uaecptr’ was not declared in this scope
./../uae_cpu/memory.h:194:47: error: ‘uint32’ was not declared in this scope
./../uae_cpu/memory.h:198:44: error: ‘get_real_address’ declared as an ‘inline’ variable
./../uae_cpu/memory.h:198:44: error: ‘uaecptr’ was not declared in this scope
./../uae_cpu/memory.h:199:1: error: expected ‘,’ or ‘;’ before ‘{’ token
./../uae_cpu/memory.h:203:8: error: ‘uint32’ does not name a type
In file included from ./../main.cpp:23:0:
./../uae_cpu/cpu_emulation.h:61:15: error: ‘uint32’ does not name a type
./../uae_cpu/cpu_emulation.h:62:15: error: ‘uint32’ does not name a type
./../uae_cpu/cpu_emulation.h:63:15: error: ‘uint32’ does not name a type
./../uae_cpu/cpu_emulation.h:64:34: error: variable or field ‘WriteMacInt32’ declared void
./../uae_cpu/cpu_emulation.h:64:34: error: ‘uint32’ was not declared in this scope
./../uae_cpu/cpu_emulation.h:64:47: error: ‘uint32’ was not declared in this scope
./../uae_cpu/cpu_emulation.h:65:34: error: variable or field ‘WriteMacInt16’ declared void
./../uae_cpu/cpu_emulation.h:65:34: error: ‘uint32’ was not declared in this scope
./../uae_cpu/cpu_emulation.h:65:47: error: ‘uint32’ was not declared in this scope
./../uae_cpu/cpu_emulation.h:66:33: error: variable or field ‘WriteMacInt8’ declared void
./../uae_cpu/cpu_emulation.h:66:33: error: ‘uint32’ was not declared in this scope
./../uae_cpu/cpu_emulation.h:66:46: error: ‘uint32’ was not declared in this scope
./../uae_cpu/cpu_emulation.h:67:35: error: ‘Mac2HostAddr’ declared as an ‘inline’ variable
./../uae_cpu/cpu_emulation.h:67:35: error: ‘uint32’ was not declared in this scope
./../uae_cpu/cpu_emulation.h:67:48: error: expected ‘,’ or ‘;’ before ‘{’ token
./../uae_cpu/cpu_emulation.h:68:15: error: ‘uint32’ does not name a type
./../uae_cpu/cpu_emulation.h:70:32: error: ‘Mac_memset’ declared as an ‘inline’ variable
./../uae_cpu/cpu_emulation.h:70:32: error: ‘uint32’ was not declared in this scope
./../uae_cpu/cpu_emulation.h:70:45: error: expected primary-expression before ‘int’
./../uae_cpu/cpu_emulation.h:70:59: error: expected primary-expression before ‘n’
./../uae_cpu/cpu_emulation.h:70:60: error: expression list treated as compound expression in initializer 
./../uae_cpu/cpu_emulation.h:70:62: error: expected ‘,’ or ‘;’ before ‘{’ token
./../uae_cpu/cpu_emulation.h:71:49: error: ‘uint32’ has not been declared
./../uae_cpu/cpu_emulation.h: In function ‘void* Mac2Host_memcpy(void*, int, size_t)’:
./../uae_cpu/cpu_emulation.h:71:108: error: ‘Mac2HostAddr’ cannot be used as a function
./../uae_cpu/cpu_emulation.h: At global scope:
./../uae_cpu/cpu_emulation.h:72:37: error: ‘Host2Mac_memcpy’ declared as an ‘inline’ variable
./../uae_cpu/cpu_emulation.h:72:37: error: ‘uint32’ was not declared in this scope
./../uae_cpu/cpu_emulation.h:72:50: error: expected primary-expression before ‘const’
./../uae_cpu/cpu_emulation.h:72:74: error: expected primary-expression before ‘n’
./../uae_cpu/cpu_emulation.h:72:75: error: expression list treated as compound expression in initializer 
./../uae_cpu/cpu_emulation.h:72:77: error: expected ‘,’ or ‘;’ before ‘{’ token
./../uae_cpu/cpu_emulation.h:73:36: error: ‘Mac2Mac_memcpy’ declared as an ‘inline’ variable
./../uae_cpu/cpu_emulation.h:73:36: error: ‘uint32’ was not declared in this scope
./../uae_cpu/cpu_emulation.h:73:49: error: ‘uint32’ was not declared in this scope
./../uae_cpu/cpu_emulation.h:73:68: error: expected primary-expression before ‘n’
./../uae_cpu/cpu_emulation.h:73:69: error: expression list treated as compound expression in initializer 
./../uae_cpu/cpu_emulation.h:73:71: error: expected ‘,’ or ‘;’ before ‘{’ token
In file included from ./../main.cpp:23:0:
./../uae_cpu/cpu_emulation.h:95:28: error: variable or field ‘Execute68k’ declared void
./../uae_cpu/cpu_emulation.h:95:28: error: ‘uint32’ was not declared in this scope
./../uae_cpu/cpu_emulation.h:95:55: error: expected primary-expression before ‘*’ token
./../uae_cpu/cpu_emulation.h:95:56: error: ‘r’ was not declared in this scope
./../uae_cpu/cpu_emulation.h:96:32: error: variable or field ‘Execute68kTrap’ declared void
./../uae_cpu/cpu_emulation.h:96:32: error: ‘uint16’ was not declared in this scope
./../uae_cpu/cpu_emulation.h:96:59: error: expected primary-expression before ‘*’ token
./../uae_cpu/cpu_emulation.h:96:60: error: ‘r’ was not declared in this scope
In file included from ./../main.cpp:25:0:
./../include/timer.h:30:8: error: ‘int16’ does not name a type
./../include/timer.h:31:8: error: ‘int16’ does not name a type
./../include/timer.h:32:8: error: ‘int16’ does not name a type
./../include/timer.h:33:26: error: variable or field ‘Microseconds’ declared void
./../include/timer.h:33:26: error: ‘uint32’ was not declared in this scope
./../include/timer.h:33:34: error: ‘hi’ was not declared in this scope
./../include/timer.h:33:38: error: ‘uint32’ was not declared in this scope
./../include/timer.h:33:46: error: ‘lo’ was not declared in this scope
./../include/timer.h:35:8: error: ‘uint32’ does not name a type
./../include/timer.h:42:49: error: ‘int32’ has not been declared
./../include/timer.h:43:8: error: ‘int32’ does not name a type
In file included from ./../main.cpp:26:0:
./../include/sony.h:25:7: error: ‘uint16’ does not name a type
./../include/sony.h:30:8: error: ‘uint32’ does not name a type
./../include/sony.h:31:8: error: ‘uint32’ does not name a type
./../include/sony.h:40:8: error: ‘int16’ does not name a type
./../include/sony.h:41:8: error: ‘int16’ does not name a type
./../include/sony.h:42:8: error: ‘int16’ does not name a type
./../include/sony.h:43:8: error: ‘int16’ does not name a type
In file included from ./../main.cpp:27:0:
./../include/disk.h:25:7: error: ‘uint16’ does not name a type
./../include/disk.h:29:8: error: ‘uint32’ does not name a type
./../include/disk.h:38:8: error: ‘int16’ does not name a type
./../include/disk.h:39:8: error: ‘int16’ does not name a type
./../include/disk.h:40:8: error: ‘int16’ does not name a type
./../include/disk.h:41:8: error: ‘int16’ does not name a type
In file included from ./../main.cpp:28:0:
./../include/cdrom.h:25:7: error: ‘uint16’ does not name a type
./../include/cdrom.h:29:8: error: ‘uint32’ does not name a type
./../include/cdrom.h:38:8: error: ‘int16’ does not name a type
./../include/cdrom.h:39:8: error: ‘int16’ does not name a type
./../include/cdrom.h:40:8: error: ‘int16’ does not name a type
./../include/cdrom.h:41:8: error: ‘int16’ does not name a type
In file included from ./../main.cpp:29:0:
./../include/scsi.h:24:8: error: ‘int16’ does not name a type
./../include/scsi.h:25:8: error: ‘int16’ does not name a type
./../include/scsi.h:26:8: error: ‘int16’ does not name a type
./../include/scsi.h:27:8: error: ‘int16’ does not name a type
./../include/scsi.h:28:8: error: ‘int16’ does not name a type
./../include/scsi.h:29:8: error: ‘int16’ does not name a type
./../include/scsi.h:30:8: error: ‘int16’ does not name a type
./../include/scsi.h:31:8: error: ‘uint16’ does not name a type
./../include/scsi.h:32:8: error: ‘int16’ does not name a type
./../include/scsi.h:41:91: error: ‘uint32’ has not been declared
./../include/scsi.h:41:107: error: ‘uint16’ has not been declared
./../include/scsi.h:41:121: error: ‘uint32’ has not been declared
In file included from ./../main.cpp:30:0:
./../include/extfs.h:29:8: error: ‘int16’ does not name a type
./../include/extfs.h:30:8: error: ‘int16’ does not name a type
./../include/extfs.h:36:41: error: ‘uint32’ has not been declared
./../include/extfs.h:36:55: error: ‘uint32’ has not been declared
./../include/extfs.h:37:41: error: ‘uint32’ has not been declared
./../include/extfs.h:37:55: error: ‘uint32’ has not been declared
./../include/extfs.h:38:8: error: ‘uint32’ does not name a type
In file included from ./../main.cpp:31:0:
./../include/audio.h:30:8: error: ‘int32’ does not name a type
./../include/audio.h:34:8: error: ‘int16’ does not name a type
./../include/audio.h:35:8: error: ‘int16’ does not name a type
./../include/audio.h:36:8: error: ‘int16’ does not name a type
./../include/audio.h:37:8: error: ‘int16’ does not name a type
./../include/audio.h:38:8: error: ‘int16’ does not name a type
./../include/audio.h:55:8: error: ‘uint32’ does not name a type
./../include/audio.h:57:8: error: ‘uint32’ does not name a type
./../include/audio.h:59:35: error: variable or field ‘audio_set_main_volume’ declared void
./../include/audio.h:59:35: error: ‘uint32’ was not declared in this scope
./../include/audio.h:61:38: error: variable or field ‘audio_set_speaker_volume’ declared void
./../include/audio.h:61:38: error: ‘uint32’ was not declared in this scope
./../include/audio.h:65:2: error: ‘uint32’ does not name a type
./../include/audio.h:66:2: error: ‘uint32’ does not name a type
./../include/audio.h:67:2: error: ‘uint32’ does not name a type
./../include/audio.h:68:2: error: ‘uint32’ does not name a type
./../include/audio.h:75:8: error: ‘uint32’ does not name a type
./../include/audio.h:77:15: error: ‘uint32’ was not declared in this scope
./../include/audio.h:77:21: error: template argument 1 is invalid
./../include/audio.h:77:21: error: template argument 2 is invalid
./../include/audio.h:77:41: error: invalid type in declaration before ‘;’ token
./../include/audio.h:78:15: error: ‘uint16’ was not declared in this scope
./../include/audio.h:78:21: error: template argument 1 is invalid
./../include/audio.h:78:21: error: template argument 2 is invalid
./../include/audio.h:78:41: error: invalid type in declaration before ‘;’ token
./../include/audio.h:79:15: error: ‘uint16’ was not declared in this scope
./../include/audio.h:79:21: error: template argument 1 is invalid
./../include/audio.h:79:21: error: template argument 2 is invalid
./../include/audio.h:79:43: error: invalid type in declaration before ‘;’ token
./../include/audio.h:97:8: error: ‘uint32’ does not name a type
In file included from ./../main.cpp:32:0:
./../include/video.h:80:8: error: ‘uint32’ does not name a type
./../include/video.h:124:2: error: ‘uint32’ does not name a type
./../include/video.h:125:2: error: ‘uint32’ does not name a type
./../include/video.h:126:2: error: ‘uint32’ does not name a type
./../include/video.h:128:2: error: ‘uint32’ does not name a type
./../include/video.h:129:2: error: ‘uint32’ does not name a type
./../include/video.h:146:85: error: ‘uint32’ has not been declared
./../include/video.h:153:2: error: ‘uint32’ does not name a type
./../include/video.h:156:26: error: ‘uint32’ has not been declared
./../include/video.h:162:2: error: ‘uint16’ does not name a type
./../include/video.h:165:2: error: ‘uint16’ does not name a type
./../include/video.h:169:2: error: ‘uint32’ does not name a type
./../include/video.h:175:2: error: ‘int16’ does not name a type
./../include/video.h:176:2: error: ‘int16’ does not name a type
./../include/video.h:177:2: error: ‘int16’ does not name a type
./../include/video.h:183:2: error: ‘uint32’ does not name a type
./../include/video.h:188:22: error: ‘uint32’ has not been declared
./../include/video.h:194:47: error: ‘uint16’ has not been declared
./../include/video.h:194:66: error: ‘uint32’ has not been declared
./../include/video.h:197:38: error: ‘uint32’ has not been declared
./../include/video.h:200:30: error: ‘uint32’ has not been declared
./../include/video.h:200:41: error: ‘uint32’ has not been declared
./../include/video.h:200:52: error: ‘uint32’ has not been declared
./../include/video.h:212:23: error: ‘uint32’ has not been declared
./../include/video.h:215:58: error: ‘uint32’ has not been declared
./../include/video.h:215:72: error: ‘uint32’ has not been declared
./../include/video.h:226:2: error: ‘uint32’ does not name a type
./../include/video.h:229:2: error: ‘uint16’ does not name a type
./../include/video.h:230:2: error: ‘uint32’ does not name a type
./../include/video.h:231:2: error: ‘uint16’ does not name a type
./../include/video.h:232:2: error: ‘uint32’ does not name a type
./../include/video.h:234:2: error: ‘uint32’ does not name a type
./../include/video.h:240:2: error: ‘uint16’ does not name a type
./../include/video.h: In member function ‘void monitor_desc::set_mac_frame_base(int)’:
./../include/video.h:156:40: error: ‘mac_frame_base’ was not declared in this scope
./../include/video.h: At global scope:
./../include/video.h:258:8: error: ‘int16’ does not name a type
./../include/video.h:259:8: error: ‘int16’ does not name a type
./../include/video.h:260:8: error: ‘int16’ does not name a type
In file included from ./../main.cpp:33:0:
./../include/serial.h:41:8: error: ‘int16’ does not name a type
./../include/serial.h:42:8: error: ‘int16’ does not name a type
./../include/serial.h:43:8: error: ‘int16’ does not name a type
./../include/serial.h:44:8: error: ‘int16’ does not name a type
./../include/serial.h:45:8: error: ‘int16’ does not name a type
./../include/serial.h:74:10: error: ‘int16’ does not name a type
./../include/serial.h:75:10: error: ‘int16’ does not name a type
./../include/serial.h:76:10: error: ‘int16’ does not name a type
./../include/serial.h:77:10: error: ‘int16’ does not name a type
./../include/serial.h:78:10: error: ‘int16’ does not name a type
./../include/serial.h:79:10: error: ‘int16’ does not name a type
./../include/serial.h:86:2: error: ‘uint32’ does not name a type
./../include/serial.h:90:2: error: ‘uint32’ does not name a type
./../include/serial.h: In constructor ‘SERDPort::SERDPort()’:
./../include/serial.h:69:3: error: ‘input_dt’ was not declared in this scope
./../include/serial.h:69:14: error: ‘output_dt’ was not declared in this scope
In file included from ./../main.cpp:34:0:
./../include/ether.h: At global scope:
./../include/ether.h:29:8: error: ‘int16’ does not name a type
./../include/ether.h:30:8: error: ‘int16’ does not name a type
./../include/ether.h:31:29: error: variable or field ‘EtherReadPacket’ declared void
./../include/ether.h:31:29: error: ‘uint32’ was not declared in this scope
./../include/ether.h:31:37: error: ‘src’ was not declared in this scope
./../include/ether.h:31:42: error: ‘uint32’ was not declared in this scope
./../include/ether.h:31:50: error: ‘dest’ was not declared in this scope
./../include/ether.h:31:56: error: ‘uint32’ was not declared in this scope
./../include/ether.h:31:64: error: ‘len’ was not declared in this scope
./../include/ether.h:31:69: error: ‘uint32’ was not declared in this scope
./../include/ether.h:31:77: error: ‘remaining’ was not declared in this scope
./../include/ether.h:40:8: error: ‘int16’ does not name a type
./../include/ether.h:41:8: error: ‘int16’ does not name a type
./../include/ether.h:42:8: error: ‘int16’ does not name a type
./../include/ether.h:43:8: error: ‘int16’ does not name a type
./../include/ether.h:44:8: error: ‘int16’ does not name a type
./../include/ether.h:47:28: error: variable or field ‘ether_udp_read’ declared void
./../include/ether.h:47:28: error: ‘uint32’ was not declared in this scope
./../include/ether.h:47:43: error: expected primary-expression before ‘int’
./../include/ether.h:47:55: error: expected primary-expression before ‘struct’
./../include/ether.h:62:8: error: ‘uint32’ does not name a type
./../include/ether.h:71:2: error: ‘uint32’ does not name a type
./../include/ether.h:75:2: error: ‘uint32’ does not name a type
./../include/ether.h:81:39: error: ‘ether_wds_to_buffer’ declared as an ‘inline’ variable
./../include/ether.h:81:39: error: ‘uint32’ was not declared in this scope
./../include/ether.h:81:57: error: expected primary-expression before ‘*’ token
./../include/ether.h:81:58: error: ‘p’ was not declared in this scope
./../include/ether.h:81:59: error: expression list treated as compound expression in initializer 
./../include/ether.h:82:1: error: expected ‘,’ or ‘;’ before ‘{’ token
make: ***  Error 1```
scruss commented 6 years ago

Build instructions for x86_64 — https://github.com/cebix/macemu/wiki/Basilisk-II-Compilation-Guide#64bit-fedora-linux-on-intel — indicate you have to specify --disable-jit-compiler on 64-bit machines

kencu commented 6 years ago

looks like you're missing a basic int defining header. See https://stackoverflow.com/questions/11069108/uint32-t-does-not-name-a-type for an idea which one it might be.