Announcing the Cross Compiler Framework (Win32+Win64)

Erik van Pienbroek erik at vanpienbroek.nl
Sun Apr 10 12:02:44 UTC 2011


R P Herrold schreef op do 07-04-2011 om 13:20 [-0400]:
> On Mon, 3 Jan 2011, Erik van Pienbroek wrote:
> 
> > My plan is to get all the packages belonging to the cross compiler
> > framework in Fedora 15, rebuild all current mingw32 packages and
> > rename/port various packages in order to have win32/win64 support. On
> 
> The wiki page was last updated 4 Feb, and I do not think I 
> have missed any update on the mailing list ... .  How is this 
> coming? [actually reading more closely, I see F16 as a target 
> in the wiki].  Also, zlib, and openssl exceptions seem 
> material, as they are either so widely used, or so necessary
> 
> My thought was build on your foundation to use a cross-compile 
> chain for building toward the ARM based:
>    http://www.globalscaletechnologies.com/t-dreamplugdetails.aspx 
> which obviously is not presently a target arch, but I was 
> going to poke at solving the needed diff's.
> 
> It is not clear to me that this is a better approach than a 
> pure GCC one, but it seemed to me that for some reason Fedora 
> has resisted having a set of cross-compile tools in mainline 
> to that effect.  I may be totally wrong here, and am aware of 
> the native arm build project on such hardware out there, but 
> being able to cross-build on faster commodity hardware [and 
> hopefully being able to use a 'dist-cc' or such] seemed useful
> 
> best regards
> 
> -- Russ herrold

Hi Russ,

We're still working on getting support for mingw-w64 in Fedora 16. Right
now we're waiting on approval of the updated packaging guidelines [1]
from the Fedora Packaging Committee [2]. We're also waiting on getting
clearance from Fedora/Red Hat legal for the mingw-w64 headers and crt.

My initial plan with the cross compiler framework was to provide a
generic method to build for multiple targets. However, I have the
impression that there's a strong resistance to such a framework. The
most probable reason behind this is that every target has it's own
characteristics (like desktop vs. embedded) which can't be mixed in
something generic. The proposal we've put up for review is only for
support of the Win32 and Win64 targets. The Mac OS X target was
initially also there, but it was refused (as there are also legal issues
involved with that target).

However, the packages which are currently in the testing repository (the
'cross-*' packages) can be quite easily changed to have support for the
ARM target. Basically it comes down to these steps:
- Add RPM macros for the target in the cross-filesystem package
- Update the cross-binutils package to also build compiler tools for the
target
- Update the cross-gcc package to also build a compiler for the target
- Add a package containing the target's standard headers and libraries
(glibc?)
- Try to get everything bootstrapped

Now for every package you want to compile against this new toolchain,
you have to add the line '%global _cross_build_mytarget 1' to the .spec
file and some other small additions (as can be seen at [3]). After that
you should have binary RPMS for your target.

This may look quite difficult, but it's mostly a copy/paste of already
existing lines. If you really want to continue with this, feel free to
drop any questions you might have on the fedora-mingw mailing list. If
we can get something working, perhaps we can convince the Fedora
Packaging Committee to approve a generic cross compiler framework.

Kind regards,

Erik van Pienbroek


[1]: https://fedoraproject.org/wiki/PackagingDrafts/MinGWCrossCompiler
[2]: https://fedorahosted.org/fpc/ticket/71
[3]:
https://fedoraproject.org/wiki/MinGW/CrossCompilerFramework#Porting_guide




More information about the mingw mailing list