My clang-cl build does not work with -Zc:dllexportInlines-

Lots of

> [build LNK] Library/cppuhelper3MSC.dll
> servicemanager.o : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl xmlreader::Span::Span(char const *,long)" (__imp_??0Span@xmlreader@@QEAA@PEBDJ@Z) referenced in function "public: __cdecl `anonymous namespace'::Parser::Parser(class rtl::OUString const &,class com::sun::uno::Reference<class com::sun::uno::XComponentContext> const &,struct cppuhelper::ServiceManager::Data *)" (??0Parser@?A0x40CCA2FC@@QEAA@AEBVOUString@rtl@@AEBV?$Reference@VXComponentContext@uno@star@sun@com@@@uno@star@sun@com@@PEAUData@ServiceManager@cppuhelper@@@Z)
> servicemanager.o : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl xmlreader::Span::Span(void)" (__imp_??0Span@xmlreader@@QEAA@XZ) referenced in function "public: __cdecl `anonymous namespace'::Parser::Parser(class rtl::OUString const &,class com::sun::uno::Reference<class com::sun::uno::XComponentContext> const &,struct cppuhelper::ServiceManager::Data *)" (??0Parser@?A0x40CCA2FC@@QEAA@AEBVOUString@rtl@@AEBV?$Reference@VXComponentContext@uno@star@sun@com@@@uno@star@sun@com@@PEAUData@ServiceManager@cppuhelper@@@Z)
> servicemanager.o : error LNK2019: unresolved external symbol "__declspec(dllimport) public: bool __cdecl xmlreader::Span::equals(char const *,long)const " (__imp_?equals@Span@xmlreader@@QEBA_NPEBDJ@Z) referenced in function "public: __cdecl `anonymous namespace'::Parser::Parser(class rtl::OUString const &,class com::sun::uno::Reference<class com::sun::uno::XComponentContext> const &,struct cppuhelper::ServiceManager::Data *)" (??0Parser@?A0x40CCA2FC@@QEAA@AEBVOUString@rtl@@AEBV?$Reference@VXComponentContext@uno@star@sun@com@@@uno@star@sun@com@@PEAUData@ServiceManager@cppuhelper@@@Z)
[...]

Change-Id: I2cf96b8ce52027fa3c307a0973cdfb91fa990763
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125683
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
This commit is contained in:
Stephan Bergmann 2021-11-23 07:49:53 +01:00
parent 780d786d72
commit 1040228c35

View file

@ -7627,7 +7627,9 @@ fi
AC_SUBST([HAVE_BROKEN_GCC_WSTRINGOP_OVERFLOW])
HAVE_DLLEXPORTINLINES=
if test "$_os" = "WINNT"; then
dnl At least for Clang 14 trunk, -Zc:dllexportInlines- would cause lots of unresolved symbols when
dnl linking e.g. Library_cppuhelper, for whatever reason:
if test "$_os" = "WINNT" && test "$COM_IS_CLANG" != TRUE; then
AC_MSG_CHECKING([whether $CXX_BASE supports -Zc:dllexportInlines-])
AC_LANG_PUSH([C++])
save_CXXFLAGS=$CXXFLAGS