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

Support later Visual Studio releases better #1190

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

fanc999-1
Copy link

@fanc999-1 fanc999-1 commented Nov 1, 2023

Hi,

This attempts to make the Heimdal builds against later Visual Studio better, by:

  • Updating include\config.w32 to define that stdint.h and inttypes.h (and the related types) are available, when Visual Studio 2010 or later and Visual Studio 2013 or later are used, respectively, since these headers are shipped with these versions of Visual Studio.
  • Update windows\NTMakefile.config and lib\roken\NTMakefile to reflect on the availability of stdint.h and stdbool.h, which are available since Visual Studio 2010 and Visual Studio 2013, repsectively. As a consequence, the compatibility headers for these headers that comes in lib\roken is not copied in cases where Visual Studio ships with them). This will fix builds that use Heimdal that is horribly broken when when the system inttypes.h is included, as things in the compatibility stdint.h will clash with the system's inttypes.h badly.
  • Update the makeinfo.exe call in windows\NTMakefile.w32 to instead use whatever that that is passed in throught envvars or the NMake command line.

With blessings, thank you!

We have these headers and types on later Visual Studio versions, so make sure
these are defined in these cases.
Visual Studio 2010 and later ship with stdint.h, and 2013 and later ship with
stdbool.h, so don't copy compatibility versions of these headers as Heimdal
headers in these cases as they could break builds with other programs badly,
such as items that include the inttypes.h that ship with later Visual Studio
releases.
If we set in the MAKEINFO=... in the NMake commandline, such as callin
makeinfo using PERL, ensure that we honor this when calling NTMakefile.w32.
@abartlet
Copy link
Member

abartlet commented Nov 3, 2023

It seems there are bigger issues with the windows build sadly.

@sfhacker
Copy link

Hi.
Can you post either here or raise a new issue listing the error(s) you have encountered? I would like to reproduce them locally.
Thanks in advance.

@abartlet
Copy link
Member

logs_3289.zip

The logs are available to me when logged in, but likely not guests. So I attach the zip file.

@nicowilliams
Copy link
Contributor

image

@nicowilliams
Copy link
Contributor

The problem may be this in windows/NTMakefile.w32:

{}.hin{$(INCDIR)}.h:
        $(CP) $< $@

which I think builds include/stdint.h from lib/roken/stdint.h. Where MSVC has its own stdint.h we must then not build our own stdint.h.

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

4 participants