[Mingw-w64-public] wcschr etc. problem

2014-04-29 Thread G M
Hi Everyone

I can't build the popular build program ninja with clang++ and mingw.

The reason is demonstrated by this simple program:

// wcx.cpp

#include string
using namespace std;
#include windows.h
int main()
{
wchar_t* p = wcschr(Lhello, L'h');
}

Compiling this program with g++ yields the same problem, all the errors are
below, results from clang++ are included too.

g++ -std=c++1y -I/libcxx/include -nostdinc++ wcx.cpp


If ninja didn't put a using namespace std; in it's includes, the problem
would go away, but it does, and in over a year I've had no luck convincing
them not to put using namespaces in headers and when I mentioned it a year
ago here it didn't attract any interest.

On the ninja maintainers side, it is legal, so why should they change it,
and who knows what other programs break because it doesn't work.

So my question is, will mingw be changed to make this program compile by
default?

If there is a fix, where (actual link please) can I get it?

I'm using a mingw I got here:

http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/4.9.0/threads-win32/seh/x86_64-4.9.0-release-win32-seh-rt_v3-rev0.7z/download

It'd be nice if someone actually tried this. Everything you need is listed
to reproduce the problem: Binaries, test case, compile command lines.
ninja source is available too so you can even download that, not that you
need it, the test case demonstrates the problem.

Also, regarding my earlier post, could someone tell me explicitly what the
procedure would be to either get the latest trunk mingw to apply to the
build linked above if that's what I'm supposed to do, or where a more
recent version of that is that fixes that problem so I can download that?

I find navigating the various personal builds/mingw builds tree very
confusing.

Whatever I download is always old whenever I try to discuss anything on
here. Nobody links to anything concrete in their replies.

I'm not an expert in mingw and I always find I'm chasing my tail most of
the time on this forum to get replies that I can actually do anything with,
despite attempts from people to help, and that's regardless of however much
info I provide.

Hopefully this time will be different.

Error output follows.

Thanks

In file included from /libcxx/include/memory:607:0,
 from /libcxx/include/algorithm:628,
 from /libcxx/include/string:439,
 from wcx.cpp:1:
/libcxx/include/tuple:291:72: error: 'constexpr const _Hp
std::__1::__tuple_leaf_Ip, _Hp, anonymous ::get() const' ca
nnot be overloaded
 _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 const _Hp
get() const _NOEXCEPT {return value;}
^
/libcxx/include/tuple:290:72: error: with 'constexpr _Hp
std::__1::__tuple_leaf_Ip, _Hp, anonymous ::get() const'
 _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11   _Hp
get()   _NOEXCEPT {return value;}
^
In file included from /libcxx/include/memory:607:0,
 from /libcxx/include/algorithm:628,
 from /libcxx/include/string:439,
 from wcx.cpp:1:
/libcxx/include/tuple:357:72: error: 'constexpr const _Hp
std::__1::__tuple_leaf_Ip, _Hp, true::get() const' cannot be
overloaded
 _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 const _Hp
get() const _NOEXCEPT {return static_castconst _H
p(*this);}
^
In file included from /libcxx/include/memory:607:0,
 from /libcxx/include/algorithm:628,
 from /libcxx/include/string:439,
 from wcx.cpp:1:
/libcxx/include/tuple:356:72: error: with 'constexpr _Hp
std::__1::__tuple_leaf_Ip, _Hp, true::get() const'
 _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11   _Hp
get()   _NOEXCEPT {return static_cast_Hp(*t
his);}
^
In file included from /libcxx/include/memory:607:0,
 from /libcxx/include/algorithm:628,
 from /libcxx/include/string:439,
 from wcx.cpp:1:
/libcxx/include/tuple: In function 'constexpr std::__1::tuple
std::__1::tuple_cat()':
/libcxx/include/tuple:996:1: error: invalid return type 'std::__1::tuple'
of constexpr function 'constexpr std::__1::tup
le std::__1::tuple_cat()'
 tuple_cat()
 ^
/libcxx/include/tuple:674:29: note: 'std::__1::tuple' is not literal
because:
 class _LIBCPP_TYPE_VIS_ONLY tuple
 ^
/libcxx/include/tuple:674:29: note:   'std::__1::tuple' is not an
aggregate, does not have a trivial default constructor
, and has no constexpr constructor that is not a copy or move constructor
wcx.cpp: In function 'int main()':
wcx.cpp:6:39: error: call of overloaded 'wcschr(const wchar_t [6],

Re: [Mingw-w64-public] mingw-w64 may move to git in the future

