[Top][All Lists]

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

[sr #108558] libtool nm test does not really work for W32 versions of nm

From: LRN
Subject: [sr #108558] libtool nm test does not really work for W32 versions of nm
Date: Fri, 02 May 2014 08:12:54 +0000
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0

Follow-up Comment #2, sr #108558 (project libtool):

I was not aware of the extent to which Cygwin is mangling
commandlines of pure-W32 programs it runs (since i don't
really use Cygwin; i do know it does some kind of conversion;
apparently, only in one direction). Evidently, it does not
replace /dev/null with nul. In which case - yes, this only
affects MSYS.

> It would be easier to work around this if the native MinGW nm
> reported some kind of error message involving 'NUL', so that
> the case pattern could be extended.
I can come up with a fix for binutils. However, upstreaming it
would be difficult, i expect. In fact i did make a patch: right
now my hack makes it open the file, feed the fd to isatty(), and if
it turns to not to be a real file, it checks whether its name
is "nul" and replaces that with "/dev/null", so the script gets
the output it expects. As you may imagine, this is never going to
be accepted upstream.

The isatty() part might be acceptable (though i expect someone
to point out that opening files may be a performance hit), and
in that case libtool can just check for 'nul'.

> Granted, that would not fix
> the bug for old tool chains, but the bug has existed for a very
> long time and you can always work around it with an explicit
> NM=...
Yes. Not only NM=..., but you can also let it fall back to
*-pc-msys-nm, which totally worked, and may even continue to
work for most users (which have matching MSYS and MinGW toolchains).

> The alternative is for libtool use some other non-existant
> or otherwise special file on MSYS, when it is trying to work out
> if nm supports -B. I don't know what that file would be though,
> and it always feels a little bit icky to special case things. 

Well, in MSYS2 you can simply do:
nm -B /dev/thisfilebetternotexistotherwiseyoullbeintrouble
and get satisfactory results (file name and 'No such file'
in the output).

Can't say anything about MSYS1, haven't used it for some time.


Reply to this item at:


  Message sent via/by Savannah

reply via email to

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