First, thanks for your reply and new patch!
I've tried your new patch, the 'CMAKE_OSX_DEPLOYMENT_TARGET' settings seems 
take effect, the warnings disappeared, but I still have two problems in two 
compiling environments:


1.The first environment is OS X 10.11.5 with Xcode7.3.1(which has clang 7.3.0) 
and cmake 3.6.0-rc3, on which I completely use your new patch and get the 
problem:

[ 54%] Built target common

[ 55%] Generating dct-a.S.o

/Users/huhai/dev/sources/video_opensource/x265_new/x265_dev/source/common/arm/asm.S:28:1:
 error: unknown directive

.syntax unified

^

/Users/huhai/dev/sources/video_opensource/x265_new/x265_dev/source/common/arm/asm.S:38:1:
 error: unknown directive

.fpu neon

^

/Users/huhai/dev/sources/video_opensource/x265_new/x265_dev/source/common/arm/dct-a.S:26:17:
 error: unexpected token in '.section' directive

.section .rodata

...(omit many errors here)

make[2]: *** [dct-a.S.o] Error 1

make[1]: *** [CMakeFiles/x265-static.dir/all] Error 2

make: *** [all] Error 2

CONCLUSION: It seems that clang dose not support syntax of *.S assembly files(I 
mentioned that in an earlier mail).

2.The second environment is OS X 10.9.5 with Xcode4.6.3(which has llvm-gcc-4.2 
for iOS platform) and cmake 3.6.0-rc3, on which I changed ios.cmake and 
make-Makefiles.bash properly to be suitable to llvm-gcc-4.2:

ios.cmake:

# CMake toolchain file for cross compiling x265 for ARM arch

# This feature is only supported as experimental. Use with caution.

# Please report bugs on bitbucket

# Run cmake with: cmake -DCMAKE_TOOLCHAIN_FILE=crosscompile.cmake -G "Unix 
Makefiles" ../../source && ccmake ../../source




set(CROSS_COMPILE_ARM 1)

set(CMAKE_SYSTEM_NAME Darwin)

set(CMAKE_SYSTEM_PROCESSOR armv7l)

set(CMAKE_OSX_DEPLOYMENT_TARGET 0)




# specify the cross compiler

set(CMAKE_C_COMPILER 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2)

set(CMAKE_CXX_COMPILER 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-g++-4.2)

# specify the target environment

set(CMAKE_FIND_ROOT_PATH 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk)

make-Makefiles.bash:


IOS_PLATFORM_SDK=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk

IOS_FLAGS="-march=armv7 -mcpu=cortex-a8 -mfpu=neon -pthread 
-miphoneos-version-min=4.0 -Qunused-arguments"

cmake -DCMAKE_TOOLCHAIN_FILE=ios.cmake -DCMAKE_C_FLAGS="$IOS_CFLAGS" 
-DCMAKE_CXX_FLAGS="$IOS_CFLAGS" -DCMAKE_OSX_SYSROOT="$IOS_PLATFORM_SDK" 
-DIOS_PLATFORM_SDK="$IOS_PLATFORM_SDK" -G "Unix Makefiles" ../../source && 
ccmake ../../source

and the problem is:

[ 34%] Built target common
Scanning dependencies of target encoder
[ 35%] Building CXX object encoder/CMakeFiles/encoder.dir/analysis.cpp.o
/Users/shiyi/Desktop/x265_dev/source/encoder/analysis.cpp: In member function 
'void x265::Analysis::checkBidir2Nx2N(x265::Mode&, x265::Mode&, const 
x265::CUGeom&)':
/Users/shiyi/Desktop/x265_dev/source/encoder/analysis.cpp:2190: error: invalid 
use of incomplete type 'class x265::MotionReference'
/Users/shiyi/Desktop/x265_dev/source/encoder/reference.h:38: error: forward 
declaration of 'class x265::MotionReference'
/Users/shiyi/Desktop/x265_dev/source/encoder/analysis.cpp:2190: error: invalid 
use of incomplete type 'class x265::MotionReference'
/Users/shiyi/Desktop/x265_dev/source/encoder/reference.h:38: error: forward 
declaration of 'class x265::MotionReference'
/Users/shiyi/Desktop/x265_dev/source/encoder/analysis.cpp:2190: error: invalid 
use of incomplete type 'class x265::MotionReference'
/Users/shiyi/Desktop/x265_dev/source/encoder/reference.h:38: error: forward 
declaration of 'class x265::MotionReference'
make[2]: *** [encoder/CMakeFiles/encoder.dir/analysis.cpp.o] Error 1
make[1]: *** [encoder/CMakeFiles/encoder.dir/all] Error 2
make: *** [all] Error 2


