Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.10
    • Fix Version/s: None
    • Component/s: XalanC
    • Labels:
      None
    • Environment:
      Win32 with MinGW

      Description

      I'm having major difficulties getting Xalan to compile with MinGW whereas the process with Xerces was painless.

      I have attempted to modify the runConfigure and configure scripts to generate a makefile for my mingw configuration. In doing so, I have run across problems during configure in which configure thinks that the compiler is broken. I have not had the time to debug the file, so instead, I commented out the offending exit conditions.

      Getting past configure, a surprising amount of code will actually compile. I will have to follow up with another comment to detail how far I have progressed (that information as at work).

      In any case, I really need to get this resolved. I'll provide more feedback and testing if need be. Otherwise, I will have to seek another alternative to Xalan. Xalan seemed like such a good choice because of its compatability with xerces and (I was thinking its) cross platform support.

      1. patch.diff
        7 kB
        David Bertoni

        Activity

        Hide
        dbertoni David Bertoni added a comment -

        Xalan-C builds fine with CygWIN, so I don't know what would prevent it from working with MinGW. If you post your questions/issues to the Xalan-C user list, we can try to work through them.

        Show
        dbertoni David Bertoni added a comment - Xalan-C builds fine with CygWIN, so I don't know what would prevent it from working with MinGW. If you post your questions/issues to the Xalan-C user list, we can try to work through them.
        Hide
        sechastain Spencer E. Chastain added a comment -

        To follow up on my initial report yesterday:

        I have attempted to use cygwin as the specified platform even though I'm using mingw. I get the following output/error message when I run the configure script:

        -----------------------------------------------------------
        >sh runConfigure -p cygwin -c gcc -x g++
        Generating makefiles with the following options ...
        Platform: cygwin
        C Compiler: gcc
        C++ Compiler: g++
        Extra compile options:
        Extra link options:
        Transcoder: default
        Localization system: inmem
        Locale: en_US
        Thread option:
        bitsToBuild option: 32
        Extra configure options:
        Debug is OFF

        checking for gcc... gcc
        checking for C compiler default output file name... configure: error: C compiler cannot create executables
        See `config.log' for more details.
        -----------------------------------------------------------

        I can copy the config.log file if it will be useful, but it ends with 'configure: exit 77'

        So, after that, everytime I ran configure, I found where the script was dying, and I commented out the exit condition.
        The lines affected were:
        line 1668, exit 77 – above error
        line 1699, exit 1 – related to cross compile
        line 1741, exit 1 – related to suffix

        I then have to edit the created Makefile.incl to change the PLATFORM variable from UNKNOWN to CYGWIN.

        Make will then run until I get to compiling my shared object libxalanMsg.dll

        -----------------------------------------------------------
        g++ DCYGWIN -O -DNDEBUG -fno-elide-constructors -shared -Wl,warn-once -Wl,-out-implib -Wl,../../../../lib/libxalanMsg.dll.110.0 ../../../../obj/XalanMsgLib.o -o ../../../../lib/cygxalanMsg110.dll
        Creating library file: ../../../../lib/libxalanMsg.dll.110.0
        rm -f ../../../../lib/libxalanMsg.dll && \
        ln -fs libxalanMsg.dll.110.0 ../../../../lib/libxalanMsg.dll
        ln: creating symbolic link `../../../../lib/libxalanMsg.dll' to `libxalanMsg.dll.110.0': No such file or directory
        -----------------------------------------------------------

        As I reported in my first comment, I then tried modifying the configure scripts to support a MinGW platform, and I got about as far as this. Probably because I haven't sat down to figure out what it is that script is doing, how it is doing it, and why mingw is different.

        Per above comment, I'll create a thread on the users list related to this. I had seen a few similar threads in the archives, but I had not seen anyone report any kind of success. That's why I decided to open the bug report. It should be easier than this.

        Show
        sechastain Spencer E. Chastain added a comment - To follow up on my initial report yesterday: I have attempted to use cygwin as the specified platform even though I'm using mingw. I get the following output/error message when I run the configure script: ----------------------------------------------------------- >sh runConfigure -p cygwin -c gcc -x g++ Generating makefiles with the following options ... Platform: cygwin C Compiler: gcc C++ Compiler: g++ Extra compile options: Extra link options: Transcoder: default Localization system: inmem Locale: en_US Thread option: bitsToBuild option: 32 Extra configure options: Debug is OFF checking for gcc... gcc checking for C compiler default output file name... configure: error: C compiler cannot create executables See `config.log' for more details. ----------------------------------------------------------- I can copy the config.log file if it will be useful, but it ends with 'configure: exit 77' So, after that, everytime I ran configure, I found where the script was dying, and I commented out the exit condition. The lines affected were: line 1668, exit 77 – above error line 1699, exit 1 – related to cross compile line 1741, exit 1 – related to suffix I then have to edit the created Makefile.incl to change the PLATFORM variable from UNKNOWN to CYGWIN. Make will then run until I get to compiling my shared object libxalanMsg.dll ----------------------------------------------------------- g++ DCYGWIN -O -DNDEBUG -fno-elide-constructors -shared -Wl, warn-once -Wl, -out-implib -Wl,../../../../lib/libxalanMsg.dll.110.0 ../../../../obj/XalanMsgLib.o -o ../../../../lib/cygxalanMsg110.dll Creating library file: ../../../../lib/libxalanMsg.dll.110.0 rm -f ../../../../lib/libxalanMsg.dll && \ ln -fs libxalanMsg.dll.110.0 ../../../../lib/libxalanMsg.dll ln: creating symbolic link `../../../../lib/libxalanMsg.dll' to `libxalanMsg.dll.110.0': No such file or directory ----------------------------------------------------------- As I reported in my first comment, I then tried modifying the configure scripts to support a MinGW platform, and I got about as far as this. Probably because I haven't sat down to figure out what it is that script is doing, how it is doing it, and why mingw is different. Per above comment, I'll create a thread on the users list related to this. I had seen a few similar threads in the archives, but I had not seen anyone report any kind of success. That's why I decided to open the bug report. It should be easier than this.
        Hide
        dbertoni David Bertoni added a comment -

        Here's a preliminary patch. To get around the symlink errors, you can start the build, which will fail creating the symlinks for the message library. Then, cd to the lib directory, and create the symlink manually:

        ln -fs libxalanMsg1_10_0.dll libxalanMsg1_10.dll
        ln -fs libxalanMsg1_10_0.dll libxalanMsg.dll

        Start the build again, until it fails creating the symlinks for the main DLL. Repeat the same process for the main DLL:

        ln -fs libxalan-c1_10_0.dll libxalan-c1_10.dll
        ln -fs libxalan-c1_10_0.dll libxalan-c.dll

        After starting the build again, it should complete.

        Show
        dbertoni David Bertoni added a comment - Here's a preliminary patch. To get around the symlink errors, you can start the build, which will fail creating the symlinks for the message library. Then, cd to the lib directory, and create the symlink manually: ln -fs libxalanMsg1_10_0.dll libxalanMsg1_10.dll ln -fs libxalanMsg1_10_0.dll libxalanMsg.dll Start the build again, until it fails creating the symlinks for the main DLL. Repeat the same process for the main DLL: ln -fs libxalan-c1_10_0.dll libxalan-c1_10.dll ln -fs libxalan-c1_10_0.dll libxalan-c.dll After starting the build again, it should complete.

          People

          • Assignee:
            Unassigned
            Reporter:
            sechastain Spencer E. Chastain
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development