[CMake] Change archive creation flags

Will Dicharry wdicharry at stellarscience.com
Tue Nov 10 14:55:52 EST 2009


Will Dicharry wrote:
> Brad King wrote:
>> Will Dicharry wrote:
>>> Hi All,
>>>
>>> This was asked a while ago at
>>> http://www.cmake.org/pipermail/cmake/2009-January/026318.html, but it
>>> doesn't look like there was a response to that question.
>>>
>>> I have the same problem:
>>>
>>> on 64 bit AIX, ar must be invoked with a "-X 64" flag.  Is there a way
>>> to tell CMake to do this?
>>
>> Please file a feature request to support -q64 on AIX:
>>
>>   http://www.cmake.org/Bug
>>
>> and send me the issue number.
>>
>> Here are two work-arounds:
>>
>> - Set the OBJECT_MODE env var
>>
>> - Add this code (but only for the one platform) to CMakeLists.txt:
>>
>>   foreach(step CREATE APPEND FINISH)
>>     string(REPLACE "<CMAKE_AR>" "<CMAKE_AR> -X 64"
>>       CMAKE_C_ARCHIVE_${step} "${CMAKE_C_ARCHIVE_${step}}")
>>   endforeach()
> 
> Thanks for your response, I'll open the feature request. I tried the 
> second work around (I can't get all of my users to use that environment 
> variable from the first case).  Unfortunately it doesn't seem to be 
> working:
> 
>  From CMake output:
> -- The C compiler identification is VisualAge
> -- The CXX compiler identification is VisualAge
> -- Check for working C compiler: /usr/bin/mpcc
> -- Check for working C compiler: /usr/bin/mpcc -- works
> -- Detecting C compiler ABI info
> -- Detecting C compiler ABI info - done
> -- Check for working CXX compiler: /usr/bin/mpCC
> -- Check for working CXX compiler: /usr/bin/mpCC -- works
> -- Detecting CXX compiler ABI info
> -- Detecting CXX compiler ABI info - done
> -- CMAKE_C_ARCHIVE_CREATE = <CMAKE_AR> -X 64 cr <TARGET> <LINK_FLAGS> 
> <OBJECTS>
> -- CMAKE_C_ARCHIVE_APPEND = <CMAKE_AR> -X 64 r  <TARGET> <LINK_FLAGS> 
> <OBJECTS>
> -- CMAKE_C_ARCHIVE_FINISH = <CMAKE_RANLIB> <TARGET>
> <snip>
> 
> Then, during make VERBOSE=1:
> Linking CXX static library libHpmi.a
>      cd /scr/dicharry/ICEPIC/BuildArea/hpmi/src/hpmi && 
> /site/PET/pkgs/cmake-2.6.4/bin/cmake -P 
> CMakeFiles/Hpmi.dir/cmake_clean_target.cmake
>         cd /scr/dicharry/ICEPIC/BuildArea/hpmi/src/hpmi && 
> /site/PET/pkgs/cmake-2.6.4/bin/cmake -E cmake_link_script 
> CMakeFiles/Hpmi.dir/link.txt --verbose=1
> /usr/bin/ar cr libHpmi.a  CMakeFiles/Hpmi.dir/Index.cpp.o 
> CMakeFiles/Hpmi.dir/logger.c.o CMakeFiles/Hpmi.dir/power.c.o 
> CMakeFiles/Hpmi.dir/segmented_vector.cpp.o 
> CMakeFiles/Hpmi.dir/Singleton.cpp.o CMakeFiles/Hpmi.dir/Stack.cpp.o 
> CMakeFiles/Hpmi.dir/Timer.cpp.o
> ar: 0707-126 CMakeFiles/Hpmi.dir/Index.cpp.o is not valid with the 
> current object file mode.
>         Use the -X option to specify the desired object mode.
> ar: 0707-126 CMakeFiles/Hpmi.dir/logger.c.o is not valid with the 
> current object file mode.
>         Use the -X option to specify the desired object mode.
> ar: 0707-126 CMakeFiles/Hpmi.dir/power.c.o is not valid with the current 
> object file mode.
>         Use the -X option to specify the desired object mode.
> ar: 0707-126 CMakeFiles/Hpmi.dir/segmented_vector.cpp.o is not valid 
> with the current object file mode.
>         Use the -X option to specify the desired object mode.
> ar: 0707-126 CMakeFiles/Hpmi.dir/Singleton.cpp.o is not valid with the 
> current object file mode.
>         Use the -X option to specify the desired object mode.
> ar: 0707-126 CMakeFiles/Hpmi.dir/Stack.cpp.o is not valid with the 
> current object file mode.
>         Use the -X option to specify the desired object mode.
> ar: 0707-126 CMakeFiles/Hpmi.dir/Timer.cpp.o is not valid with the 
> current object file mode.
>         Use the -X option to specify the desired object mode.
> 
> Thanks again,
> Will

Oops, needed to set the CXX version too.  It's working now.  I'll file 
the bug request.  Thanks again for your help!

-- Will

> 
>>
>> -Brad
>>
> 
> 


-- 
Will Dicharry
Software Developer
Stellar Science Ltd Co
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3344 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://www.cmake.org/pipermail/cmake/attachments/20091110/1f1dab10/attachment-0001.bin>


More information about the CMake mailing list