2014-04-29 Thread Rodny
JonY jon_y@... writes:

 
 Hi,
 
 mingw-w64 may migrate from svn to git in the future, seeing that sf can
 now do multiple repos per project.
 
 Structure wise, everything under trunk will still stay together in the
 new repo, but any externals, /experimental/* and /web may move into its
 own repo.
 
 Discuss.

Hello, world.  First time poster, long time user.

I know I'm in the minority, but I'd just like to say that I'm actually
against this change.  We use your products in house here almost constantly
(Bob's your uncle for that!), and we really love how easy it is to use your
code base.  We always build our own toolchains, and we are setup to
interface directly to you.  Switching this up for no apparent reason throws
a giant wrench into our operation.  With our staffing, we will be fubar
bundied for all you WW2 buffs out there.

I noticed that everyone in this thread, including this original post, is
coming from the standpoint of why not use git? while I'd like to ask you
the question, Why are you changing?

Ignoring the endless holy wars, some practical concerns that we have here
are the dismal support on native windows for git.  TortoiseSVN makes
browsing your changes and picking the ones we want extremely easy in a
graphical environment on the platform that you're built to provide
compilers for.  It just seems natural for a Windows Compiler Project to use
tools that... you know... work on windows.  (Yes, I know of msysgit.  My
statements stand.)

Another practical concern -- do we now have to checkout your entire
repository just to get one revision?  git lets you get All or Head.  What
about  the equivalent of 1234?  Will you provide documentation for users
like us to adapt to this new model?  Or are we stuck?

How will you handle all the various things that you currently distribute? 
You have a lot of stuff in your repository, and it all works nicely because
of how svn treats each directory as essentially a separate repo.  What are
you going to do about the branches, tags, and experimentals?

Have you even considered other distributed systems?  Mercurial, Bazaar?  Or
is it git all the way just because it's git?  Git is much more of a Do
what Linus says project, than it is a tool that's solving a problem.

I'd actually like to see you move to a more recent version of svn that has
a lot of new whiz-bang features that make it more desirable to stay with
the status quo.  Contrary to popular belief, git doesn't merge/branch any
better than svn, unless you compare brand new git to svn v1.0.

Finally... why not just set up a git mirror like so many other projects do?

And, this is just an observation from an admitted relic in this advanced
age (been doing this for over 40 years, I'm at the end of my career now..)
this looks like a spur of the moment idea that has inadequate planning and
far reaching consequences.  This is more like what a certain competitor of
yours often does -- from the hip radical change for the sake of change with
poor planning and no business case for it.  That only works when running
for president (ba dum!)

I've seen this happen many times over the decades, and the story is always
the same.  I guess I'm just hopeful that people today would learn from the
mistakes of those that came before them.  Or maybe the net just has no
place for an old engineer anymore.

Obviously, like I said, this is a minority post.  I realize that.  And it
will probably be met with very little that's positive.  But at least
understand that you have users here that aren't that vocal that would
appreciate you not jumping on the latest bandwagon.



--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.  Get 
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free.
http://p.sf.net/sfu/SauceLabs
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] mingw-w64 may move to git in the future

2014-04-29 Thread Ruben Van Boxem
2014-04-29 8:49 GMT+02:00 Rodny spillig...@gmx.com:

 JonY jon_y@... writes:

 
  Hi,
 
  mingw-w64 may migrate from svn to git in the future, seeing that sf can
  now do multiple repos per project.
 
  Structure wise, everything under trunk will still stay together in the
  new repo, but any externals, /experimental/* and /web may move into its
  own repo.
 
  Discuss.

 Hello, world.  First time poster, long time user.

 I know I'm in the minority, but I'd just like to say that I'm actually
 against this change.  We use your products in house here almost constantly
 (Bob's your uncle for that!), and we really love how easy it is to use your
 code base.  We always build our own toolchains, and we are setup to
 interface directly to you.  Switching this up for no apparent reason throws
 a giant wrench into our operation.  With our staffing, we will be fubar
 bundied for all you WW2 buffs out there.

 I noticed that everyone in this thread, including this original post, is
 coming from the standpoint of why not use git? while I'd like to ask you
 the question, Why are you changing?


The better  question you should ask yourself is: why is the open source
world changing? I'm not going to sum up the pro's and cons, you can find
them yourself. git is just a lot more flexible and robust. This does not
make it any better than any other distributed VCS, it just makes it
better (i.e. more flexible) than stuff like CVS/SVN/...



 Ignoring the endless holy wars, some practical concerns that we have here
 are the dismal support on native windows for git.  TortoiseSVN makes
 browsing your changes and picking the ones we want extremely easy in a
 graphical environment on the platform that you're built to provide
 compilers for.  It just seems natural for a Windows Compiler Project to use
 tools that... you know... work on windows.  (Yes, I know of msysgit.  My
 statements stand.)


You are aware that
a) TortoiseGit exists? Along with a bunch of other graphical clients
b) Visual Studio 2013 has native git integration?

I'd hardly say git doesn't work on Windows...


 Another practical concern -- do we now have to checkout your entire
 repository just to get one revision?  git lets you get All or Head.  What
 about  the equivalent of 1234?  Will you provide documentation for users
 like us to adapt to this new model?  Or are we stuck?


Google git for subversion users. There's a ton of migration help for you
and everyone. There are no hard numbered revisions, instead, there's
branches and tags and commit hashes, which offer the same flexibility.

There are things like a shallow clone (see git clone --depth=N), which
allows you to checkout the latest N commits. Note a git clone is often
smaller than the equivalent svn checkout, because git compacts the commit
history quite efficiently. See the previous mails about repo sizes.



 How will you handle all the various things that you currently distribute?
 You have a lot of stuff in your repository, and it all works nicely because
 of how svn treats each directory as essentially a separate repo.  What are
 you going to do about the branches, tags, and experimentals?

 Have you even considered other distributed systems?  Mercurial, Bazaar?  Or
 is it git all the way just because it's git?  Git is much more of a Do
 what Linus says project, than it is a tool that's solving a problem.

 I'd actually like to see you move to a more recent version of svn that has
 a lot of new whiz-bang features that make it more desirable to stay with
 the status quo.  Contrary to popular belief, git doesn't merge/branch any
 better than svn, unless you compare brand new git to svn v1.0.

 Finally... why not just set up a git mirror like so many other projects do?

 And, this is just an observation from an admitted relic in this advanced
 age (been doing this for over 40 years, I'm at the end of my career now..)
 this looks like a spur of the moment idea that has inadequate planning and
 far reaching consequences.  This is more like what a certain competitor of
 yours often does -- from the hip radical change for the sake of change with
 poor planning and no business case for it.  That only works when running
 for president (ba dum!)

 I've seen this happen many times over the decades, and the story is always
 the same.  I guess I'm just hopeful that people today would learn from the
 mistakes of those that came before them.  Or maybe the net just has no
 place for an old engineer anymore.

 Obviously, like I said, this is a minority post.  I realize that.  And it
 will probably be met with very little that's positive.  But at least
 understand that you have users here that aren't that vocal that would
 appreciate you not jumping on the latest bandwagon.


I'm sorry to say this, but git (or any other distributed VCS) isn't just
the latest bandwagon. There's a reason github is so popular. There's a
reason more than half (watch me pull statistics out of nowhere) of major
open source projects are 

Re: [Mingw-w64-public] mingw-w64 may move to git in the future

2014-04-29 Thread Matthew Brett
Hi,

On Mon, Apr 28, 2014 at 11:49 PM, Rodny spillig...@gmx.com wrote:
 JonY jon_y@... writes:


 Hi,

 mingw-w64 may migrate from svn to git in the future, seeing that sf can
 now do multiple repos per project.

 Structure wise, everything under trunk will still stay together in the
 new repo, but any externals, /experimental/* and /web may move into its
 own repo.

 Discuss.

 Hello, world.  First time poster, long time user.

 I know I'm in the minority, but I'd just like to say that I'm actually
 against this change.  We use your products in house here almost constantly
 (Bob's your uncle for that!), and we really love how easy it is to use your
 code base.  We always build our own toolchains, and we are setup to
 interface directly to you.  Switching this up for no apparent reason throws
 a giant wrench into our operation.  With our staffing, we will be fubar
 bundied for all you WW2 buffs out there.

 I noticed that everyone in this thread, including this original post, is
 coming from the standpoint of why not use git? while I'd like to ask you
 the question, Why are you changing?

 Ignoring the endless holy wars, some practical concerns that we have here
 are the dismal support on native windows for git.  TortoiseSVN makes
 browsing your changes and picking the ones we want extremely easy in a
 graphical environment on the platform that you're built to provide
 compilers for.  It just seems natural for a Windows Compiler Project to use
 tools that... you know... work on windows.  (Yes, I know of msysgit.  My
 statements stand.)

 Another practical concern -- do we now have to checkout your entire
 repository just to get one revision?  git lets you get All or Head.  What
 about  the equivalent of 1234?  Will you provide documentation for users
 like us to adapt to this new model?  Or are we stuck?

 How will you handle all the various things that you currently distribute?
 You have a lot of stuff in your repository, and it all works nicely because
 of how svn treats each directory as essentially a separate repo.  What are
 you going to do about the branches, tags, and experimentals?

 Have you even considered other distributed systems?  Mercurial, Bazaar?  Or
 is it git all the way just because it's git?  Git is much more of a Do
 what Linus says project, than it is a tool that's solving a problem.

 I'd actually like to see you move to a more recent version of svn that has
 a lot of new whiz-bang features that make it more desirable to stay with
 the status quo.  Contrary to popular belief, git doesn't merge/branch any
 better than svn, unless you compare brand new git to svn v1.0.

 Finally... why not just set up a git mirror like so many other projects do?

 And, this is just an observation from an admitted relic in this advanced
 age (been doing this for over 40 years, I'm at the end of my career now..)
 this looks like a spur of the moment idea that has inadequate planning and
 far reaching consequences.  This is more like what a certain competitor of
 yours often does -- from the hip radical change for the sake of change with
 poor planning and no business case for it.  That only works when running
 for president (ba dum!)

 I've seen this happen many times over the decades, and the story is always
 the same.  I guess I'm just hopeful that people today would learn from the
 mistakes of those that came before them.  Or maybe the net just has no
 place for an old engineer anymore.

 Obviously, like I said, this is a minority post.  I realize that.  And it
 will probably be met with very little that's positive.  But at least
 understand that you have users here that aren't that vocal that would
 appreciate you not jumping on the latest bandwagon.

Sorry, I am replying only because you've written your email in a way
you must have realized was near guaranteed to start a flame war, which
is very unlikely to be useful.

There was a time, maybe 5 years ago, when it was common to assert that
git was a fad and subversion was fine, but you must have noticed that
that conversation died off a long time ago.

I assume that you haven't used git or mercurial on a project with many
distributed developers.  For some reason it is very difficult to
explain in the abstract why DVCS is so much better in this situation
than centralized one-commit systems like svn.  It only becomes clear
after using these systems for a while.  In case it is helpful, there's
a very good explanation by Joel Spolsky (for mercurial) here:

http://hginit.com/00.html

See also Distributed Version Control is here to stay, baby
http://www.joelonsoftware.com/items/2010/03/17.html

Best,

Matthew

--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.  Get 
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for 

Re: [Mingw-w64-public] mingw-w64 may move to git in the future

2014-04-29 Thread Alberto Luaces
Rodny writes:

 Ignoring the endless holy wars, some practical concerns that we have here
 are the dismal support on native windows for git.  TortoiseSVN makes
 browsing your changes and picking the ones we want extremely easy in a
 graphical environment on the platform that you're built to provide
 compilers for.  It just seems natural for a Windows Compiler Project to use
 tools that... you know... work on windows.  (Yes, I know of msysgit.  My
 statements stand.)

Take git extensions for a spin:

https://code.google.com/p/gitextensions/

-- 
Alberto


--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.  Get 
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free.
http://p.sf.net/sfu/SauceLabs
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] mingw-w64 may move to git in the future

2014-04-29 Thread LRN
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 29.04.2014 11:31, Ruben Van Boxem wrote:
 On 2014-04-29 8:49 GMT+02:00 Rodny:
 
 JonY writes:
 
 
 Hi,
 
 mingw-w64 may migrate from svn to git in the future, seeing that sf 
 can now do multiple repos per project.
 
 Structure wise, everything under trunk will still stay together in the
 new repo, but any externals, /experimental/* and /web may move into
 its own repo.
 
 Discuss.
 
 Another practical concern -- do we now have to checkout your entire 
 repository just to get one revision?  git lets you get All or Head. What
 about  the equivalent of 1234?  Will you provide documentation for users
 like us to adapt to this new model?  Or are we stuck?
 
 
 Google git for subversion users. There's a ton of migration help for you
 and everyone. There are no hard numbered revisions, instead, there's 
 branches and tags and commit hashes, which offer the same flexibility.
 
 There are things like a shallow clone (see git clone --depth=N), which 
 allows you to checkout the latest N commits. Note a git clone is often 
 smaller than the equivalent svn checkout, because git compacts the commit
  history quite efficiently. See the previous mails about repo sizes.

He's right on this one. Just yesterday i was frustrated when i couldn't
download a *particular* revision of binutils to build. Shallow clones, as
mentioned, give you HEAD or something near HEAD or a tagged commit. Usually
i work around it by abusing the snapshot feature of a particular repo, but
sourceware had that disabled. AND their snapshot tarballs on ftp are rolling
(meaning i can't just download a particular snapshot that way either, they
change over time).

That said, this just breaks the use-case when you have to work with a
particular revision of upstream for the first time.
If you need a tag or the HEAD - it's fine, since shallow clones help.
If you've done this before - also fine, since you have the repo clone, and
just need to update and checkout to the commit you need.

And since we're speaking of revisions, for the record, it should be possible
to emulate incremental revision numbers in git, as long as master is kept 
linear.

- -- 
O ascii ribbon - stop html email! - www.asciiribbon.org
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (MingW32)

iQEcBAEBAgAGBQJTX2V5AAoJEOs4Jb6SI2CwMskIANtdlBEP1cTmVOL8lDzjJohx
3Mb2Ah+z2BSn2TTh96R/N2pag15uje6YmRkGJRRTUlv03jI4XTn50sj0AJyFNWko
SskOxkBUbivKIP7k9qJFTAyvMpsf4n9hHAuE/PJ7QjBySBXwZsmxP7F8u7Tarh9E
QqHcbrh4W+AFYQFNqRqQVHFyBg4zLPbPLIPOQZhiMp7qecSsPAOm2L5UG2AxPh+K
/YlBadG1DsP0qaSCiiz9Fhg2ijvWMii0U2cehrG9dgUmzrGiCuQZNiw2NF34YPnm
A7iJUPSKxsb6h23y0wATiK3p5X5R+yTwOE259oX2n81bnoQ0QUljr0VOX37iO+M=
=JZOG
-END PGP SIGNATURE-

--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.  Get 
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free.
http://p.sf.net/sfu/SauceLabs
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] mingw-w64 may move to git in the future

2014-04-29 Thread JonY
On 4/29/2014 14:49, Rodny wrote:
 JonY jon_y@... writes:
 

 Hi,

 mingw-w64 may migrate from svn to git in the future, seeing that sf can
 now do multiple repos per project.

 Structure wise, everything under trunk will still stay together in the
 new repo, but any externals, /experimental/* and /web may move into its
 own repo.

 Discuss.
 
 Hello, world.  First time poster, long time user.
 
 I know I'm in the minority, but I'd just like to say that I'm actually
 against this change.  We use your products in house here almost constantly
 (Bob's your uncle for that!), and we really love how easy it is to use your
 code base.  We always build our own toolchains, and we are setup to
 interface directly to you.  Switching this up for no apparent reason throws
 a giant wrench into our operation.  With our staffing, we will be fubar
 bundied for all you WW2 buffs out there.
 
 I noticed that everyone in this thread, including this original post, is
 coming from the standpoint of why not use git? while I'd like to ask you
 the question, Why are you changing?
 

Because it was a pain to track down patches applied to other branches
and reapply it again and again, cherry-pick is god sent. Not to mention
merging is quick and simple. It is also far far easier to do a long term
private branch in git than in SVN, not to mention, multi-part commit
patches are nice.

 Ignoring the endless holy wars, some practical concerns that we have here
 are the dismal support on native windows for git.  TortoiseSVN makes
 browsing your changes and picking the ones we want extremely easy in a
 graphical environment on the platform that you're built to provide
 compilers for.  It just seems natural for a Windows Compiler Project to use
 tools that... you know... work on windows.  (Yes, I know of msysgit.  My
 statements stand.)
 

TortoiseGit. And no, you are not expected to work using Windows tools
just because it is for Windows. You'd be surprised to learn most of the
changes are not done on Windows at all.

 Another practical concern -- do we now have to checkout your entire
 repository just to get one revision?  git lets you get All or Head.  What
 about  the equivalent of 1234?  Will you provide documentation for users
 like us to adapt to this new model?  Or are we stuck?
 

Just grab it once (or use a local cache) and then checkout the revision
you want.

 How will you handle all the various things that you currently distribute? 
 You have a lot of stuff in your repository, and it all works nicely because
 of how svn treats each directory as essentially a separate repo.  What are
 you going to do about the branches, tags, and experimentals?
 

Already mentioned in the original email.

 Have you even considered other distributed systems?  Mercurial, Bazaar?  Or
 is it git all the way just because it's git?  Git is much more of a Do
 what Linus says project, than it is a tool that's solving a problem.
 

What does Linus have to do with the decision? If anything, I'll use it
because Linus recommends it.

 I'd actually like to see you move to a more recent version of svn that has
 a lot of new whiz-bang features that make it more desirable to stay with
 the status quo.  Contrary to popular belief, git doesn't merge/branch any
 better than svn, unless you compare brand new git to svn v1.0.
 
 Finally... why not just set up a git mirror like so many other projects do?
 

Because git commits cannot easily push back to SVN, and great, you have
all the power of git and the inconvenience of SVN.




signature.asc
Description: OpenPGP digital signature
--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.  Get 
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free.
http://p.sf.net/sfu/SauceLabs___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] How to do delay load in Mingw-w64

2014-04-29 Thread YIRAN LI
Hi friends,

I'm now moving my ffmpeg build from MinGW to Mingw-w64 because the latter
supports delay load. To be a bit more specific, ffmpeg could dynamically
link to many external libraries, but I want these external libs be
downloaded and used only when they are used (functions called).

For example, there'a libspeex for which I configured with ./configure
--enable-static=no --prefix=/mingw, so these files are generated
libspeex-1.dll, libspeex.dll.a libspeex.la.

According to this article
http://mingw-users.1079350.n2.nabble.com/Delayloading-windows-libraries-Finally-the-real-deal-td7472183.html,
what I need to do is:

1. gendef libspeex-1.dll to get the libspeex-1.def
2. dlltool --def libspeex-1.def --output-delaylib libspeex.dll.a

so the old libspeex.dll.a is replaced by the newly generated one, and 'make
install' will install header files and all lib files into mingw folder.

But what I want to know is, what's the libspeex.la ? Should I also
regenerate it or just install the old ones?

Great thanks
--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.  Get 
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free.
http://p.sf.net/sfu/SauceLabs___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] How to do delay load in Mingw-w64

2014-04-29 Thread lh_mouse
0) http://stackoverflow.com/questions/1238035/what-is-libtools-la-file-for
1) Practically, I don't think .la files are useful on Windows. Neither do 
.dll.a files.

--   
Best regards,
lh_mouse
2014-04-29

-
发件人:YIRAN LI mrfun.ch...@gmail.com
发送日期:2014-04-29 18:34
收件人:mingw-w64-public
抄送:
主题:[Mingw-w64-public] How to do delay load in Mingw-w64

Hi friends,

I'm now moving my ffmpeg build from MinGW to Mingw-w64 because the latter
supports delay load. To be a bit more specific, ffmpeg could dynamically
link to many external libraries, but I want these external libs be
downloaded and used only when they are used (functions called).

For example, there'a libspeex for which I configured with ./configure
--enable-static=no --prefix=/mingw, so these files are generated
libspeex-1.dll, libspeex.dll.a libspeex.la.

According to this article
http://mingw-users.1079350.n2.nabble.com/Delayloading-windows-libraries-Finally-the-real-deal-td7472183.html,
what I need to do is:

1. gendef libspeex-1.dll to get the libspeex-1.def
2. dlltool --def libspeex-1.def --output-delaylib libspeex.dll.a

so the old libspeex.dll.a is replaced by the newly generated one, and 'make
install' will install header files and all lib files into mingw folder.

But what I want to know is, what's the libspeex.la ? Should I also
regenerate it or just install the old ones?

Great thanks




--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.  Get 
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free.
http://p.sf.net/sfu/SauceLabs
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] How to do delay load in Mingw-w64

2014-04-29 Thread LRN
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 29.04.2014 14:34, YIRAN LI wrote:
 Hi friends,
 
 I'm now moving my ffmpeg build from MinGW to Mingw-w64 because the latter 
 supports delay load. To be a bit more specific, ffmpeg could dynamically 
 link to many external libraries, but I want these external libs be 
 downloaded and used only when they are used (functions called).
 
 For example, there'a libspeex for which I configured with ./configure 
 --enable-static=no --prefix=/mingw, so these files are generated 
 libspeex-1.dll, libspeex.dll.a libspeex.la.
 
 According to this article 
 http://mingw-users.1079350.n2.nabble.com/Delayloading-windows- 
 libraries-Finally-the-real-deal-td7472183.html,
 
 what I need to do is:
 
 1. gendef libspeex-1.dll to get the libspeex-1.def 2. dlltool --def 
 libspeex-1.def --output-delaylib libspeex.dll.a
 
 so the old libspeex.dll.a is replaced by the newly generated one, and 
 'make install' will install header files and all lib files into mingw 
 folder.

A more elegant (or braindead, YMMV) solution is to hack configure.ac of the
package in question and add this for *-*-mingw* hosts:
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o
$output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --output-def
- -Xlinker $lib.def  $DLLTOOL --dllname $soname --def $lib.def
- --output-delaylib $lib'
# If the export-symbols file already is a .def file (1st line
# is EXPORTS), use it as is; otherwise, prepend...
archive_expsym_cmds='if test x`$SED 1q $export_symbols` = xEXPORTS; then
  cp $export_symbols $output_objdir/$soname.def;
else
  echo EXPORTS  $output_objdir/$soname.def;
  cat $export_symbols  $output_objdir/$soname.def;
fi~
$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o
$output_objdir/$soname ${wl}--enable-auto-image-base;
$DLLTOOL --dllname $soname --def $output_objdir/$soname.def --output-delaylib
$lib'

This code is a verbatim copy of libtool that is patched to create a
delay-load import library instead of the normal import library. This takes
advantage of the fact that libtool does have a .def file at hand already, and
thus there's no need to call gendef.

 
 But what I want to know is, what's the libspeex.la ? Should I also 
 regenerate it or just install the old ones?

.la files are libtool helpers.
IMO they are useful (roughly as useful as libtool itself) when you build a
package, and Makefile.am files SHOULD refer to .la files by name when needing
to link to a library produced within the same package.
However, they are a hindrance when linking package libraries from outside (as
they remember all kinds of nasty details, absolute paths and such). Therefore
i strongly recommend against installing .la files (i routinely purge anything
a package installs, looking for .la files and deleting them with extreme
prejudice). dll.a import (with or without delay-loading) libraries in
/mingw/lib should be enough (and for anything more complex there's pkgconfig).

- -- 
O ascii ribbon - stop html email! - www.asciiribbon.org
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (MingW32)

iQEcBAEBAgAGBQJTX4+cAAoJEOs4Jb6SI2CwMLsIAMGDB4a1QWb0RO7A4OrjF0XX
S00vzJcKV3cY+S5iN4SIlgJSxqyXEAq79DjYzVCvtMvNyY0RhVDvmFxU5rPCFtNU
N5fDTEEdeya/z08zIzfENIrCRRH70yYskKYWDJXlqCxXOBVfozaPOFawJEoEMd6x
1DXCkvVO6ivlSfPM/qMwTSRJbFHAp3Ia+MyicFtxmXZK2bJ6KRMdJU2G2Ntei+xG
MWpc6zud6sLjqTweeWEzdod2ThEY6/o9TR+0Z12JR2sFeTfSaUDEpGEq6Wsi+poP
maVZk/qb3yKZT8iy+zTPWRnvvl90ZQJbAFT/9Ckrgmq+wfev8GKarUnGG9VI6DI=
=2L2j
-END PGP SIGNATURE-

--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.  Get 
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free.
http://p.sf.net/sfu/SauceLabs
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] How to do delay load in Mingw-w64

2014-04-29 Thread Adrien Nader
On Tue, Apr 29, 2014, LRN wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 On 29.04.2014 14:34, YIRAN LI wrote:
  Hi friends,
  
  I'm now moving my ffmpeg build from MinGW to Mingw-w64 because the latter 
  supports delay load. To be a bit more specific, ffmpeg could dynamically 
  link to many external libraries, but I want these external libs be 
  downloaded and used only when they are used (functions called).
  
  For example, there'a libspeex for which I configured with ./configure 
  --enable-static=no --prefix=/mingw, so these files are generated 
  libspeex-1.dll, libspeex.dll.a libspeex.la.
  
  According to this article 
  http://mingw-users.1079350.n2.nabble.com/Delayloading-windows- 
  libraries-Finally-the-real-deal-td7472183.html,
  
  what I need to do is:
  
  1. gendef libspeex-1.dll to get the libspeex-1.def 2. dlltool --def 
  libspeex-1.def --output-delaylib libspeex.dll.a
  
  so the old libspeex.dll.a is replaced by the newly generated one, and 
  'make install' will install header files and all lib files into mingw 
  folder.
 
 A more elegant (or braindead, YMMV) solution is to hack configure.ac of the
 package in question and add this for *-*-mingw* hosts:
 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o
 $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --output-def
 - -Xlinker $lib.def  $DLLTOOL --dllname $soname --def $lib.def
 - --output-delaylib $lib'
 # If the export-symbols file already is a .def file (1st line
 # is EXPORTS), use it as is; otherwise, prepend...
 archive_expsym_cmds='if test x`$SED 1q $export_symbols` = xEXPORTS; then
   cp $export_symbols $output_objdir/$soname.def;
 else
   echo EXPORTS  $output_objdir/$soname.def;
   cat $export_symbols  $output_objdir/$soname.def;
 fi~
 $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o
 $output_objdir/$soname ${wl}--enable-auto-image-base;
 $DLLTOOL --dllname $soname --def $output_objdir/$soname.def --output-delaylib
 $lib'
 
 This code is a verbatim copy of libtool that is patched to create a
 delay-load import library instead of the normal import library. This takes
 advantage of the fact that libtool does have a .def file at hand already, and
 thus there's no need to call gendef.
 
  
  But what I want to know is, what's the libspeex.la ? Should I also 
  regenerate it or just install the old ones?
 
 .la files are libtool helpers.
 IMO they are useful (roughly as useful as libtool itself) when you build a
 package, and Makefile.am files SHOULD refer to .la files by name when needing
 to link to a library produced within the same package.
 However, they are a hindrance when linking package libraries from outside (as
 they remember all kinds of nasty details, absolute paths and such). Therefore
 i strongly recommend against installing .la files (i routinely purge anything
 a package installs, looking for .la files and deleting them with extreme
 prejudice). dll.a import (with or without delay-loading) libraries in
 /mingw/lib should be enough (and for anything more complex there's pkgconfig).

Yes, more and more software distribution are moving further and further
away from .la files. It would be good to not add new dependencies to
libtool.

-- 
Adrien Nader

--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.  Get 
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free.
http://p.sf.net/sfu/SauceLabs
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Unattended install with mingw-builds-install.exe

2014-04-29 Thread Paul Henri
niXman i.nixman@... writes:

 
 2013/9/20 Martin Fiers:
  Can we know what's the
  installer type (like, msi, installshield, inno...).
 
 CreateInstall:
 http://www.createinstall.com/
 

Hi niXman,

1) Can you please provide the script .ci used to build mingw-install.exe

2) In the current state, is that it is possible that  CreateInstall allow to
add another URL repository.txt file as argument? 
for example: mingw-intall.exe -url=another-local-repository.txt

3) You do not know a free alternative that would make a similar installation?

Thanks and Regards,

Paul


--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.  Get 
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free.
http://p.sf.net/sfu/SauceLabs
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] Advice on accuracy of exp function

2014-04-29 Thread Matthew Brett
Hi,

I'm sorry to ask this question without more information, but I'm
hoping you can give me an idea what more information I need.

Some of us got very interested in using Mingw-w64 as the standard
compiler for Python numerical tools such as numpy and scipy:

https://github.com/numpy/numpy/wiki
http://www.mail-archive.com/numpy-discussion@scipy.org/msg44967.html

One question that came up was the accuracy of the mingw exp function:

http://www.mail-archive.com/numpy-discussion@scipy.org/msg44950.html

I believe this is implemented here:

http://sourceforge.net/p/mingw-w64/code/HEAD/tree/trunk/mingw-w64-crt/math/exp.def.h

It looks as if this implementation is slightly less accurate than
other implementations on OSX and Linux:

http://www.mail-archive.com/numpy-discussion@scipy.org/msg44987.html

Specifically, the Linux implementation achieves 100% floating point
accuracy, whereas the Mingw-w64 implementation gets about 80% of
values exactly (floating point) correct, with the remainder off by one
unit at the last place (ULP).

I writing to ask whether I should investigate this further to see if
another implementation would give better accuracy for similar speed.
Or do y'all consider the current accuracy good enough?

Cheers,

Matthew

--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.  Get 
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free.
http://p.sf.net/sfu/SauceLabs
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Advice on accuracy of exp function

2014-04-29 Thread Kai Tietz
2014-04-29 21:16 GMT+02:00 Matthew Brett matthew.br...@gmail.com:
 Hi,

 I'm sorry to ask this question without more information, but I'm
 hoping you can give me an idea what more information I need.

 Some of us got very interested in using Mingw-w64 as the standard
 compiler for Python numerical tools such as numpy and scipy:

 https://github.com/numpy/numpy/wiki
 http://www.mail-archive.com/numpy-discussion@scipy.org/msg44967.html

 One question that came up was the accuracy of the mingw exp function:

 http://www.mail-archive.com/numpy-discussion@scipy.org/msg44950.html

 I believe this is implemented here:

 http://sourceforge.net/p/mingw-w64/code/HEAD/tree/trunk/mingw-w64-crt/math/exp.def.h

 It looks as if this implementation is slightly less accurate than
 other implementations on OSX and Linux:

 http://www.mail-archive.com/numpy-discussion@scipy.org/msg44987.html

 Specifically, the Linux implementation achieves 100% floating point
 accuracy, whereas the Mingw-w64 implementation gets about 80% of
 values exactly (floating point) correct, with the remainder off by one
 unit at the last place (ULP).

Hmm, well, we use here variant provided by netbsd.  This 1 ULP thing
isn't necessarily an inaccuracy in general.  Mostly it might be either
an issue of rounding, or of method you use to display them.  If you
want more accurate value-print I would recommment to use the
__mingw_(printf) functions instead of the MS-C-runtime one.  Issue
here is that values by MS-printf getting rounded different (and
sometimes inaccurate).

 I writing to ask whether I should investigate this further to see if
 another implementation would give better accuracy for similar speed.
 Or do y'all consider the current accuracy good enough?

Of course we are interested in approving our math accuracy.  It would
be great to improve it.  Nevertheless keep please in mind that not all
licenses (and so not all implementations) are acceptable for us.
And for such patches some testcases would be important, too.
Another pretty important thing here is also the
calculation-performance.  Another interesting aspect of current
implementation would be to make calculation table-based without use of
x87-FPU instructions (especially for x64).

 Cheers,

 Matthew

Cheers,
Kai

--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.  Get 
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free.
http://p.sf.net/sfu/SauceLabs
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Advice on accuracy of exp function

2014-04-29 Thread Matthew Brett
Hi,

On Tue, Apr 29, 2014 at 2:08 PM, Kai Tietz ktiet...@googlemail.com wrote:
 2014-04-29 21:16 GMT+02:00 Matthew Brett matthew.br...@gmail.com:
 Hi,

 I'm sorry to ask this question without more information, but I'm
 hoping you can give me an idea what more information I need.

 Some of us got very interested in using Mingw-w64 as the standard
 compiler for Python numerical tools such as numpy and scipy:

 https://github.com/numpy/numpy/wiki
 http://www.mail-archive.com/numpy-discussion@scipy.org/msg44967.html

 One question that came up was the accuracy of the mingw exp function:

 http://www.mail-archive.com/numpy-discussion@scipy.org/msg44950.html

 I believe this is implemented here:

 http://sourceforge.net/p/mingw-w64/code/HEAD/tree/trunk/mingw-w64-crt/math/exp.def.h

 It looks as if this implementation is slightly less accurate than
 other implementations on OSX and Linux:

 http://www.mail-archive.com/numpy-discussion@scipy.org/msg44987.html

 Specifically, the Linux implementation achieves 100% floating point
 accuracy, whereas the Mingw-w64 implementation gets about 80% of
 values exactly (floating point) correct, with the remainder off by one
 unit at the last place (ULP).

 Hmm, well, we use here variant provided by netbsd.

Just to check - you mean the Mingw-w64 assembly should give identical
results to this function in C?

http://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/lib/libm/src/e_exp.c

 This 1 ULP thing
 isn't necessarily an inaccuracy in general.  Mostly it might be either
 an issue of rounding, or of method you use to display them.  If you
 want more accurate value-print I would recommment to use the
 __mingw_(printf) functions instead of the MS-C-runtime one.  Issue
 here is that values by MS-printf getting rounded different (and
 sometimes inaccurate).

Yes, sorry, I wasn't very clear.  To work out the correct values I
used a multiple precision math library in Python working at 100
decimal digits of precision:

https://gist.github.com/matthew-brett/11301221

I didn't use printf for these values, they are being manipulated as
doubles in Python, with the values for exp comping from calls to exp
via the Python code. So, I think these accuracy values are correct,
and I've checked with equivalent tests for multiplication (guaranteed
to closest floating point value), but I'm happy to hear otherwise.

 I writing to ask whether I should investigate this further to see if
 another implementation would give better accuracy for similar speed.
 Or do y'all consider the current accuracy good enough?

 Of course we are interested in approving our math accuracy.  It would
 be great to improve it.  Nevertheless keep please in mind that not all
 licenses (and so not all implementations) are acceptable for us.
 And for such patches some testcases would be important, too.
 Another pretty important thing here is also the
 calculation-performance.  Another interesting aspect of current
 implementation would be to make calculation table-based without use of
 x87-FPU instructions (especially for x64).

OK - thanks - then I will investigate further and let you know what I
find, if anything.

Best,

Matthew

--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.  Get 
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free.
http://p.sf.net/sfu/SauceLabs
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public