[Ves] Build for armv7s and arm64

Jon Chmura jon.chmura at me.com
Wed Oct 30 13:06:31 EDT 2013


Casey,

I tried all of those options with make -j1 build.  Below is the failure when building WITH lib archive and curl.


-- Build files have been written to: /Users/jonc/Developer/VES/Apps/iOS/build/CMakeExternals/Build/curl-ios-device
[  9%] Performing build step for 'curl-ios-device'
[  1%] Building C object lib/CMakeFiles/libcurl.dir/file.c.o
In file included from /Users/jonc/Developer/VES/Apps/iOS/build/CMakeExternals/Source/curl/lib/file.c:23:
In file included from /Users/jonc/Developer/VES/Apps/iOS/build/CMakeExternals/Source/curl/lib/setup.h:127:
/Users/jonc/Developer/VES/Apps/iOS/build/CMakeExternals/Source/curl/include/curl/curlrules.h:143:6: error: 
      '__curl_rule_01__' declared as an array with a negative size
    [CurlchkszEQ(long, CURL_SIZEOF_LONG)];
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/jonc/Developer/VES/Apps/iOS/build/CMakeExternals/Source/curl/include/curl/curlrules.h:132:27: note: 
      expanded from macro 'CurlchkszEQ'
#define CurlchkszEQ(t, s) sizeof(t) == s ? 1 : -1
                          ^~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make[5]: *** [lib/CMakeFiles/libcurl.dir/file.c.o] Error 1
make[4]: *** [lib/CMakeFiles/libcurl.dir/all] Error 2
make[3]: *** [all] Error 2
make[2]: *** [CMakeExternals/Stamp/curl-ios-device/curl-ios-device-build] Error 2
make[1]: *** [CMakeFiles/curl-ios-device.dir/all] Error 2
make: *** [all] Error 2


I also attempted building WITHOUT lib archive and curl.  Is the tr1/memory error associated with using the C11 compiler?

Scanning dependencies of target ves
[  1%] Building CXX object src/ves/CMakeFiles/ves.dir/vesActor.cpp.o
In file included from /Users/jonc/Developer/VES/src/ves/vesActor.cpp:22:
In file included from /Users/jonc/Developer/VES/src/ves/./vesActor.h:33:
In file included from /Users/jonc/Developer/VES/src/ves/./vesNode.h:31:
In file included from /Users/jonc/Developer/VES/src/ves/./vesBoundingObject.h:27:
In file included from /Users/jonc/Developer/VES/src/ves/./vesObject.h:25:
In file included from /Users/jonc/Developer/VES/src/ves/./vesSetGet.h:25:
/Users/jonc/Developer/VES/src/ves/./vesSharedPtr.h:28:10: fatal error: 'tr1/memory' file not found
#include <tr1/memory>
         ^
1 error generated.
make[5]: *** [src/ves/CMakeFiles/ves.dir/vesActor.cpp.o] Error 1
make[4]: *** [src/ves/CMakeFiles/ves.dir/all] Error 2
make[3]: *** [all] Error 2
make[2]: *** [CMakeExternals/Stamp/ves-ios-device/ves-ios-device-build] Error 2
make[1]: *** [CMakeFiles/ves-ios-device.dir/all] Error 2
make: *** [all] Error 2



Jon Chmura
jon.chmura at me.com




On Oct 30, 2013, at 12:07 PM, Casey Goodlett <casey.goodlett at kitware.com> wrote:

