Re: A question for the expert

From: Robert Brown (eli_at_typhoon.xnet.com)
Date: 12/28/03

  • Next message: Robert Brown: "problem with ip"
    To: redhat-list@redhat.com
    Date: Sun, 28 Dec 2003 13:56:33 -0600 (CST)
    
    

    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@elilabs.com 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@elilabs.com 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@elilabs.com 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  ------
    -- 
    redhat-list mailing list
    unsubscribe mailto:redhat-list-request@redhat.com?subject=unsubscribe
    https://www.redhat.com/mailman/listinfo/redhat-list
    

  • Next message: Robert Brown: "problem with ip"

    Relevant Pages

    • [Thank You] Re: A question for the expert
      ... If you change the angle brackets to double ... > quotes, it should work. ... > intent here of the original programmer, but you can either change the ... It's odd that this sort of discrepancy ...
      (RedHat)
    • Re: #include "file" -vs- #include <file>
      ... You've confirmed my understanding of the issue, ... which form do you use for 3rd party non-system headers? ... should one use the quotes for his own files and angle brackets ... for everything else or should he use angle brackets for system headers ...
      (comp.lang.cpp)
    • Re: Hello again (was Re: Fish Stories and Other Tales of the Sea)
      ... Since I have an attribution in the quotes below, ... restore the words I actually wrote, in case someone forgets how to ... count angle brackets. ...
      (misc.writing)
    • Re: #includ-ing from the source directory
      ... The standard way is to just use ... This _is_ about using quotes ... I'm not talking about using angle brackets. ... And gcc does provide for modifying the search sequence for quoted ...
      (comp.unix.programmer)
    • Why does console window appear
      ... Hi when running a program on pocket pc, I get a console window appear with ... 3-digit numbers in angle brackets. ... What is causing this? ...
      (microsoft.public.windowsce.embedded.vc)