Build issues (have followed instructions), help would be much appreciated

瀏覽次數:339 次
跳到第一則未讀訊息

Christopher Gunn

未讀,
2014年2月27日 上午8:29:332014/2/27
收件者:wince...@googlegroups.com
Hi all,

Any help with this would be much appreciated. I have downloaded and installed the following tools as per the build instructions:
  1. python-2.7.6
  2. ActivePerl-5.18.1.1800-MSWin32-x86-64int-297570
  3. cmake-2.8.12.2-win32-x86
  4. win_flex_bison-latest
  5. gperf-3.0.1
Into a Windows Virtual PC, running 32bit Windows XP SP3. I chose this because I thought using a 32bit XP machine would present less issues, and also because I wanted a 'clean' OS for the development environment. I downloaded the WebKit source of a known 'green' revision from SVN.

There are no spaces in any tool / src paths, and my PATH variable contains the tools.

Visual Studio 2008 is installed with C# and C++ language development options enabled. My available target platforms are 'Pocket PC 2003', 'Windows CE', 'Windows Mobile 5.0 Smartphone SDK', 'Windows Mobile 6 Professional SDK', 'Windows Mobile 6.5.3 Professional DTK' and 'STANDARDSDK_500'.

Installed SDKs are (listed from 'Add or Remove Programs'):
  1. Standard SDK for Windows CE 5.0
  2. Windows Mobile 5.0 SDK R2 for Pocket PC
  3. Windows Mobile 5.0 SDK R2 for Smartphone
  4. Windows Mobile 6 Professional SDK
  5. Windows Mobile 6.5.3 Professional DTK
This is the output of my build at the command line:

C:\WebKitBuild>cmake -G "Visual Studio 9 2008 Windows Mobile 6 Professional SDK
(ARMV4I)" -DPORT=WinCE -D3RDPARTY_DIR=C:/webkitthirdparty C:\WebKit
-- Found BISON: C:/WKPF/WinFlexBison/win_bison.exe (found version "2.7")
-- Found FLEX: C:/WKPF/WinFlexBison/win_flex.exe (found version "2.5.37")
-- Found Gperf: C:/WKPF/GnuWin32/bin/gperf.exe
-- Found Perl: C:/Perl/bin/perl.exe (found version "5.18.1")
-- Found PythonInterp: C:/Python27/python.exe (found version "2.7.6")
-- Could NOT find Ruby (missing:  RUBY_EXECUTABLE RUBY_INCLUDE_DIR RUBY_LIBRARY)

CMake Error at CMakeLists.txt:74 (STRING):
  string no output variable specified

CMake Error at CMakeLists.txt:84 (MESSAGE):
  Unknown CPU ''

-- Configuring incomplete, errors occurred!
See also "C:/WebKitBuild/CMakeFiles/CMakeOutput.log".
See also "C:/WebKitBuild/CMakeFiles/CMakeError.log".

I've also tried with different SDKs, i.e. different values of the -d argument:

Visual Studio 9 2008 Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
Visual Studio 9 2008 Windows Mobile 6 Professional SDK (ARMV4I)
Visual Studio 9 2008 STANDARDSDK_500 (ARMV4I)

I looked at CMakeLists.txt and modified the CPU detection to always be hardcoded to ARM, so the relevant section now reads:

# -----------------------------------------------------------------------------
# Determine the target processor
# -----------------------------------------------------------------------------
STRING(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} LOWERCASE_CMAKE_SYSTEM_PROCESSOR)
SET(WTF_CPU_ARM 1)

I was reticent to do this, but it allowed me to progress. The error message at the command prompt was:

C:\WebKitBuild>cmake -G "Visual Studio 9 2008 STANDARDSDK_500 (ARMV4I)" -DPORT=W
inCE -D3RDPARTY_DIR=C:/webkitthirdparty C:\WebKit
-- The C compiler identification is MSVC 15.0.20720.0
-- The CXX compiler identification is MSVC 15.0.20720.0
-- Check for working C compiler using: Visual Studio 9 2008 STANDARDSDK_500 (ARM
V4I)
-- Check for working C compiler using: Visual Studio 9 2008 STANDARDSDK_500 (ARM
V4I) -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - failed
-- Check for working CXX compiler using: Visual Studio 9 2008 STANDARDSDK_500 (A
RMV4I)
-- Check for working CXX compiler using: Visual Studio 9 2008 STANDARDSDK_500 (A
RMV4I) -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - failed
-- Found BISON: C:/WKPF/WinFlexBison/win_bison.exe (found version "2.7")
-- Found FLEX: C:/WKPF/WinFlexBison/win_flex.exe (found version "2.5.37")
-- Found Gperf: C:/WKPF/GnuWin32/bin/gperf.exe
-- Found Perl: C:/Perl/bin/perl.exe (found version "5.18.1")
-- Found PythonInterp: C:/Python27/python.exe (found version "2.7.6")
-- Could NOT find Ruby (missing:  RUBY_EXECUTABLE RUBY_INCLUDE_DIR RUBY_LIBRARY)

CMake Error at CMakeLists.txt:74 (STRING):
  string no output variable specified


