libtool-patches
[Top][All Lists]
Advanced

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

RE: Libtool: Microsoft dumpbin as name lister


From: Peter Ekberg
Subject: RE: Libtool: Microsoft dumpbin as name lister
Date: Wed, 21 Sep 2005 16:23:08 +0200

Ping, almost a month, I don't think I got a clear yes/no on this
One before the discussion wandered off. Only the suggestion to
detect Microsoft link seperately, but that's a much bigger change
and I'd like to do that later<tm>.

Cheers,
Peter

* Peter Ekberg wrote on Tuesday, August 23, 2005 07:29 CEST:
> Tim Van Holder wrote:
> > >>>Regarding dumpbin not being present in the 2003 version, I
> > >>>*think* it's just missing from the free toolkit and that it is
> > >>>still going strong in "the real" releases of Visual Studio.
> > >>
> > >>OK.  I just can't test it then.
> > >>
> > >>
> > >>>>Also, there seem to be third-party programs named `dumpbin'.  
> > >>>>Does your1> test av     oid them or do they work with 
> > >>
> > >>your macro?  Are
> > >>
> > >>>they in
> > >>>
> > >>>>wide-spread use?  (We can just wait till someone reports 
> > >>
> > >>a bug, if you
> > >>
> > >>>>don't know; but maybe you do, or I just missed that info.)
> > >>>
> > >>>Hmm, I was not aware of other dumpbins, so if they are similar
> > >>>there might be a problem.
> > >>
> > >>Completely untested (and no idea about trustworthiness):
> > >>http://www.freedownloadscenter.com/Best/coff-dumpbin.html
> 
> I meant to mention (but forgot) that the executable in the
> above link appears to be named libdump (but I haven't actually
> installed it so I might be mistaken...)
> 
> > >>>But, as the test is currently, the located dumpbin must
> > >>>not choke on the -symbols option and it must output a line
> > >>>with both "External" and "some_variable" on it. So false
> > >>>positives seem unlikely to me, but the test can always be
> > >>>hardened.
> > 
> > FYI, the dumpbin.exe provided by Visual C++ is really just a stub
> > that calls link.exe (rather like symlinking unzip as zipinfo).
> > 
> > Running "link /dump" has the same effect as running "dumpbin"; so
> > perhaps checking for MS Link is enough - if you have identified
> > the MS linker, you can use it to list symbols (and I imagine
> > libtool may need to know about the linker anyway).
> 
> Oook. I guess dumpbin is available (but slightly hidden) in the
> free toolkit after all...
> 
> This info made me look at the dumpbin-as-name-lister patch again
> and I found an issue with it...
> 
> I had a vague recollection of a good reason not to change the
> checking msg from "checking for BSD-compatible nm..." to the
> new "checking for BSD- or MS-compatible name lister (nm)..."
> but could not pinpoint it in memory when Ralf suggested it.
> Now I remember and the reason is that I couldn't figure out a
> way to use AC_CHECK_TOOL within the AC_CACHE_CHECK for nm, so
> I added a new check after the check for nm and modified the
> check for nm to return "no" instead of "nm" if no BSD nm was
> found. Then the change to "no" was lost when I forked out the
> patch for the big patch (sorry, too many trees over here) and
> I didn't do enough testing with the forked out patch.
> 
> Anyway, the problem with the new checking msg is that the
> output from configure is a bit strange if nm is not found,
> but dumpbin is:
> 
> checking for BSD- or MS-compatible name lister (nm)... no
> checking for dumpbin... dumpbin -symbols
> checking the name lister (dumpbin -symbols) interface... MS dumpbin
> 
> However, the old message is strange when dumpbin is specified
> by the user with NM="dumpbin -symbols":
> 
> checking for BSD-compatible nm... dumpbin -symbols
> checking the name lister (dumpbin -symbols) interface... MS dumpbin 
> 
> I don't know which is best... Anyway, ignoring the somewhat strange
> output for a bit, is this ok for HEAD?
> 
> 
> 2005-08-23  Peter Ekberg  <address@hidden>
> 
>       * libltdl/m4/libtool.m4 (LT_PATH_NM): Fix autodetection of
>       dumpbin and also check for "link -dump -symbols" as a synonym
>       for "dumpbin -symbols".
> 
> Index: libltdl/m4/libtool.m4
> ===================================================================
> RCS file: /cvsroot/libtool/libtool/libltdl/m4/libtool.m4,v
> retrieving revision 1.1
> diff -u -r1.1 libtool.m4
> --- libltdl/m4/libtool.m4       22 Aug 2005 22:33:35 -0000      1.1
> +++ libltdl/m4/libtool.m4       23 Aug 2005 05:16:51 -0000
> @@ -2897,13 +2897,13 @@
>      fi
>    done
>    IFS="$lt_save_ifs"
> -  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
> +  : ${lt_cv_path_NM=no}
>  fi])
>  if test "$lt_cv_path_NM" != "no"; then
>    NM="$lt_cv_path_NM"
>  else
>    # Didn't find any BSD compatible name lister, look for dumpbin.
> -  AC_CHECK_TOOL(DUMPBIN, [dumpbin -symbols], :)
> +  AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"],
> :)
>    AC_SUBST([DUMPBIN])
>    if test "$DUMPBIN" != ":"; then
>      NM="$DUMPBIN"
> 
> Cheers,
> Peter




reply via email to

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