[Thank You] Re: A question for the expert

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sunday 28 December 2003 02:56 pm, Robert Brown wrote:
> lappin writes:
>  > On Sunday 28 December 2003 01:54 pm, Robert Brown wrote:
>  > > lappin writes:
>  > >  > On Sunday 28 December 2003 01:22 pm, Robert Brown wrote:
>  > >  > > lappin writes:
>  > >  > >  > >>>>>>>>>>> error <<<<<<<<<<<<<<<<<<<<<
>  > >  > >  >
>  > >  > >  > make[2]: Entering directory
>  > >  > >  > `/usr/local/resin/resin-2.1.11/src/c/plugin/resin' gcc -g -O2
>  > >  > >  > -DRESIN_HOME=\"/usr/resin\" -I -I/usr/kerberos/include
>  > >  > >  > -I/usr/java/include -I/usr/java/include/linux -I../common
>  > >  > >  > -DCPU=\"i386\" -DOS=    -c -o ssl.o ssl.c
>  > >  > >  > In file included from /usr/include/openssl/ssl.h:179,
>  > >  > >  >                  from ssl.c:62:
>  > >  > >  > /usr/include/openssl/kssl.h:72:18: krb5.h: No such file or
>  > >  > >  > directory In file included from
>  > >  > >  > /usr/include/openssl/ssl.h:179,
>  > >  > >  >
>  > >  > >  >                  from ssl.c:62:
>  > >  > >  > >>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<
>  > >  > >
>  > >  > > Are you sure you are looking for the right file?  The file that
>  > >  > > it can't find is:
>  > >  > >
>  > >  > >    krb5.h
>  > >  > >
>  > >  > > and it could be in any directory in the include path.  This means
>  > >  > > that you are looking for one of the following:
>  > >  > >
>  > >  > >     /usr/kerberos/include/krb5.h
>  > >  > >     /usr/java/include/krb5.h
>  > >  > >     /usr/java/include/linux/krb5.h
>  > >  > >     /usr/local/resin/resin-2.1.11/src/c/plugin/common/krb5.h
>  > >  > >
>  > >  > > Did you actually find one of these files, and the perms are such
>  > >  > > that the compiler could read it?
>  > >  > >
>  > >  > > This does not look like and apache problem, but a compilation
>  > >  > > problem.  If you have found one of the files I listed above, and
>  > >  > > the compiler cannot find it, then something is bonkers!
>  > >  > >
>  > >  > > --
>  > >  > > --------  "And there came a writing to him from Elijah"  [2Ch
>  > >  > > 21:12] -------- R. J. Brown III  rj@xxxxxxxxxxx
>  > >  > > http://www.elilabs.com/~rj voice 859 567-7311 Elijah Laboratories
>  > >  > > Inc.    P. O. Box 166, Warsaw KY 41095 fax 859 567-7311 -----  M
>  > >  > > o d e l i n g   t h e   M e t h o d s   o f   t h e   M i n d 
>  > >  > > ------
>  > >  >
>  > >  > Hi,
>  > >  > Thanks you're the first person to respond.  I found the file in one
>  > >  > directory.
>  > >  >
>  > >  > $  ls -ltr /usr/kerberos/include/krb5.h
>  > >  > $ -rw-r--r--    1 root     root       112782 Mar 31  2003
>  > >  > /usr/kerberos/include/krb5.h
>  > >  >
>  > >  > Do you think may be the problem is that the file needs to be in all
>  > >  > of the directories you listed?  I can copy the file in all of the
>  > >  > other directories and try again.  Would you advise that?
>  > >
>  > > No, don't do that.  We need to figure out why the compiler can't see
>  > > the file.  It is in an allowable path, and it is world readable, so it
>  > > should see it.  This is very strange.
>  > >
>  > > You might try the following for a test:
>  > >
>  > >    $ cd /usr/local/resin/resin-2.1.11/src/c/plugin/resin
>  > >    $ gcc -E -C -DRESIN_HOME=\"/usr/resin\" -I -I/usr/kerberos/include
>  > > -I/usr/java/include -I/usr/java/include/linux -I../common
>  > > -DCPU=\"i386\" -DOS=    -c -o ssl.o ssl.c > ssl.E
>  > >
>  > > This will run the preprocessor and output to the file ssl.E so that
>  > > you can examine it with less, more, your favorite editer, whatever.
>  > > You want to take a close look at what is happening near line 62 of
>  > > ssl.c to get a clue what is wrong.
>  > >
>  > > --
>  > > --------  "And there came a writing to him from Elijah"  [2Ch 21:12]
>  > > -------- R. J. Brown III  rj@xxxxxxxxxxx http://www.elilabs.com/~rj 
>  > > voice 859 567-7311 Elijah Laboratories Inc.    P. O. Box 166, Warsaw
>  > > KY 41095 fax 859 567-7311 -----  M o d e l i n g   t h e   M e t h o d
>  > > s   o f   t h e   M i n d  ------
>  >
>  > I ran the command:
>  > $ gcc -E -C -DRESIN_HOME=\"/usr/resin\" -I -I/usr/kerberos/include
>  > -I/usr/java/include -I/usr/java/include/linux -I../common-DCPU=\"i386\"
>  > -DOS= -c -o ssl.o ssl.c > ssl.E
>  >
>  >  and Here's the response:
>  > >>>>>>>>>>>>><<<<<<<<< ERROR <<<<<<<<<<<<<<<<<<<<<<<<<
>  >
>  > In file included from /usr/include/openssl/ssl.h:179,
>  >                  from ssl.c:62:
>  > /usr/include/openssl/kssl.h:72:18: krb5.h: No such file or directory
>  >
>  > >>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
>  >
>  > The file kssl.h is in /usr/include/openssl and it is including <krb5.h>
>  > but krb5.h is not in /usr/include/openssl.  Here's the exact include
>  > statement that's causing the problem
>  >
>  > >>>>>>>>>>>>>>>>>>>>>>>>>> EXCERPT FROM kssl.h  >>>>>
>  >
>  > #ifndef OPENSSL_NO_KRB5
>  > #include <stdio.h>
>  > #include <ctype.h>
>  > #include <krb5.h>      ##### ERROR LINE
>  > #ifdef  __cplusplus
>  > extern "C" {
>  > #endif
>  >
>  >
>  > Judging by this it seems that krb5.h needs to be in
>  > /usr/include/openssl/. It's not.  Although, from what I remember that
>  > shouldn't be a problem because the compiler should search all paths
>  > included.  But that's my best assessment from what I see, Does that make
>  > any sense?
>
> Eurika!  There's your problem!  The file name is in angle brackets
> instead of in quotes.  This means that it will be searched for only in
> system directories, such as /usr/include, and not user supplied
> directories.  It is only looking for krb5.h in /usr/include of one of
> its subdirectories.  If you change the angle brackets to  double
> quotes, it should work.
>
> But the question remains, why did the original use angle brackets?  Is
> theree a *DIFFERENT* version supposed to be in /usr/include?  Was
> there just coincidentally a krb5.h in /usr/include on the original
> build system, so it worked in spite of the mistake?  I do not know the
> intent here of the original programmer, but you can either change the
> angle brackets to double quotes in the source file, or you can copy
> the krb5.h file into /usr/include -- its you choice how to crock it.
>
> --
> --------  "And there came a writing to him from Elijah"  [2Ch 21:12] 
> -------- R. J. Brown III  rj@xxxxxxxxxxx http://www.elilabs.com/~rj  voice
> 859 567-7311 Elijah Laboratories Inc.    P. O. Box 166, Warsaw KY 41095   
> fax 859 567-7311 -----  M o d e l i n g   t h e   M e t h o d s   o f   t h
> e   M i n d  ------


As you pointed out the problem was the include statement.  I remembered 
something from my C++ days but I was not sure.  However, I had to make the 
same type of fix in a number of header files beside krb5.h  and finally 
successfully completed the make.  It's odd that this sort of discrepancy 
should be found but having so many third party software is bound to create 
some discrepancies.

Thank you very much.  


-- 
redhat-list mailing list
unsubscribe mailto:redhat-list-request@xxxxxxxxxx?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/redhat-list

[Index of Archives]     [CentOS]     [Kernel Development]     [PAM]     [Fedora Users]     [Red Hat Development]     [Big List of Linux Books]     [Linux Admin]     [Gimp]     [Asterisk PBX]     [Yosemite News]     [Red Hat Crash Utility]


  Powered by Linux