-- Enabled features:
[...]
--  WTF_USE_WTFURL                       OFF
-- Using platform-specific CMakeLists: C:/WebKit/Source/WTF/wtf/PlatformWinCE.cm
ake
-- Using platform-specific CMakeLists: C:/WebKit/Source/JavaScriptCore/PlatformW
inCE.cmake
-- Using platform-specific CMakeLists: C:/WebKit/Source/JavaScriptCore/shell/Pla
tformWinCE.cmake
-- Using platform-specific CMakeLists: C:/WebKit/Source/WebCore/PlatformWinCE.cm
ake
-- Using platform-specific CMakeLists: C:/WebKit/Source/WebKit/PlatformWinCE.cma
ke
-- Configuring incomplete, errors occurred!
See also "C:/WebKitBuild/CMakeFiles/CMakeOutput.log".
See also "C:/WebKitBuild/CMakeFiles/CMakeError.log".

The CMakeError.log is attached. I believe the pertinent text is:

LINK : error LNK2001: unresolved external symbol mainACRTStartup

I found that Patrick had fixed something similar recently, but should it not be in my version of CMake?


Apologies for the long post, but I wanted to give as much information as possible.

Any help getting this to build would be much appreciated,

Thanks,

Chris G
CMakeError.log

Mark Salisbury

未讀,
2014年2月27日 晚上9:31:412014/2/27
收件者:wince...@googlegroups.com
This reminds me of an error I saw (which I reported and attempted to fix):

https://bugs.webkit.org/show_bug.cgi?id=110414

It might not be the same, but I have a vague memory that due to bug 110414 I got output similar to "string no output variable specified".

Mark


--
You received this message because you are subscribed to the Google Groups "Windows CE WebKit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to wincewebkit...@googlegroups.com.
To post to this group, send email to wince...@googlegroups.com.
Visit this group at http://groups.google.com/group/wincewebkit.
For more options, visit https://groups.google.com/groups/opt_out.

Christopher Gunn

未讀,
2014年2月28日 凌晨4:38:442014/2/28
收件者:wince...@googlegroups.com
Thanks Mark for replying. My version of CMake has the fix applied:

# Set a default build type if and only if user did not define one as command
# line options and he did not give custom CFLAGS or CXXFLAGS. Otherwise, flags
# from default build type would overwrite user-defined ones.
IF (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_C_FLAGS AND NOT CMAKE_CXX_FLAGS)
    SET(CMAKE_BUILD_TYPE Release)
ENDIF ()

The 'string no output variable specified' error is occuring at line 74, which is:

STRING(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} LOWERCASE_CMAKE_SYSTEM_PROCESSOR)

CMAKE_SYSTEM_PROCESSOR appears to be undefined? 

Personally I think that my issues lie around the detection of the compiler ABI (compiling some C/C++ program that detects the ABI??):

C:\WebKitBuild>cmake -G "Visual Studio 9 2008 STANDARDSDK_500 (ARMV4I)" -DPORT=W
inCE -D3RDPARTY_DIR=C:/webkitthirdparty C:\WebKit
-- The C compiler identification is MSVC 15.0.20720.0
-- The CXX compiler identification is MSVC 15.0.20720.0
-- Check for working C compiler using: Visual Studio 9 2008 STANDARDSDK_500 (ARM
V4I)
-- Check for working C compiler using: Visual Studio 9 2008 STANDARDSDK_500 (ARM
V4I) -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - failed
-- Check for working CXX compiler using: Visual Studio 9 2008 STANDARDSDK_500 (A
RMV4I)
-- Check for working CXX compiler using: Visual Studio 9 2008 STANDARDSDK_500 (A
RMV4I) -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - failed
-- Found BISON: C:/WKPF/WinFlexBison/win_bison.exe (found version "2.7")
-- Found FLEX: C:/WKPF/WinFlexBison/win_flex.exe (found version "2.5.37")
-- Found Gperf: C:/WKPF/GnuWin32/bin/gperf.exe
-- Found Perl: C:/Perl/bin/perl.exe (found version "5.18.1")
-- Found PythonInterp: C:/Python27/python.exe (found version "2.7.6")
-- Could NOT find Ruby (missing:  RUBY_EXECUTABLE RUBY_INCLUDE_DIR RUBY_LIBRARY)

But I'm not really sure having never really built anything native before outside of Visual Studio.

Can anyone shed any light on this?

Thanks,

Chris

Patrick Gansterer

未讀,
2014年2月28日 清晨5:05:272014/2/28
收件者:wince...@googlegroups.com
I never implemented detecting of the compiler ABI for Windows CE into CMake, but the built project work without it too. So you can ignore that message.
The problem "Unknown CPU" is generated by [1] which means that the MSVC_CXX_ARCHITECTURE_ID variable was not set by CMake. That's a problem of CMake and not of WebKit. Can you report bugs for all not working SDKs at [2] with download link to the SDK, so I can try to fix it?
Maybe you can try to generate a solution for a simple CMake project with only one exe target (completely independent from WebKit) to check if your CMake + Windwos CE setup works correctly.


-- Patrick

Christopher Gunn

