Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What do these Dsymutil Warnings mean in XCode 4.5?

I am linking a static framework for iOS, against an armv7 ios 6 application, I suspect that the original binaries are from XCode 3.x and were compiled with GCC, and that I'm now linking it using CLang compiler. I do not have the source code for the framework, only the binaries:

(null): warning: (armv7) /.../DerivedData/.../armv7/HardwareObjectFile.o unable to open object file

I get 69 warnings like the above, one for every .o file linked into the static framework.

Is this warning serious for any reason? I have simplified the giant path which appears to indicate that the binary files in the library have hardcoded a path in "/Users/somedeveloperthatisntme" that could hardly help but Not Exist since I'm using this library on a computer that doesn't even have a folder named "Users/somedeveloperthatisntme".

Dsymutil appears to be a tool to "manipulate archived DWARF debug symbol files", although I know precisely nothing about what it is and what it does, notwithstanding the thorough documentation from Apple, which tells me what, but never ever, why. What is it doing, and what will this warning mean for me? I suspect I need a new library/static-framework from the vendor to clear this up?

Update: I am unable to solve this and it appears the cause lays with very old binaries compiled by a very old XCODE version, shipped as part of a mobile framework from a third party vendor. The issue in this case would be resolved by having that vendor rebuild their library, something I asked them to do because the warnings drove me nuts, but which they seem unable to do. In the end I ditched their technology and replaced it with something else. (Grin)

like image 230
Warren P Avatar asked Jan 23 '13 21:01

Warren P


3 Answers

I am on the other side of this, building a library for others to use, and I was able to alter the library project by setting 'GCC_GENERATE_DEBUGGING_SYMBOLS = NO' in the Build Settings to make those warnings go away in an Application project that consumed the output framework.

This isn't a solution to your problem, but if you're in contact with this vendor, you could pass this along.

like image 95
a. brooks hollar Avatar answered Oct 21 '22 20:10

a. brooks hollar


These errors are to do with the architectures you are using and the resources you are referencing. I don't understand the reasons myself, but if you want them to go away, go to Build settings, then Build Options and then select Debug information format and select DWARF.

like image 15
ERIC Avatar answered Oct 21 '22 20:10

ERIC


The other answers contain helpful information but I wish to put the real answer down succinctly:

You can not fix this, and the meaning of the errors is simple: The current linker sees these library files as containing elements that can not be opened.

To solve the warnings, contact the vendor and get a recompiled library that has been rebuilt with a later version of CLANG.

like image 4
Warren P Avatar answered Oct 21 '22 20:10

Warren P