mingw-cross-env-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Mingw-cross-env-list] Status of build with shared libraries


From: Tony Theodore
Subject: Re: [Mingw-cross-env-list] Status of build with shared libraries
Date: Sun, 20 Oct 2013 16:37:53 +1100

Welcome John,

On 15/10/2013, at 6:16 AM, John W. Eaton <address@hidden> wrote:

> Hi,
> 
> I am the Octave maintainer and the person who forked MXE for building
> Octave.
> 
> First, thank you for writing MXE and making it available.  It's been
> extremely helpful and has made building Octave and all its
> dependencies for Windows systems much easier than it would have been
> if we had to do all the work for that ourselves.
> 
> I apologize for not contacting you before now.  It was never my intent
> to permanently fork MXE and create some alternative to it.  My goal
> was just to be able to build Octave and all its dependencies.  When I
> was searching for a way to cross compile for Windows it seemed to me
> that MXE was the best choice.  The only problem was that it did not
> support shared libraries and we need them for Octave.  From what I
> read on the mailing list at the time there did not seem to be much
> interest in having MXE support shared library builds.  Given the
> choice of starting something from scratch or modifying MXE, I decided
> to try to modify MXE.
> 
> When I started, I initially hoped to be able to merge your changes
> with my branch and stay current with MXE development.  I also hoped
> that we could ultimately merge at least some of my changes back with
> MXE.  Unfortunately, given the changes that we were making, merging
> probably would have been difficult and I was very busy and never
> really tried.

Merging actual code changes will be very difficult since we switched to the 
multi-target approach and moved versions back into the individual makefiles. 
That said, the work you've done on getting the build to work (patches, config 
options, etc) will be invaluable and should be easy to incorporate.

> We have also been using our MXE-based system to do native builds of
> Octave and all the dependencies on systems like Red Hat 5.x and
> Windows with MSVC that don't have up to date tools or packages for all
> the dependencies that Octave requires.
> 
> Now I am looking at building for mingw-w64 and I see that you already
> have a great start on that and I would rather not duplicate all the work
> you've done.

We've just switched to the release versions of mingw-w64 so will have a more 
stable base to work from.

> There are also things that you've done that just seem better than what
> we have done.  For example, your method of handling differences in
> targets with variables like $(PKG)_BUILD_$(TARGET) could work much
> better than what we've done with Make conditionals.  It seems to me
> that we could also extend that idea to handle "native" builds for
> systems like Red Hat 5.x and Windows with MSVC.

I'm using $(PKG)_BUILD_$(BUILD) rules (where BUILD = `config.guess`) at the 
moment for native builds, at some stage we may add $(BUILD) to the target loop 
as a pre-requisite for all other targets, but native builds are really 
inconsistent across operating systems and distros.

> Although our sources have diverged significantly, I would still like
> to try to merge our changes with yours.  I would be very happy if we could
> work together so that we would not have to maintain a separate fork of
> MXE.
> 
> If you are interested, I would be happy to discuss a plan for how best
> to provide patches to you.  I expect that would be done by creating a
> new series of incremental changes to the current MXE.

The starting point as I see it is completing the build infrastructure to handle 
shared rules. We need to add some configuration hooks to the package rules, 
then decide if we want to try and build the variants side-by-side. The more I 
think about it, the more I think we should just build each variant separately - 
is anyone really going to want multiple toolchains simultaneously?

Once that's done, submitting patches should be fairly straightforward. I'm not 
sure about the MSVC builds, that may require some changes to make it easier for 
downstream modifications to be made in a way that allows upstream to be easily 
merged.

Cheers,

Tony




reply via email to

[Prev in Thread] Current Thread [Next in Thread]