未讀,
2014年2月28日 清晨5:47:372014/2/28
收件者:wince...@googlegroups.com
Hi Patrick,

Thanks for your reply.

So I can ignore the ABI detection failure? I would happily do this, but I cannot find any built project? The first CMake command fails with:

-- Configuring incomplete, errors occurred!
See also "C:/WebKitBuild/CMakeFiles/CMakeOutput.log".
See also "C:/WebKitBuild/CMakeFiles/CMakeError.log".

With the CMakeError.log containing errors:

------ Build started: Project: cmTryCompileExec814607434, Configuration: Debug Windows Mobile 6 Professional SDK (ARMV4I) ------

Compiling...

Microsoft (R) C/C++ Optimizing Compiler Version 15.00.20720 for ARM

Copyright (C) Microsoft Corporation.  All rights reserved.

cl /Od /D "_WIN32_WCE=0x502" /D "UNDER_CE" /D "ARM" /D "_ARM_" /D "_WINDOWS" /D "_DEBUG" /D "CMAKE_INTDIR=\"Debug\"" /D "_MBCS" /FD /MDd /fp:fast /GR- /Fo"cmTryCompileExec814607434.dir\Debug\\" /Fd"cmTryCompileExec814607434.dir\Debug/vc80.pdb" /W3 /c /Zi /TC

   "..\..\..\WKPF\cmake-2.8.12.2-win32-x86\share\cmake-2.8\Modules\CMakeCCompilerABI.c"

CMakeCCompilerABI.c

Linking...

LINK : error LNK2001: unresolved external symbol mainACRTStartup

C:\WebKitBuild\CMakeFiles\CMakeTmp\Debug\cmTryCompileExec814607434.exe : fatal error LNK1120: 1 unresolved externals

Build log was saved at "file://c:\WebKitBuild\CMakeFiles\CMakeTmp\cmTryCompileExec814607434.dir\Debug\BuildLog.htm"

cmTryCompileExec814607434 - 2 error(s), 0 warning(s)

========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Is this error what is causing the WebKit.sln to not be built? Is it something I can easily change by changing the linker settings? I saw before that you had a similar issue and it was because a .lib file was not included.

My revision of CMake does not contain the fix to use the  MSVC_CXX_ARCHITECTURE_ID variable, but I have applied that architecture fix to my CMakeLists.txt file and now I get an error:

CMake Error at CMakeLists.txt:92 (message):
  Unknown CPU 'thumb'

Is thumb not supported, or not what we would expect it to be set to?

I was rather hoping that someone would be able to spot easily what was wrong, or that by following the instructions it would build. If it's a CMake issue, then what is the release of CMake on which WebKit builds? I don't know how to create a simple CMake project, but it's something I will look at since you have suggested it.

Thanks,

Chris

Patrick Gansterer

未讀,
2014年2月28日 清晨6:03:102014/2/28
收件者:wince...@googlegroups.com
Yes, you can ignore the ABI detection.
Which exact version of CMake do you use?
Microsoft has an ugly mix of ARM and THUMB for their WinCE targets. There is some internal CMake magic which makes it work for the STANDARDSDK_500. I only built and tested WebKit with the STANDARDSDK_500 (ARMV4I) architecture. So please use that when starting.

Are you able to build an (from WebKit independet) CMake project for your Windows CE SDK?

-- Patrick

Christopher Gunn

未讀,
2014年2月28日 上午11:05:412014/2/28
收件者:wince...@googlegroups.com
Hi,

The version of CMake is 2.8.11.2. I've tried it using the 'STANDARDSDK_500 (ARMV4I)' SDK/arch.

I'm not sure how to create a simple CMake project, but I'll take a look online. I'm just thinking that this should build as-is, maybe I just need an older version of CMake? It seems strange that mine is coming up as Thumb and CMake doesn't even recognise this.

Cheers,

Chris

Florin Buzatu

未讀,
2014年4月29日 上午10:20:182014/4/29
收件者:wince...@googlegroups.com
Hello,

I'm facing the same issue (Unknown CPU 'thumb'). Have you managed to find a solution for this?

Thank you,
Florin

Florin Buzatu

未讀,
2014年4月29日 上午10:29:282014/4/29
收件者:wince...@googlegroups.com
Hello,

I have the same issue ( Unknown CPU 'thumb', MSVC_CXX_ARCHITECTURE_ID is not set). Have you managed to find a solution?

Thank you,
Florin

On Friday, February 28, 2014 6:05:41 PM UTC+2, Christopher Gunn wrote:

Florin Buzatu

未讀,
2014年4月29日 上午10:56:162014/4/29
收件者:wince...@googlegroups.com
Hi,

I have edited web-kit\webkit\CMakeLists.txt by adding the line set(MSVC_CXX_ARCHITECTURE_ID ARMV4I) before 
LOWERCASE_CMAKE_SYSTEM_PROCESSOR is calculated from MSVC_CXX_ARCHITECTURE_ID (line 74). This got it working.

Best regards,
Florin

On Friday, February 28, 2014 6:05:41 PM UTC+2, Christopher Gunn wrote:
回覆所有人
回覆作者
轉寄
0 則新訊息