Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More Win32 build fixes #43

Merged
merged 4 commits into from Jun 19, 2021
Merged

More Win32 build fixes #43

merged 4 commits into from Jun 19, 2021

Conversation

malxau
Copy link
Contributor

@malxau malxau commented Jun 19, 2021

These are less significant than the last round. Four things:

  1. /YX means "automatic precompiled header", where the first compiler instance compiles headers and stores them in a .pch file, and later compiler instances consume from that file. This scheme assumes serial compilation (only one compiler instance is active at a time), and has been removed from newer compilers which generate a warning instead. This change removes /YX and the /Fp directive that named the precompiled header.
  2. Remove more import libraries from WinElvis.exe. This is really something I missed somehow in my last round of changes, so it's finishing what I started from last time.
  3. Remove /machine:i386 from linking. The original IDEs inserted this into Makefiles so that you could have a different project with different settings for i386, MIPS, PowerPC and Alpha. The linker will default to a native architecture for the platform it supports, meaning that Visual Studio ships with a linker that generates i386 code, and a linker that generates x64 code. This change just removes the explicit indication and lets the toolchain target the architecture that it supports. Note that this is a linker flag, so the objects have already been compiled, and the linker expects objects in the same architecture that it's linking against, so this flag is insufficient to do anything like cross-compilation. After this change, it's possible to compile as 64 bit, which compiles successfully and runs but there's more scrubbing required to eliminate truncation conditions and ensure it's really correct.
  4. One of the makefiles used a variable before defining it, which is actually legal in NMAKE since it originally only performed delayed variable expansion. It doesn't seem compatible with much else though, and there doesn't seem to be a good reason to keep it.

@mbert mbert merged commit e5424c2 into mbert:master Jun 19, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants