[Ves] Build for armv7s and arm64

Aashish Chaudhary aashish.chaudhary at kitware.com
Wed Oct 30 13:35:43 EDT 2013


For the tr1 I have a branch that I need to push (will do it this week).  I
was waiting for this another branch that needed to go in first (for some
other build related issue).

- Aashish


On Wed, Oct 30, 2013 at 1:20 PM, Pat Marion
<james.patrick.marion at gmail.com>wrote:

> 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
>>
>>
>
> _______________________________________________
> Ves mailing list
> Ves at public.kitware.com
> http://public.kitware.com/cgi-bin/mailman/listinfo/ves
>
>


-- 
| Aashish Chaudhary
| R&D Engineer
| Kitware Inc.
| www.kitware.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/ves/attachments/20131030/eaafd0bb/attachment-0001.html>


More information about the Ves mailing list