CONCLUSION: It seems that the gcc contained in Xcode4.6.3 does not support the 
syntax of 'analysis.cpp'.


You mentioned that you can't reproduce my problem, so what's your compling 
environment like?Did you disabled assembly in cmake configure?




At 2016-06-29 01:37:06, "chen" <[email protected]> wrote:

Sorry for delay, I am working on other high-priority patch.
I still can't reproduce your problem, but after read cmake source, I guess the 
problem on CMAKE_OSX_DEPLOYMENT_TARGET
Could you try this new patch?


At 2016-06-28 17:18:14,"steven.Hu" <[email protected]> wrote:

If I disable assembly in my cmake configure, I successfully compiled the 
'libx265.a' library.But I found that the library without assembly optimization 
do encoding more slowly than expected.So I need the assembly version of 
'libx265.a'!Then I installed Xcode4.6.3 which has llvm gcc 4.2 for iOS platform.
I changed the 'ios.cmake' under 'build/arm-ios' to:
set(CROSS_COMPILE_ARM 1)
set(CMAKE_SYSTEM_NAME Darwin)
set(CMAKE_SYSTEM_PROCESSOR armv7l)


set(CMAKE_C_COMPILER 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2)
set(CMAKE _CXX_COMPILER 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-g++-4.2)


set(CMAKE_FIND_ROOT_PATH 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk)


# Skip the platform compiler checks for cross compiling
set(CMAKE_C_COMPILER_WORKS TRUE)
set(CMAKE_CXX_COMPILER_WORKS TRUE)


and 'make-Makefiles.bash' under 'build/arm-ios' to:
IOS_PLATFORM_SDK=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk


IOS_FLAGS="-march=armv7 -mcpu=cortex-a8 -mfpu=neon -pthread -isysroot 
$IOS_PLATFORM_SDK -I$IOS_PLATFORM_SDK/usr/include 
-I$IOS_PLATFORM_SDK/usr/include/c++/4.2.1 -miphoneos-version-min=4.0 
-Qunused-arguments -DHAVE_STRTOK_R"


cmake -DCMAKE_TOOLCHAIN_FILE=ios.cmake -DCMAKE_C_FLAGS="$IOS_FLAGS" 
-DCMAKE_CXX_FLAGS="$IOS_FLAGS" -DIOS_PLATFORM_SDK="$IOS_PLATFORM_SDK" -G "Unix 
Makefiles" ../../source && cmake ../../source




I can generate the 'Makefile' by run 'make-Makefiles.bash', but when I run 
'make' to compile the codes, it reports many warnings like:
In file included from 
/Applications/Xcode.app/Contents/Developer/Playforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/usr/include/semaphore.h:27,
from .../source/common/threading.h:36,
from .../source/common/frame.h:29,
from .../source/common/analysis.cpp:27,
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/usr/include/sys/fcntl.h:493:
 warning: 'int flock(int, int)' hides constructor for 'struck flock'


In file included from 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneSDK6.1.sdk/usr/include/sys/proc.h:78,
from 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneSDK6.1.sdk/usr/include/sys/sysctl.h:84,
from .../source/common/threading.h:43,
from .../source/common/frame.h:29,
from .../source/encoder/analysis.cpp:27:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneSDK6.1.sdk/usr/include/sys/event.h:317:
 warning:'int kevent(int, const kevent*, int, kevent*, int, const timesspec*)' 
hides the constructor for 'struct kevent'


and finally stopped at the error:


.../source/encoder/analysis.cpp: In member function 'void 
x265::Analysis::checkBidir2Nx2N(x265::Mode&, x265::Mode&, const x265::CUGeom&)':
.../source/encoder/analysis.cpp:2190:error:invalid use of incomplete type 
'class x265::MotionReference'
.../source/encoder/reference.h:38:error:forward declaration of 'class 
x265::MotionReference'
.../source/encoder/analysis.cpp:2190:error:invalid use of incomplete type 
'class x265::MotionReference'
.../source/encoder/reference.h:38:error:forward declaration of 'class 
x265::MotionReference'
.../source/encoder/analysis.cpp:2190:error:invalid use of incomplete type 
'class x265::MotionReference'
.../source/encoder/reference.h:38:error:forward declaration of 'class 
x265::MotionReference'
make[2]: *** [encoder/CMakeFiles/encoder.dir/analysis.cpp.o] Error 1
make[1]: *** [encoder/CMakeFiles/encoder.dir/all] Error 2
make: *** [all] Error 2


