On Mar 13 16:18, NightStrike wrote:
> On Wed, Mar 13, 2013 at 7:22 AM, Corinna Vinschen <[email protected]> wrote:
> > Hi,
> >
> > I'd like to resurrect a patch which has been refused last year, but
> > I think it's still helpful and maybe the opinions have changed a bit.
> 
> Sorry.. did I refuse it?  Can you link to the mailing list archive (I
> understand that the SF interface blows for that...)
> 
> > For people building just the latest mingw64-headers and mingw64-crt,
> > it's kind of surprising that mingw64-crt requires that the headers
> > are already installed.  In theory, the right thing to do should be
> > that mingw64-crt is build after mingw64-headers, and then prefer the
> > just built in-tree headers over the already installed headers.
> 
> I'm a little confused here.  What we require, ie, the only situation
> that we support, is when the version of the headers is the same
> version of the crt.  Ie, svn checkout revision.  Anything outside of
> that will probably work, of course, but nobody tests it.

Sure, I'm not claiming anything else, nor am I trying to do anything
else.  I want to build a full mingw tree, without having to have
anything installed outside the source or build tree.

> Now, in terms of the configure test that errors out in the case of not
> finding _mingw_mac.h, that is due to the fact that the headers are
> required to build the crt.  We don't care where they are, we just care
> that they exist.  If they don't, the crt build will be all fouled up.

I'm puzzeled.  That has nothing to do with my patch.

> The default, of course, is for the headers to exist in the sysroot
> that the crt is getting installed into.  This is a fairly common usage
> pattern, and modeled after the gcc build.  If they're somewhere else
> instead, you can just use --with-sysroot=some/wheres/else
> 
> In fact, the help text for with-sysroot even says this:
>      --with-sysroot=DIR       Search for headers within DIR/include
> 
> So if you for whatever reason want to stage a build of
> mingw-w64-headers in /tmp/my/dir, you just build the crt with
> --with-sysroot=/tmp/my/dir
> 
> Does that not work for you?

Sorry, but I'm really confused about the unnecessary complexity.  I don't
want to "stage" anything.  I would like to be able call

  configure --prefix=...
  make
  make install

That's a pretty standard scenario.  But here's what happens: Try to
build a full set of headers and libs for a Cygwin target:

  ${srcdir}/configure \
    --host=x86_64-w64-mingw32 \
    --prefix=/home/corinna/mingw \
    --enable-w32api

As common as it looks, the build will fail:

  x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H \
    -I. \
    -I${srcdir}/mingw-w64-crt  \
    -m32 \
    -I/home/corinna/mingw64/include   \
    [...] -g -O2 [...] \
    -c -o libsrc/lib32_libwmcodecdspuuid_a-wmcodecdspuuid.o \
    [...]/wmcodecdspuuid.c
  ${srcdir}/mingw-w64-crt/libsrc/wmcodecdspuuid.c:8:24: fatal error: 
wmcodecdsp.h: No such file or directory
  compilation terminated.

The reason is obvious.  The -I don't include the headers within the
same src tree, and they don't contain the generated headers within
the same build tree *even though thay are available*.

It simply doesn't make sense to require having a copy of these headers
installed to some arbitrary sysroot dir, just to be able to build crt.


Corinna

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to