Bert Huijben wrote on Thu, Mar 19, 2015 at 00:44:02 +0100:
> > [[[
> > svn_repos-1.lib(commit.obj) : error LNK2019: unresolved external
> > symbol _svn_editor3p__insert_shims referenced in funct
> > ion _svn_repos_get_commit_editor5
> > [C:\research\svn\dev\move-tracking-2\build\win32\vcnet-
> > vcproj\libsvn_repos_dll.vcxpro
> > j]
> > C:\research\svn\dev\move-tracking-
> > 2\Debug\subversion\libsvn_repos\libsvn_repos-1.dll
> > : fatal error LNK1120: 1 unresolve
> > d externals [C:\research\svn\dev\move-tracking-2\build\win32\vcnet-
> > vcproj\libsvn_repos_dll.vcxproj]
> > ...
> > svn_wc-1.lib(update_editor.obj) : error LNK2019: unresolved external
> > symbol _svn_delta__ev3_from_delta_for_update refer
> > enced in function _make_editor3
> > [C:\research\svn\dev\move-tracking-2\build\win32\vcnet-
> > vcproj\libsvn_wc_dll.vcxproj]
> > svn_wc-1.lib(deprecated.obj) : error LNK2019: unresolved external
> > symbol _svn_delta__delta_from_ev3_for_update referenc
> > ed in function _svn_wc_get_update_editor4
> > [C:\research\svn\dev\move-tracking-2\build\win32\vcnet-
> > vcproj\libsvn_wc_dll.v
> > cxproj]
> > C:\research\svn\dev\move-tracking-2\Debug\subversion\libsvn_wc\libsvn_wc-
> > 1.dll
> > : fatal error LNK1120: 2 unresolved exte
> > rnals [C:\research\svn\dev\move-tracking-2\build\win32\vcnet-
> > vcproj\libsvn_wc_dll.vcxproj]
> > ]]]
>
> I'm guessing this is caused by a missing msvc-export = <new-header> definition in build.conf.
>
> Without that new functions are not exported from .DLLs on Windows.
For what it's worth, here are a pair of scripts that can be used
together to generate a list of headers missing from msvc-export for
a given library.
That's just a proof-of-concept, in particular, it depends on having
an up-to-date tags file in the source tree.
Here is how it works:
% cd root-of-trunk-working-copy
% ctags -R ./
% ./extract-msvc-export.py libsvn_wc
subversion/include/private/svn_wc_private.h
subversion/include/svn_wc.h
% ./compute-msvc-export.py libsvn_wc
subversion/include/private/svn_wc_private.h
subversion/include/svn_wc.h
% list-headers-missing-from-msvc-export-for() { ./extract-msvc-export.py $1 >1; ./compute-msvc-export.py $1 >2; diff 1 2; rm 1 2 }
% list-headers-missing-from-msvc-export-for libsvn_subr
18a19
> subversion/include/private/svn_pseudo_md5.h
This example shows the script correctly determined that svn_pseudo_md5.h
declares functions that are defined in libsvn_subr, but is not listed in
the msvc-export setting for that library.¹
It won't be hard to turn it into a tools/dev/ script that automatically
edits build.conf to add anything that's missing, if anyone thinks that's
a good idea...
Daniel
¹ That svn_pseudo_md5.h discrepancy doesn't break the windows build
because, currently, nothing that uses libsvn_subr.dll uses that header.
Received on 2015-03-19 08:17:34 CET