What's the problem?Did I configure settings right?

在 2016-06-24 22:44:51,"chen" <[email protected]> 写道:

We use gcc assembly syntax, so you have to disable assembly in your cmake 
configure.


At 2016-06-24 13:55:15,"steven.Hu" <[email protected]> wrote:

I move '-arch armv7 -mfpu=neon -pthread -isysroot $IOS_PLATFORM_SDK 
-miphoneos-version-min=7.0 -Qunused-arguments' to CMakeLists.txt under 'source' 
diretory, and I can get through cmake command to Makefile.But when I run 
'make', the compiling failed when the compiler(Clang or yasm?Since I installed 
yasm on my Mac and I saw it detected it) try to compile file '

source/common/arm/asm.S'.Error info is:



[ 55%] Generating dct-a.S.o

/Users/huhai/dev/sources/video_opensource/x265_new/x265_dev/source/common/arm/asm.S:38:1:
 error: unknown directive

.fpu neon

^

/Users/huhai/dev/sources/video_opensource/x265_new/x265_dev/source/common/arm/dct-a.S:26:17:
 error: unexpected token in '.section' directive

.section .rodata

                ^

make[2]: *** [dct-a.S.o] Error 1

make[1]: *** [CMakeFiles/x265-static.dir/all] Error 2

make: *** [all] Error 2

Seems like the asm compiler dosen't support such syntax!






在 2016-06-24 12:14:47,"steven.Hu" <[email protected]> 写道:

Thank you very much!






在 2016-06-24 11:58:41,"chen" <[email protected]> 写道:

I see your cmake generate two of -isysroot, the second one for native, I will 
take a look tomorrow.

At 2016-06-24 11:55:26,"steven.Hu" <[email protected]> wrote:

I tried cmake 3.5.2 and 3.6.0 rc3(I used rc2 just now), the same problem 
occured!I used Xcode 7.3.1(Version 7.3.1 (7D1014)).






At 2016-06-24 11:43:51, "chen" <[email protected]> wrote:

I take a look, my cmake is brew 3.5.2 version
In your message, there are AppleClang otherthan my Clang, I guess the problem 
in cmake



在 2016-06-24 11:31:15,"steven.Hu" <[email protected]> 写道:

I'm using cmake 3.6.0, that's the highest version I can find yet.Which version 
of cmake do you use?






在 2016-06-24 11:27:22,"chen" <[email protected]> 写道:

No, it is native compiler, we need cross-compiler
try with upgrade your cmake


At 2016-06-24 11:26:01,"steven.Hu" <[email protected]> wrote:

'Your system' means Mac OS X?I'm using Max OS X 10.11.5.
If remove '-DCMAKE_C_FLAGS="$IOS_CFLAGS" -DCMAKE_CXX_FLAGS="$IOS_CFLAGS" 
-DIOS_PLATFORM_SDK="$IOS_PLATFORM_SDK"' in make-Makefiles.bash, the C comiler 
check will succeed!
I found that there is '-isysroot 
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk'
 in the compiling command, is it that cause the problem?






在 2016-06-24 11:10:38,"chen" <[email protected]> 写道:

You clang version same as me, but your cmake is lower, and looks your system 
can't support armv7, are you use ARM64?



At 2016-06-24 11:07:05,"steven.Hu" <[email protected]> wrote:

I've tried your patch, but there is a new problem.When I run 
'make-Makefiles.bash' under 'build/arm-ios/' the errors occured:

-- cmake version 3.6.0-rc2

-- The C compiler identification is AppleClang 7.3.0.7030031

-- The CXX compiler identification is AppleClang 7.3.0.7030031

-- Check for working C compiler: 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang

-- Check for working C compiler: 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
 -- broken

CMake Error at 
/Applications/CMake.app/Contents/share/cmake-3.6/Modules/CMakeTestCCompiler.cmake:61
 (message):

  The C compiler

  
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"

  is not able to compile a simple test program.




  It fails with the following output:




   Change Dir: 
