[ITP] mingw-w64 Second try

JonY jon_y@users.sourceforge.net
Fri Sep 10 10:00:00 GMT 2010

On 9/10/2010 07:09, Charles Wilson wrote:
> On 9/9/2010 6:10 AM, JonY wrote:
> OK, we're allllmost there.
> binutils and runtime are GTG.
> gcc, headers, and pthreads are really close.
> Everything rebuilds from source fine, and the uploaded packages actually
> match the rebuilt versions (or vice versa).  So that's all good. Plus, I
> was able to build a sample project using these tools
> (mingw64-x86_86-xz-4.999.9beta-1) with no problems.
> However, when I tried to install these packages via setup.exe, I ran
> into problems with the setup.hints.  In the first case, "genini" (*) did
> not like some of them -- complained about missing fields -- AND, genini
> couldn't actually parse the package name of mingw64-x86_64-headers.
> (*) genini is a user script that can be used to generate a "setup.ini"
> for a cygwin package repository.  On the sourceware server, a different
> tool -- "upset" -- is used.
> Now, maybe -- MAYBE -- upset is smarter than genini, and won't complain.
> However, it's usually better to make sure that genini is happy; then you
> are much more likely to NOT cause the upset script on sourceware to send
> cgf a bunch of nasty warnings via email.  That makes cgf angry.  You
> wouldn't like cgf when he's angry.
> Here are the "bad" setup.hints:
> mingw64-x86_64-gcc-core/setup.hint
> mingw64-x86_64-gcc-fortran/setup.hint
> mingw64-x86_64-gcc-g++/setup.hint
> mingw64-x86_64-gcc-objc/setup.hint
> mingw64-x86_64-gcc-ada/setup.hint
> mingw64-x86_64-gcc/setup.hint
> mingw64-x86_64-pthreads/setup.hint
> Plus there are bigger changes required to the -headers package. We'll
> talk about that last.
> In each of the following cases, the setup.hint was missing an "ldesc:"
> field.  This annoys genini, but upset might be ok with it.
> 	mingw64-x86_64-gcc-core/setup.hint
> 	mingw64-x86_64-gcc-fortran/setup.hint
> 	mingw64-x86_64-gcc-g++/setup.hint
> 	mingw64-x86_64-gcc-objc/setup.hint
> 	mingw64-x86_64-gcc-ada/setup.hint
> 	mingw64-x86_64-pthreads/setup.hint
> The "top" gcc setup.hint was missing both an "ldesc:" and a "requires:"
> field (requires was empty, of course).
> 	mingw64-x86_64-gcc/setup.hint
> I've attached the updated setup.hints.
> Here's what I would suggest we do, for gcc: DON'T bother to rebuild it.
> Just save these setup.hints, and make sure to fold them in to your NEXT
> official release's CYGWIN-PATCHES/ directory.  When I upload this first
> version of mingw64-gcc, I'll be sure to use these new hints instead of
> the ones you pasted inline.  Let's call gcc "GTG with alternate hint files".
> For pthreads, I'd suggest you actually rebuild and re-upload it with the
> attached hint (it doesn't take nearly as long...) but if you want to
> treat it just like gcc, above, that's fine. Let me know -- we'll call
> pthreads "GTG with alternate hint files, or as rebuilt".
> Now...headers.
> Here's the problem: genini requires that the "version" part of the
> package name begin with a numeral. I think this is true of upset as
> well, but I'm not sure (but again, better safe than sorry. You wouldn't
> like cgf when he's angry).  Also, genini and cygport do NOT like having
> a hyphen in the version number (but upset is ok with it).
> So, just liike your earlier gendef and libmangle packages -- where we
> discovered that they had to be named, e.g.
> 	gendef-1.0-svn2931-1.tar.bz2
> 	gendef-1.0-svn2931-1-src.tar.bz2
> 	libmangle-1.0-svn2930-1.tar.bz2
> 	libmangle-1.0-svn2930-1-src.tar.bz2
> ...the current name of the headers package is no good:
> 	mingw64-x86_64-headers-svn3433-1.tar.bz2
> 	mingw64-x86_64-headers-svn3433-1-src.tar.bz2
> 	                       ^^^
>                       must start with numeral
> Now, following the gendef/libmangle pattern, I tried
> 	mingw64-x86_64-headers-1.0b-svn3433-1.tar.bz2
>                                 ^^^^^^^^^^^^
> where 1.0b came from the configure.ac file, but I discovered that genini
> doesn't like the hyphen between 1.0b and svn3433 -- when you do that,
> genini (and cygport-0.10.0, for that matter) thinks the package name is
> "mingw64-x86_64-headers-1.0b", and the version is "svn3433", and we're
> right back where we started!  Now, upset doesn't care about this --
> obviously -- since gendef and libmangle, which use '-' between 1.0 and
> svnXXXX -- have not yet caused cgf to become angry.
> But...let's also try to keep genini happy. And, it may be a regression
> in cygport -- I'm not sure (obv. you were able to build gendef and
> libmangle with an older version of cygport, even with a hyphen in the
> middle of the version string), but we have to keep cygport happy, too.
> So, I rebuilt as:
> 	mingw64-x86_64-headers-1.0b_svn3433-1.tar.bz2
> 	mingw64-x86_64-headers-1.0b_svn3433-1-src.tar.bz2
>                                 ^^^^^^^^^^^^

OK, this is fine.

> And that worked fine (genini was happy, cygport was happy, setup.exe was
> happy -- and presumably upset will be happy == no angry cgf).  I've
> uploaded the modified version here:
> http://cygwin.cwilson.fastmail.fm/mingw64-x86_64-headers-1.0b_svn3433-1-src.tar.bz2
> http://cygwin.cwilson.fastmail.fm/mingw64-x86_64-headers-1.0b_svn3433-1.tar.bz2
> so you can download it and pick it apart.  The only thing that's
> different is (a) the package name, (b) the name of the "checked out"
> source tarball is mingw64-x86_64-headers-1.0b_svn3433.tar.bz2, but
> 'cygport ... get' does that automatically, and (c) the setup.hint and
> README were both updated to reflect the new name and genini issues.
> So, let me know how you want to handle gcc, pthreads, and headers, and
> we'll go from there.

OK, I'll repackage gcc and pthreads with cygport, setup.hint shouldn't 
affect the binaries as it is cygwin metadata.

I'll also rename the headers version to 1.0b_svnXXXX.

Thanks for your help.

More information about the Cygwin-apps mailing list