I'm finishing up on the release of gcc 3.1 and I have a few gotchas that
I'd like to discuss:

1) I was going to take Red Hat's cue and release the new version of
   gcc as gcc3.  However, this will require manual deinstallation of
   gcc (2.95.3-whatever) so this is probably a bad thing.  Somehow, I
   just think that if we don't still make the older version of gcc
   available, there will be many "This used to build on gcc 2.95.3!!!"
   messages.

   So, maybe I should rename the old version to gcc2 or release a version
   of 2.95.3 that names the binaries (i686-pc-cygwin-gcc2) differently.
   Any thoughts?

2) I'm trying to remove most of the spec file magic that dealt with
   mingw and I think I've actually been pretty successful.  However,
   my new scheme relies on changing the machine name from i686-pc-cygwin
   to i686-pc-mingw.  That means that the new layout looks like this:

    /usr/i686-pc-mingw/:
    total 0
    lrwxrwxrwx    1 cgf      None          122 Jun 23 23:41 bin -> 
../i686-pc-cygwin/bin
    lrwxrwxrwx    1 cgf      None          125 Jun 23 23:42 include -> 
/usr/include/mingw
    lrwxrwxrwx    1 cgf      None          113 Jun 23 23:42 lib -> /usr/lib/mingw

    /usr/lib/gcc-lib:
    total 0
    drwxr-xr-x    4 cgf      None            0 Dec 25  2000 i686-pc-cygwin
    lrwxrwxrwx    1 cgf      None          108 Jun 23 23:48 i686-pc-mingw -> 
i686-pc-cygwin

   Ideally, the include, lib stuff in /usr/i686-pc-mingw should not be a
   symbolic link but should, instead, be the actual directories that they
   reference.  However, coordinating this will be tricky.  I'm thinking that
   I should just add a postinstall script that will try to do the right thing
   if /usr/i686-pc-mingw doesn't have the right stuff.  However, I'd like to
   confirm with Earnie/Danny that this new layout makes sense.

   FWIW, I think this is the way I should have laid stuff out originally.

3) The above layout has a problem.  It works ok generating mingw binaries but,
   with gcc-3.1, I've configured things using --enable-threads=posix.  So, some
   binaries don't link successfully.  That means that the libgcc.a library is
   inappropriate for mingw.  So, the above directory layout can potentially
   become a little trickier since I'll need to build a libgcc.a (and libstdc++.a,
   I guess) for mingw.  This seems like a lot of duplication of effort, though,
   so maybe I'll try to figure out some way to download the bits that I need
   from sourceforge or something.  Or,...

4) Since mingw is becoming so logically separated from gcc, it is possible that
   it could become a separate package.  So, if "someone" was willing to supply
   a gcc-mingw package, it would actually be helpful.  I don't think I could
   stand the pain of making this optional, so the gcc package would rely on
   the gcc-mingw package rather than the other way around. This would allow
   updating libgcc.a and libstdc++.a without requiring a new release of gcc.
   Hmm.  I wonder if I should break libstdc++.a out of the gcc package.  Urgh.
   Any suckers (cough) want to contribute a separate package?

I've been toiling away at this for some time, so I'd appreciate any
useful suggestions.  My next hurdle is updating the gcc cygwin 3.1
branch with the latest changes in the gcc 3.1 branch.  I have to
automate that somehow.

cgf

Reply via email to