/Users/huhai/dev/sources/video_opensource/x265_new/x265_dev/build/arm-ios/CMakeFiles/CMakeTmp




  




  Run Build Command:"/usr/bin/make" "cmTC_83901/fast"




  /Applications/Xcode.app/Contents/Developer/usr/bin/make -f

  CMakeFiles/cmTC_83901.dir/build.make CMakeFiles/cmTC_83901.dir/build




  Building C object CMakeFiles/cmTC_83901.dir/testCCompiler.c.o




  

  
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang

  -arch armv7 -mfpu=neon -pthread -isysroot

  
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk

  -miphoneos-version-min=7.0 -Qunused-arguments -isysroot

  
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk

  -o CMakeFiles/cmTC_83901.dir/testCCompiler.c.o -c

  
/Users/huhai/dev/sources/video_opensource/x265_new/x265_dev/build/arm-ios/CMakeFiles/CMakeTmp/testCCompiler.c







  Linking C executable cmTC_83901




  /Applications/CMake.app/Contents/bin/cmake -E cmake_link_script

  CMakeFiles/cmTC_83901.dir/link.txt --verbose=1




  

  
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang

  -arch armv7 -mfpu=neon -pthread -isysroot

  
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk

  -miphoneos-version-min=7.0 -Qunused-arguments -isysroot

  
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk

  -Wl,-headerpad_max_install_names

  CMakeFiles/cmTC_83901.dir/testCCompiler.c.o -o cmTC_83901




  ld: warning: ignoring file

  
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/lib/libSystem.tbd,

  missing required architecture armv7 in file

  
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/lib/libSystem.tbd







  ld: dynamic main executables must link with libSystem.dylib for

  architecture armv7




  clang: error: linker command failed with exit code 1 (use -v to see

  invocation)




  make[1]: *** [cmTC_83901] Error 1




  make: *** [cmTC_83901/fast] Error 2




  




  




  CMake will not be able to correctly generate this project.

Call Stack (most recent call first):

  CMakeLists.txt:19 (project)







-- Configuring incomplete, errors occurred!

See also 
"/Users/huhai/dev/sources/video_opensource/x265_new/x265_dev/build/arm-ios/CMakeFiles/CMakeOutput.log".

See also 
"/Users/huhai/dev/sources/video_opensource/x265_new/x265_dev/build/arm-ios/CMakeFiles/CMakeError.log".





The C compiler check failed!And I found that it's the 
'-DCMAKE_C_FLAGS="$IOS_CFLAGS" -DCMAKE_CXX_FLAGS="$IOS_CFLAGS" 
-DIOS_PLATFORM_SDK="$IOS_PLATFORM_SDK"' cause the problem!
How I can fix it, do you have some ideas?

在 2016-06-24 07:49:20,"huhai" <[email protected]> 写道:

Thank you!Sure,I'll have a try!

发自我的 iPhone

在 2016年6月24日,06:44,chen <[email protected]> 写道:


Could you try my new patch?


At 2016-06-23 11:20:02,"steven.Hu" <[email protected]> wrote:

I found 'arm-linux' directory under 'build' directory, and I changed the 
'crosscompile.cmake' to the following:


# CMake toolchain file for cross compiling x265 for ARM arch
# This feature is only supported as experimental. Use with caution.
# Please report bugs on bitbucket
# Run cmake with: cmake -DCMAKE_TOOLCHAIN_FILE=crosscompile.cmake -G "Unix 
Makefiles" ../../source && ccmake ../../source


set(CROSS_COMPILE_ARM 1)
set(CMAKE_SYSTEM_NAME Darwin)
set(CMAKE_SYSTEM_PROCESSOR armv7l)


# specify the cross compiler
set(CMAKE_C_COMPILER 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang)
set(CMAKE_CXX_COMPILER 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++)


# specify the target environment
SET(CMAKE_FIND_ROOT_PATH  
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/)


Then I run 'cmake -DCMAKE_TOOLCHAIN_FILE=crosscompile.cmake -G "Unix Makefiles" 
../../source && ccmake ../../source' from the arm-linux directory, and I got 
the'Makefile' without any error info.
But when run 'make', it reported many errors, which may be caused by incorrect 
headers including.I found the compiler uses the headers under 
'/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk',
 instead, it should use the headers under 
'/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/'.
How can I fix it? Any suggestion would be appreciated!




 

_______________________________________________
x265-devel mailing list
[email protected]
https://mailman.videolan.org/listinfo/x265-devel






 





 





 





 





 





 





 
_______________________________________________
x265-devel mailing list
[email protected]
https://mailman.videolan.org/listinfo/x265-devel

Reply via email to