[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: MSVC status
From: |
Peter Rosin |
Subject: |
Re: MSVC status |
Date: |
Fri, 13 Aug 2010 13:09:02 +0200 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100802 Thunderbird/3.1.2 |
Hi Chris,
Den 2010-08-13 12:26 skrev Christopher Hulbert:
> On Mon, Aug 9, 2010 at 3:55 PM, Peter Rosin <address@hidden> wrote:
>> Hi!
>>
>> Christopher Hulbert asked for some MSVC status in a private message,
>> but I figured more people might be interested. So, I'm posting a
>> testsuite log from libtool master.
>>
>> It was configured with:
>>
>> ../configure \
>> CC="/c/cygwin/home/peda/automake/git/automake/lib/compile cl" CFLAGS="-MD
>> -Zi -EHsc" \
>> CXX="/c/cygwin/home/peda/automake/git/automake/lib/compile cl" CXXFLAGS="-MD
>> -Zi -EHsc" \
>> LD=link NM="dumpbin -symbols" STRIP=: \
>> AR="/c/cygwin/home/peda/automake/git/automake/lib/archive lib" RANLIB=:
>> F77=no FC=no GCJ=no
>>
>> Don't be fooled by /c/cygwin in the above paths, or in the log for that
>> matter. This was all using MSYS/MSVC. /c/cygwin is just where the files
>> live on my system.
>>
>> I do not have automake installed in my MSYS environment, so there are
>> a fair number of skips caused by that. I also did not run the old
>> testsuite as it has to many variables that are not imported correctly
>> from dlls.
>>
>> The compile script above is from the master branch of automake, and
>> the archive script is from this pending automake patch:
>> http://www.mail-archive.com/address@hidden/msg02374.html
>>
>> (Note that the final name of the latter script might not be 'archive')
>>
>> Further, there are two things left todo, that were done in the old
>> pr-msvc-support branch that I have identified so far.
>>
>> 1. libtool needs to support archivers with @FILE support, since
>> libtool currently falls back to piecewise linking for long
>> command lines. MSVC doesn't support piecewise linking. I have a
>> patch sitting on disk that I fiddle with from time to time, expect
>> it to appear on a list near you when the above pending automake
>> patch is commited, if not sooner.
>>
>> 2. Support for other C++ file extensions, MSVC only handles .cpp
>> files as C++ code without feeding it a hint. But this change is
>> best done in the compile script so it's a thing for automake...
>>
>> Anyway, I have attached a full testsuite log.
>
> Attached are my logs. I am building from cygwin. I have not yet looked
> into any of the failures. I believe your logs had 28 failures with 22
> expected. I don't think all of our failures line up though. Note that
> I ran it once without setting --host (testsuite.log.bz2), and once
> setting --host=i686-pc-mingw32 (testsuite_cross.log.bz2).
You will not get comparable results on Cygwin. MSYS has automatic
path conversion when it invokes Windows binaries that simply isn't
there in Cygwin. So, you are in unsupported territory. As an
example, test 38 "Link order test" fails for you like this (quoting
the interesting lines):
libtool: link: /apps/autotools/automake/lib/compile cl -o src/.libs/b-0.dll
src/.libs/b.obj -L/apps/autotools/libtool/tests/testsuite.dir/038/old/lib
/apps/autotools/libtool/tests/testsuite.dir/038/old/lib/cee-0.lib
@src/.libs/b-0.dll.exp -Wl,-DLL
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
cl -link -EXPORT:b_old
cl : Command line warning D9002 : ignoring unknown option
'/apps/autotools/libtool/tests/testsuite.dir/038/old/lib/cee-0.lib'
Microsoft (R) Incremental Linker Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
/out:src/.libs/b-0.dll
-EXPORT:b_old
-LIBPATH:C:/cygwin/apps/autotools/libtool/tests/testsuite.dir/038/old/lib
-DLL
src/.libs/b.obj
Creating library src/.libs/b-0.lib and object src/.libs/b-0.exp
b.obj : error LNK2001: unresolved external symbol __imp__c
src/.libs/b-0.dll : fatal error LNK1120: 1 unresolved externals
Notice how MSVC can't find the absolute path:
/apps/autotools/libtool/tests/testsuite.dir/038/old/lib/cee-0.lib
MSYS would have converted that for you. Corresponding snippet when
I run under MSYS:
libtool: link: /c/cygwin/home/peda/automake/git/automake/lib/compile cl -o
src/.libs/b-0.dll src/.libs/b.obj
-L/c/cygwin/home/peda/libtool/git/libtool-msvc/msvc/tests/testsuite.dir/038/old/lib
/c/cygwin/home/peda/libtool/git/libtool-msvc/msvc/tests/testsuite.dir/038/old/lib/cee-0.lib
@src/.libs/b-0.dll.exp -Wl,-DLL
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
cl -link -EXPORT:b_old
Microsoft (R) Incremental Linker Version 8.00.50727.762
Copyright (C) Microsoft Corporation. All rights reserved.
/out:src/.libs/b-0.dll
-EXPORT:b_old
-LIBPATH:c:/cygwin/home/peda/libtool/git/libtool-msvc/msvc/tests/testsuite.dir/038/old/lib
-DLL
src/.libs/b.obj
c:/cygwin/home/peda/libtool/git/libtool-msvc/msvc/tests/testsuite.dir/038/old/lib/cee-0.lib
Creating library src/.libs/b-0.lib and object src/.libs/b-0.exp
And then the test proceeds to successful completion. Notice how cl
lists c:/cygwin/..../038/old/lib/cee-0.lib as input even if libtool
never did anything with /c/cygwin/..../038/old/lib/cee-0.lib
I expect many of your failures to be similar. In short, you need
to use MSYS instead of Cygwin to get matching behaviour.
Cheers,
Peter