> Jon,
> 
> I have no tried arm64 so I do not know where the problem is.  A couple of thoughts to try:
> 
> You might try increasing the iphoneos-version-min to 7.0 maybe thats needed to support arm64.  This stackoverflow entry http://stackoverflow.com/questions/18913906/xcode-5-and-ios-7-architecture-and-valid-architectures seems to indicate you need to set a minimum of 6.0 for arm64 support.
> 
> If you can disable libarchive and libcurl for the arm64 test we could eliminate those as variables.  
> 
> Try a serial build "make -j1" so that the error is the last output.
> 
> Let us know what you find out
> 
> 
> On Wed, Oct 30, 2013 at 11:59 AM, Jon Chmura <jon.chmura at me.com> wrote:
> Casey,
> 
> Thanks for the quick reply.  I wasn’t able to build with arm64.  I checked out a new copy of VES.  Modified to add arm64 (see git diff)
> 
> diff --git a/CMake/toolchains/toolchain-ios-device.cmake b/CMake/toolchains/toolchain-ios-device
> index af6aedf..05c6dd5 100644
> --- a/CMake/toolchains/toolchain-ios-device.cmake
> +++ b/CMake/toolchains/toolchain-ios-device.cmake
> @@ -16,7 +16,7 @@ find_program(CMAKE_CXX_COMPILER NAME g++
>    /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/
>    NO_DEFAULT_PATH)
>  
> -set(CMAKE_OSX_ARCHITECTURES "armv7;armv7s")
> +set(CMAKE_OSX_ARCHITECTURES "armv7;armv7s;arm64")
>  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -miphoneos-version-min=5.0 -fvisibility=hidden -fvisibi
>  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -miphoneos-version-min=5.0 -fvisibility=hidden -fvisibility
> 
> The build failed but I didn’t see any useful error messages.  Maybe an issue with libarchive...
> 
> [ 40%] Building C object libarchive/CMakeFiles/archive_static.dir/archive_read_disk_entry_from_file.c.o
> /Users/jonc/Developer/VES/Apps/iOS/build/CMakeExternals/Source/libarchive/libarchive/archive_read_disk_entry_from_file.c:325:13: warning: 
>       'tempnam' is deprecated: This function is provided for compatibility reasons only. Due to
>       security concerns inherent in the design of tempnam(3), it is highly recommended that you use
>       mkstemp(3) instead. [-Wdeprecated-declarations]
>         tempfile = tempnam(tempdir, "tar.md.");
>                    ^
> /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk/usr/include/stdio.h:389:7: note: 
>       'tempnam' declared here
> char    *tempnam(const char *, const char *) __DARWIN_ALIAS(tempnam);
>          ^
> [ 57%] 1 warning generated.
> 
> -- Installing: /Users/jonc/Developer/VES/Apps/iOS/build/CMakeExternals/Install/libarchive-ios-simulator/lib/LibArchive/cmake/LibArchiveTargets-release.cmake
> [ 52%] Completed 'libarchive-ios-simulator'
> [ 52%] Built target libarchive-ios-simulator
> make: *** [all] Error 2
> 
> Jon Chmura
> jon.chmura at me.com
> 
> 
> 
> 
> On Oct 30, 2013, at 11:17 AM, Casey Goodlett <casey.goodlett at kitware.com> wrote:
> 
>> Jon,
>> 
>> You should be able to edit the toolchain file and add arm64 to the arch list (currently should be armv7;armv7s).  I have not tried to build for arm64 so there may be unexpected problems.  I typically modify my xcode project to build only armv7 and armv7s.
>> 
>> Can you let us know if you are able to get the project to build with arm64 support?
>> 
>> Thanks
>> 
>> 
>> On Wed, Oct 30, 2013 at 11:07 AM, Jon Chmura <jon.chmura at me.com> wrote:
>> Is there any way to build the iOS frameworks so that they support armv7 and arm64.  I realize that if the project settings are set up as follows it will build even for devices that are armv7s and arm64.
>> 
>> { 'ARCHS' => 'ARCHS_STANDARD’,
>>  'VALID_ARCHS' => 'armv7’, 
>> 'ONLY_ACTIVE_ARCH' => 'NO’,
>>  'CLANG_CXX_LANGUAGE_STANDARD' => 'gnu++98’, 
>> 'CLANG_CXX_LIBRARY' => 'libstdc++' }
>> 
>> This requirement causes build issues when using an Xcode workspace (i.e.. multiple Xcode projects used to build an app).  I’m looking for a workaround but it be preferable if I could use the standard Xcode settings
>> 
>> 'ARCHS' => 'ARCHS_STANDARD_INCLUDING_64_BIT’,
>>  'VALID_ARCHS' => armv7 armv7s arm64, 
>> 'ONLY_ACTIVE_ARCH' => ‘YES’,
>> 
>> Jon Chmura
>> jon.chmura at me.com
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> Ves mailing list
>> Ves at public.kitware.com
>> http://public.kitware.com/cgi-bin/mailman/listinfo/ves
>> 
>> 
>> 
>> 
>> -- 
>> Casey B. Goodlett, Ph.D.
>> R&D Engineer
>> Kitware, Inc. - North Carolina Office
>> http://www.kitware.com
>> (919) 969-6990 x310
> 
> 
> 
> 
> -- 
> Casey B. Goodlett, Ph.D.
> R&D Engineer
> Kitware, Inc. - North Carolina Office
> http://www.kitware.com
> (919) 969-6990 x310

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/ves/attachments/20131030/8bf5f2b9/attachment-0001.html>


More information about the Ves mailing list