make bootstrap failure in libjava

Tom Tromey tromey@redhat.com
Sat Apr 14 18:02:00 GMT 2001


>>>>> "Robert" == Robert Collins <robert.collins@itdomain.com.au> writes:

Robert> knowing where to look saves a heap of time. I'll sumbit a
Robert> patch, but as I know nothing about gcc's innards, you'll
Robert> probably just want to use it as a list of the strcmps that
Robert> need changing. I presume that in one of target files there is
Robert> a #define for a filename compare function - do you know what
Robert> that define is and I'll use it instead..

Actually I don't think there is such a define.  Maybe there is and I
simply don't know what it is.  Grepping for `strcase' didn't turn up
anything very likely :-(

There is some useful-looking code in protoize.c:

    /* Macro to see if the path elements match.  */
    #ifdef HAVE_DOS_BASED_FILE_SYSTEM
    #define IS_SAME_PATH_CHAR(a,b) (TOUPPER (a) == TOUPPER (b))
    #else
    #define IS_SAME_PATH_CHAR(a,b) ((a) == (b))
    #endif

    /* Macro to see if the paths match.  */
    #ifdef HAVE_DOS_BASED_FILE_SYSTEM
    #define IS_SAME_PATH(a,b) (strcasecmp (a, b) == 0)
    #else
    #define IS_SAME_PATH(a,b) (strcmp (a, b) == 0)
    #endif

I think using this would be appropriate.  I have no idea if this code
works or if it has rotted (I don't think protoize is really
maintained).

I recommend finding the existing java PR that talks about this.  In it
I pointed out a number of places that need changing.  Grepping in
gcc/java for `strn?cmp' will get good results though; it is usually
easy to tell which invocations need to be changed.

I think you can write a patch that would be suitable for inclusion.  I
doubt this change will require real knowledge of any gcc internals.

Good luck, and thanks for looking into this.  Unfortunately -- as you
probably already know -- it is unlikely that this is the only issue
preventing gcj from working on cygwin.

Tom



More information about the Java mailing list