[Ves] Build for armv7s and arm64

Pat Marion james.patrick.marion at gmail.com
Wed Oct 30 13:20:20 EDT 2013


Hi Jon,

There was a previous VES mailing list thread where we briefly talked about
this tr1 issue.  Maybe search for the email by subject:   [Ves] ios 7
I think the idea was that VES needs a patch to resolve it, for now you
could do a find/replace across many files to remove references to tr1.

Pat


On Wed, Oct 30, 2013 at 1:06 PM, Jon Chmura <jon.chmura at me.com> wrote:

> 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
>
>
>
> _______________________________________________
> Ves mailing list
> Ves at public.kitware.com
> http://public.kitware.com/cgi-bin/mailman/listinfo/ves
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/ves/attachments/20131030/a4792e7e/attachment-0001.html>


More information about the Ves mailing list