Gssapi Questions

Marcus Watts mdw at umich.edu
Wed Aug 24 16:19:34 EDT 2011


> Date:    Wed, 24 Aug 2011 12:03:24 PDT
> To:      "'Marcus Watts'" <mdw at umich.edu>
> cc:      <kerberos at mit.edu>
> From:    "Allen McWongahey" <allenmcw at comcast.net>
> Subject: RE: Gssapi Questions
> 
> Hi Marcus,
> 
> Thanks very much. This definitely got me further and I removed all the
> changes I made to configure so it completed as it was designed to do.
> 
> Now I'm having a different problem though. The order I should do things are:
> "configure", "make", "make install" - is this correct?
> 
> When I run "make" I am getting the following error:
> 
> cc1: unrecognized option `-Wdeclaration-after-statement'
> cc1: unrecognized option `-Wvariadic-macros'
> 
> The configure script apparently thinks my compiler supports these options
> but it does not. I am using gcc version 3.2. From comments in the configure
> script I thought I could specify "error=foo" to eliminate this CLFAG in the
> Makefiles This does not work. I also tried "Werror=foo" but it does not work
> either.
> 
> If I am understanding your previous message correctly "make install" should
> add all the appropriate header files, correct? But since "make" precedes
> that will make even succeed since those same header files are still not
> there?
> 
> Thanks much
> Allen

Your mail doesn't say whether make for openssh or mit kerberos
is complaining.

1. basic sequence
2. ancient gcc bad news
3. openssh shouldn't complain
4. mit can use those - did configure guess wrong?

____ 1. basic sequence

Basic sequence should be:
	( supposing that f=<someplace-with-lots-of-tar-files> )

# mit kerberos
tar Oxf $f/krb5-1.9.1-signed.tar krb5-1.9.1.tar.gz  | tar xfz -
cd krb5-1.9.1
./configure ...
make
make install
cd ..

	kerberos will use internal logic to find its own headers.
	You should not need to do anything to make that work.
	*unless*, that is, your cross-compiler tool chain has problems...

# openssh
tar xf $f/openssh-5.8p2.tar.gz
cd openssh-5.8p2
./configure ...
make
make install
cd ..

	openssh should use the just-installed kerberos headers.

Your actual sequence will be complicated by whatever you're doing to
cross-compile, such as setting target prefix &etc.

____ 2. ancient gcc bad news

gcc 3.2 is really ancient.  Is there a reason you can't use something newer?
You are likely to run into small language problems if you use that,
There's also the possibility of some larger breakage, which might have
been long fixed.
[	I vaguely recall weirdness with #include <> vs "",
	cross-compiling, system headers, and wanting to use -I- -nostdinc
	But your compiler may work totally differently.
]

____ 3. openssh shouldn't complain

openssh has no logic to set the -Wdeclaration-after-statement -Wvariadic-macros.
If you're getting warnings there, you should look at your build process
and tool chain.

____ 4. mit can use those - did configure guess wrong?

MIT kerberos configure *can* add those options
	(r20685 | raeburn)
	src/aclocal.m4
It should be testing them first.
It's possible that your tool chain is fooling configure into
believing those options work.
You should look at "config.log" to see why the test thinks
your compiler supports them.
It also appears that you can override those tests with
krb5_cv_cc_flag__dash_Werror_dash_implicit_dash_function_dash_declaration
krb5_cv_cc_flag__dash_Werror_eq_declaration_dash_after_dash_statement
krb5_cv_cc_flag__dash_Werror_eq_variadic_dash_macros
krb5_cv_cc_flag__dash_Wmissing_dash_braces
krb5_cv_cc_flag__dash_Wmissing_dash_format_dash_attribute
krb5_cv_cc_flag__dash_Wmissing_dash_prototypes
krb5_cv_cc_flag__dash_Wnewline_dash_eof
krb5_cv_cc_flag__dash_Wno_dash_format_dash_zero_dash_length
krb5_cv_cc_flag__dash_Woverflow
krb5_cv_cc_flag__dash_Wparentheses
krb5_cv_cc_flag__dash_Wreturn_dash_type
krb5_cv_cc_flag__dash_Wsign_dash_compare
krb5_cv_cc_flag__dash_Wstrict_dash_overflow
krb5_cv_cc_flag__dash_Wswitch
krb5_cv_cc_flag__dash_Wunknown_dash_pragmas
krb5_cv_cc_flag__dash_Wunused_dash_function
krb5_cv_cc_flag__dash_Wunused_dash_label
krb5_cv_cc_flag__dash_Wunused_dash_value
krb5_cv_cc_flag__dash_Wunused_dash_variable

You can't fix unsupported flags by adding options to CFLAGS.
You have to find another way to remove them from the cc line
in the first place, such as using the above configuration variables.

While writing the above, you then sent,

> I figured out how to suppress those two CLFAGS.
> 
> Attempting to compile with make I now get:
> 
> prof_file.c: In function `profile_update_file_data_locked':
> prof_file.c:330: structure has no member named `st_mtim'
> make[3]: *** [prof_file.so] Error 1
> 
> There is not struct definition for "struct stat" which should be in
> "sys/stat.h". 
> 
> I can't seem to figure what I'm doing wrong as it seems very basic header
> files are missing.

____ 5. system headers

You need system headers.  These are NOT part of gcc.
They need to match your target platform.
I think you said something about ppc64.  aix, darwin, macosx, openbsd, aix?
Presumably you mean one of the commercial choices.  Your vendor should
have those -- possibly as a package your system administrator failed
to install.  You'll need to get those.  You'll also need a copy
of some system libraries and such.

=>

get "hello world" working.

Then get something small that uses stat (what we call a glp "grungy little program")
to print the right results.

Then go back to k5/ssh.

				-Marcus Watts



More information about the Kerberos mailing list