Hi Marcus,
Sorry, I should have specified more how I fixed the compile flags which caused gcc to fail. I did indeed go through the Config.cache and figured out the right variables to set and "configure" no longer set those flags in the first place. E.g., I had done exactly what you responded with. The problem about the error with <sys/stat.h> is a complete mystery though. This occurs when compiling Kerberos (NOT OpenSSH) and note the error below which is in a Kerberos source file: 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 Now as I understand it "--oldincludedir" should specify the location of the system header files, correct? I set this variable to "/usr/include" and there IS a "sys/stat.h" header file off of /usr/include. This should be the header file that "prof_file.c" is including. Please note that the above error says that there is no member named "st_mtim" so it obviously found the stat.h header file. So I wrote a stand-alone program to include the same header file and that member (st_mtim) IS present and my stand-alone program compiles with this and works properly. I accessed the struct member in exactly the same way as line 330 of "prof_file.c". So I am really baffled how my stand-alone program compiles and yet prof_file.c does not. I may well still be missing some argument to "configure" which could be causing this but I am at a loss to understand how something this simple could fail. L Thanks much Allen -----Original Message----- From: Marcus Watts [mailto:[email protected]] Sent: Wednesday, August 24, 2011 1:20 PM To: [email protected] Cc: [email protected] Subject: Re: Gssapi Questions > Date: Wed, 24 Aug 2011 12:03:24 PDT > To: "'Marcus Watts'" < <mailto:[email protected]> [email protected]> > cc: < <mailto:[email protected]> [email protected]> > From: "Allen McWongahey" <[email protected]> > 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 ________________________________________________ Kerberos mailing list [email protected] https://mailman.mit.edu/mailman/listinfo/kerberos
