hercules-390 / hyperion

Hercules 390
Other
248 stars 67 forks source link

Unable to build Hercules 4.0 using Visual Studio versions earlier than 2015 #172

Closed srorso closed 6 years ago

srorso commented 7 years ago

The SoftFloat 3a For Hercules public headers require the C99 header files stdbool.h and stdint.h, which are included in Visual Studio 2015. This causes Hercules 4.0 builds on earlier versions of Visual Studio to fail with the message that stdbool.h cannot be found.

The build for SoftFloat 3a For Hercules creates substitute stdbool.h and stdint.h files in the sf3h.release directory when the host system does not have C99 support.

As a work-around, pending issue resolution these two files may be copied to the sf3h\include directory. Hercules should build correctly after the two files are copied.

srorso commented 7 years ago

See also SoftFloat-3a issues #1 and #2.

srorso commented 7 years ago

Changes to SoftFloat-3a For Hercules to address this issue have been committed to that repository. To implement, re-clone/re-pull from that repository, rebuild SoftFloat-3a For Hercules, and then re-build Hercules V4. There should be no need to re-clone/re-pull Hercules V4.

srorso commented 7 years ago

Build of Hercules v4 on VS2008 failes with C2059 diagnostics reported against dyncrypt.c lines 73, 78, and 85 (sparse initialization of three kmctr arrays). CMake gets confused by VS2008 with the 7.1 SDK, but that is a separate SoftFloat-3a issue and requires further investigation.

srorso commented 6 years ago

Issue addressed in SoftFloat-3a commit d7d12298. That commit refactored header #includes and added type definitions if needed on pre-C99 systems without conflicting with those in Hercules-390 Hyperion.