[krbdev.mit.edu #8045] Re: [krb5] Unable to build under Windows (#235)

Bratislav Stojanovic via RT rt-comment at krbdev.mit.edu
Wed Nov 26 13:39:15 EST 2014


setenv /x86 doesn't help - still the same. I've even tried setenv /x64
(along
with setting other x64 changes) - again the same error emerge.

Here's the output of the "set" command (attached set_output.txt).

I've tried to manually run def-check.pl and here's the output :

c:\Users\User\Downloads\krb5\src>cd include

c:\Users\User\Downloads\krb5\src\include>perl -w .\../util/def-check.pl
private-
and-public-decls .\../lib/krb5_32.def
_error_table' at .\../util/def-check.pl line 175, <GEN0> line 7896.

If I chnage command to use absolute paths, still the same output.

I accidentally found --with-system-et param in the official install
documentation, not sure
if this is somehow related to this problem. Hmm, 'et' stands for
error_table, but I'm not sure how
to enable/disable this param.

On Wed, Nov 26, 2014 at 5:57 AM, Benjamin Kaduk <kaduk at mit.edu> wrote:

> On Tue, 25 Nov 2014, Bratislav Stojanovic wrote:
>
> > Thanks for answering, but I'm still completely clueless. This time I've
> > wiped out VS2013 and installed VS2010 (Ultimate) and tried
> > again - still the same.
>
> I was pretty clueless for a while, but staring at it for a bit, I have a
> little bit of a better handle on what the messages mean, at least.
>
> Note that the version of Wix is completely irrelevant here; WiX is not
> used until step 9 when the installer is built.
>
> The version of Visual Studio should also be irrelevant, as no actual
> compiling is going on yet.  The only thing that might be relevant is if
> some details of the environment in the shell are different.
>
> > private-and-public-
> > decls
> > krb5\krb5.h
> > k5-int.h
> > krb5\clpreauth_plugin.h
> >         1 file(s) copied.
> >         perl -w .\../util/def-check.pl private-and-public-decls
> > .\../lib/krb5_32.def
> > *_error_table'* at .\../util/def-check.pl line 175, <GEN0> line 8448.
>
> The particular error codes below are not very helpful; the above line is
> where we're going to get traction.
>
> This seems to be the truncation of the output of line 175 of def-check.pl:
>
> die "Invalid function name: '$_'" if (!/^[A-Za-z0-9_]+$/);
>
> The '<GEN0>' should correspond to the first file being processed, i.e.,
> krb5.h.  I am not in front of my test VM right now, but the krb5.h in my
> Unix build tree has near line 8448 this chunk:
>
>   8449  #if !defined(_WIN32)
>   8450  /* for compatibility with older versions... */
>   8451  extern void initialize_krb5_error_table (void) /*@modifies
> internalState@*/;
>   8452  #else
>   8453  #define initialize_krb5_error_table()
>   8454  #endif
>
> Note that the not-_WIN32 case lacks a KRB5_CALLCONV specifier on the
> declaration, which would cause the quoted perl error.
>
> So, I am guessing that _WIN32 is for some reason not defined at some
> point, and it should be.
>
> First, it would be good to manually run the perl script over krb5.h and
> see if the full output can be obtained.
>
> Second, it would be good to check what the environment looks like in your
> build shell (there's probably no need to paste the full output of 'set',
> but some parts may be relevant).  I will try to look further into where
> _WIN32 is defined in my (working) build.
>
>
> > *NMAKE : fatal error U1077: 'C:\Strawberry\perl\bin\perl.EXE' : return
> code
> > '0x19'*
> > Stop.
> > NMAKE : fatal error U1077: 'for' : return code '0x1'
> > Stop.
> >
> [...]
>
> > *vs cmd prompt* - tried to use VS command prompt instead of SDK 7.1 cmd -
> > again the same error
>
> With the SDK 7.1 cmd, I might try throwing another 'setenv.exe /x86'
> invocation in there "just to be sure" -- I thought that setenv was run as
> part of the startup for the SDK cmd, but could be wrong.
>
> -Ben
>



-- 
Bratislav Stojanovic, M.Sc.



More information about the krb5-bugs mailing list