On 12/04/18 11:14, Jan Iversen wrote:
Hi

I have over time had a problem with make (iOS build). When I update my master 
repo and simply call “make” it works like a charm for osx, but I often get 
unresolved dependencies for iOS:

[build LNK] iOS dylib
Undefined symbols for architecture arm64:
   "ScNoteUtil::CreateNoteFromObjectData(ScDocument&, ScAddress const&, SfxItemSet*, 
OutlinerParaObject*, tools::Rectangle const&, bool, bool)", referenced from:
       XclImpNoteObj::DoPreProcessSdrObj(XclImpDffConverter&, SdrObject&) const 
in libscfiltlo.a(xiescher.o)
   "ScColumn::SetEditText(int, EditTextObject*)", referenced from:
       (anonymous namespace)::setSuffixCell(ScColumn&, int, int, unsigned short, 
rtl::OUString const&, CellType, bool) in libsclo.a(table4.o)
   "ScDocumentImport::setEditCell(ScAddress const&, EditTextObject*)", 
referenced from:
       oox::xls::WorksheetGlobals::insertHyperlink(ScAddress const&, rtl::OUString 
const&) in libscfiltlo.a(worksheethelper.o)
       oox::xls::WorksheetHelper::putRichString(ScAddress const&, 
oox::xls::RichString const&, oox::xls::Font const*) in 
libscfiltlo.a(worksheethelper.o)
       (anonymous namespace)::lclInsertUrl(XclImpRoot&, rtl::OUString const&, 
short, int, short) in libscfiltlo.a(xicontent.o)
   
"svtools::executeRestartDialog(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext>
 const&, vcl::Window*, svtools::RestartReason)", referenced from:
       (anonymous namespace)::lcl_tryLoadBibliography() in libsfxlo.a(appserv.o)
   "ScDocument::SetEditText(ScAddress const&, EditTextObject*)", referenced 
from:
       ScDocFunc::SetEditCell(ScAddress const&, EditTextObject const&, bool) in 
libsclo.a(docfunc.o)
       ScDocument::TransliterateText(ScMarkData const&, TransliterationFlags) 
in libsclo.a(documen8.o)
       ScCellRangesBase::SetOnePropertyValue(SfxItemPropertySimpleEntry const*, 
com::sun::star::uno::Any const&) in libsclo.a(cellsuno.o)
       ScTransferObj::StripRefs(ScDocument*, short, int, short, int, 
ScDocument*) in libsclo.a(transobj.o)
       ScUndoReplace::Undo() in libsclo.a(undoblk3.o)
   "ScUndoEnterData::ScUndoEnterData(ScDocShell*, ScAddress const&, 
std::__1::vector<ScUndoEnterData::Value, std::__1::allocator<ScUndoEnterData::Value> >&, 
rtl::OUString const&, EditTextObject*)", referenced from:
       ScDocFunc::SetNormalString(bool&, ScAddress const&, rtl::OUString 
const&, bool) in libsclo.a(docfunc.o)

This is from master today. When I do (in this case) “cd sc; make” it tells me 
there are nothing to build, but if I do “cd sc; make clean; make; cd ..; make” 
it links correctly, so it is as if the iOS build has somehow “shortcutted” the 
dependencies.

I have tried to find the relevant part in Solenv/gbuild but without success, so 
any idea/pointer are most welcome.

these should be rebuilt via the generated header dependencies; for a lot of your examples the relevant file is
 workdir/Dep/LinkTarget/Library/libsclo.a.d

this should contain e.g. a dependency from sc/.../xiescher.o to whatever header declares class ScNoteUtil.

there are 2 ways to generate these .d files, one is in gb_LinkTarget__command_impl (shortcut as a side effect of linking) and the other is gb_LinkTarget__command_dep which will be invoked if the linking step didn't happen on the next invocation of make.

oh, there is one configure option that disables this whole thing, you can shoot yourself in the foot with --disable-dependency-tracking.

the examples relating to functions defined in libsc*.a should definitely not happen even if you do only a module local build (make sc).
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to