New issue
Advanced search Search tips

Issue 815305 link

Starred by 2 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 3
Type: Bug



Sign in to add a comment

“Unable to open object file” when building an app with the Cronet static framework

Project Member Reported by kapishnikov@chromium.org, Feb 23 2018

Issue description

When an app is linked with the Cronet static library which is subsequently used for generating the dsym file for the final binary, the “Unable to open object file” message is displayed by dsymutil. This happens because the library symbol table references debug info object files that don't exist. They are the remains of the Cronet build step that merges them into a one single "cronet_static_complete.o" object.

Here is an extract from the symbol table that can be obtained by running 
  nm --debug-syms cronet | grep "\.o"
where "cronet" is the Cronet library object archive inside the static library.

0000000000000000 - 03 0001   OSO /b/build/slave/cronet-ios-simulator-debug/build/src/out/Debug-iphonesimulator/obj/components/cronet/ios/libcronet_deps_complete.a(url_request_job_factory.o)
0000000000000000 - 03 0001   OSO /b/build/slave/cronet-ios-simulator-debug/build/src/out/Debug-iphonesimulator/obj/components/cronet/ios/libcronet_deps_complete.a(url_request_job_factory_impl.o)
0000000000000000 - 03 0001   OSO /b/build/slave/cronet-ios-simulator-debug/build/src/out/Debug-iphonesimulator/obj/components/cronet/ios/libcronet_deps_complete.a(url_request_job_manager.o)
0000000000000000 - 03 0001   OSO /b/build/slave/cronet-ios-simulator-debug/build/src/out/Debug-iphonesimulator/obj/components/cronet/ios/libcronet_deps_complete.a(url_request_netlog_params.o)
0000000000000000 - 03 0001   OSO /b/build/slave/cronet-ios-simulator-debug/build/src/out/Debug-iphonesimulator/obj/components/cronet/ios/libcronet_deps_complete.a(url_request_redirect_job.o)
0000000000000000 - 03 0001   OSO /b/build/slave/cronet-ios-simulator-debug/build/src/out/Debug-iphonesimulator/obj/components/cronet/ios/libcronet_deps_complete.a(url_request_simple_job.o)

A fix for this issue should remove these table entries but still keeping other debug symbols that are necessary for the symbolication.

Note: even though the messages are displayed as errors, they are ignored by dsymutil, which completes successfully.
 
Cc: mef@chromium.org
I've verified that running 'strip -S Static/Cronet.framework/Cronet'  removes the reference to libcronet_deps_complete.a.

I'm not sure whether it also removes other necessary symbol information.
Labels: -Pri-2 Pri-3
Cosmetic issue, lowering priority.
Labels: Hotlist-Fixit

Sign in to add a comment