Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-18203] CLI: Older projects may fail to build with undefined symbols

GitHub Issuen/a
TypeBug
PriorityNone
StatusClosed
ResolutionInvalid
Resolution Date2017-05-02T22:08:14.000+0000
Affected Version/sRelease 3.5.0
Fix Version/sn/a
ComponentsCLI
Labelsqe-3.5.0
ReporterEric Merriman
AssigneeEric Merriman
Created2014-12-15T19:17:13.000+0000
Updated2017-05-02T22:08:14.000+0000

Description

Description:

When trying to test Kitchensink Master, I encountered a build failure. Cleaning the project resolved the failure. I retained the original build folder, and if you place the contents back in the project it will fail again. The failure is logged as:
[TRACE] Undefined symbols for architecture armv7:
[TRACE]   "TI::Profiler::s_sharedEnabledProfilerReference", referenced from:
[TRACE]       -[TiProfiler enableCPUSampling:] in libti_ios_profiler.a(TiProfiler.o)
[TRACE]   "TI::UString::UString(char const*)", referenced from:
[TRACE]       -[TiProfiler enableCPUSampling:] in libti_ios_profiler.a(TiProfiler.o)
[TRACE]   "TI::Profiler::profiler()", referenced from:
[TRACE]       -[TiProfiler enableCPUSampling:] in libti_ios_profiler.a(TiProfiler.o)
[TRACE]   "TI::Profiler::startProfiling(TI::TiExcState*, TI::UString const&)", referenced from:
[TRACE]       -[TiProfiler enableCPUSampling:] in libti_ios_profiler.a(TiProfiler.o)
[TRACE]   "TI::Profiler::stopProfiling(TI::TiExcState*, TI::UString const&)", referenced from:
[TRACE]       -[TiProfiler enableCPUSampling:] in libti_ios_profiler.a(TiProfiler.o)
[TRACE]   "TI::UString::utf8(bool) const", referenced from:
[TRACE]       -[HprofData writeTraceWithThread:node:] in libti_ios_profiler.a(HprofData.o)
[TRACE] ld: symbol(s) not found for architecture armv7
[TRACE] clang: error: linker command failed with exit code 1 (use -v to see invocation)
[ERROR] ** BUILD FAILED **
[ERROR] The following build commands failed:
[ERROR]         Ld build/Debug-iphoneos/KitchenSink.app/KitchenSink normal armv7
[ERROR] (1 failure)
This may occur in cases where a project is being updated to use SDK 3.5.0 but has not been cleaned

Steps to reproduce:

1) Take a older project with an existing pre 3.5.0 SDK build folder (I have one that will work for KS but is too large to attach) 2) Do not clean, set SDK to 3.5.0 3) Attempt to build for device

Result:

Build fails as shown above

Expected Result:

Better information about why the build fails and how to rectify

Comments

  1. Malcolm Hollingsworth 2014-12-16

    This was unexpected behaviour? Not sure why, you should always clean between; SDKs, platform builds, target builds, testing, modules. Part of the testing process.
  2. Fokke Zandbergen 2014-12-16

    Still, no reason why ti build couldn't detect such changes and auto clean.
  3. Ingo Muschenetz 2014-12-17

    If we import a project, we should clean.
  4. Eric Merriman 2015-02-03

    [~ingo] The challenge is as well when you have existing projects in the workspace and you upgrade. We should probably trigger a clean when selecting a new SDK.
  5. Lee Morris 2017-05-02

    Resolving ticket as Invalid as there is now a new version of Kitchen Sink available and we no longer support the version which relates to this ticket.

JSON Source