Kaydet (Commit) 3d12f4c2 authored tarafından Stephan Bergmann's avatar Stephan Bergmann

external/firebird: Fix -fsanitize=function

...while building external/firebird.  I started to get this failure around the
time I switched the machine from Fedora 27 to Fedora 28 beta, but not sure
whether the issue is related to that, nor why it only started to happen now:

> workdir/UnpackedTarball/firebird/src/common/unicode_util.cpp:1206:2: runtime error: call to function u_versionToString_60 through pointer to incorrect function type 'void (*)(unsigned char *, char *)'
> workdir/UnpackedTarball/icu/source/common/putil.cpp:2280: note: u_versionToString_60 defined here
>  #0 in Jrd::UnicodeUtil::getCollVersion(Firebird::StringBase<Firebird::StringComparator> const&, Firebird::StringBase<Firebird::StringComparator> const&, Firebird::StringBase<Firebird::StringComparator>&) at workdir/UnpackedTarball/firebird/src/common/unicode_util.cpp:1206:2 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x22ff24d)
>  #1 in Firebird::IntlUtil::setupIcuAttributes(charset*, Firebird::StringBase<Firebird::StringComparator> const&, Firebird::StringBase<Firebird::StringComparator> const&, Firebird::StringBase<Firebird::StringComparator>&) at workdir/UnpackedTarball/firebird/src/common/IntlUtil.cpp:629:7 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x2277bbd)
>  #2 in INTL_builtin_setup_attributes(char const*, char const*, char const*, unsigned int, unsigned char const*, unsigned int, unsigned char*) at workdir/UnpackedTarball/firebird/src/jrd/intl_builtin.cpp:1731:7 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x16b712c)
>  #3 in Jrd::IntlManager::setupCollationAttributes(Firebird::StringBase<Firebird::StringComparator> const&, Firebird::StringBase<Firebird::StringComparator> const&, Firebird::StringBase<Firebird::StringComparator> const&, Firebird::StringBase<Firebird::StringComparator>&) at workdir/UnpackedTarball/firebird/src/jrd/IntlManager.cpp:689:16 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x16ecd8b)
>  #4 in setupSpecificCollationAttributes(Jrd::thread_db*, Jrd::jrd_tra*, unsigned short, char const*) at workdir/UnpackedTarball/firebird/temp/Debug/jrd/dfw.cpp:7483:7 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x1918f67)
>  #5 in create_collation(Jrd::thread_db*, short, Jrd::DeferredWork*, Jrd::jrd_tra*) at workdir/UnpackedTarball/firebird/temp/Debug/jrd/dfw.cpp:7542:3 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x1936e2e)
>  #6 in DFW_perform_work(Jrd::thread_db*, Jrd::jrd_tra*) at workdir/UnpackedTarball/firebird/temp/Debug/jrd/dfw.cpp:4513:11 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x1912e49)
>  #7 in DFW_perform_system_work(Jrd::thread_db*) at workdir/UnpackedTarball/firebird/temp/Debug/jrd/dfw.cpp:4457:2 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x191259d)
>  #8 in INI_format(char const*, char const*) at workdir/UnpackedTarball/firebird/temp/Debug/jrd/ini.cpp:1808:2 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x18df473)
>  #9 in Jrd::JProvider::createDatabase(Firebird::CheckStatusWrapper*, char const*, unsigned int, unsigned char const*) at workdir/UnpackedTarball/firebird/src/jrd/jrd.cpp:2691:4 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x172d05f)
>  #10 in Firebird::IProviderBaseImpl<Jrd::JProvider, Firebird::CheckStatusWrapper, Firebird::IPluginBaseImpl<Jrd::JProvider, Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IReferenceCountedImpl<Jrd::JProvider, Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IVersionedImpl<Jrd::JProvider, Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IProvider> > > > > > >::cloopcreateDatabaseDispatcher(Firebird::IProvider*, Firebird::IStatus*, char const*, unsigned int, unsigned char const*) at workdir/UnpackedTarball/firebird/src/include/firebird/IdlFbInterfaces.h:9010:44 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x10d511f)
>  #11 in Firebird::IAttachment* Firebird::IProvider::createDatabase<Firebird::CheckStatusWrapper>(Firebird::CheckStatusWrapper*, char const*, unsigned int, unsigned char const*) at workdir/UnpackedTarball/firebird/src/include/firebird/IdlFbInterfaces.h:2034:23 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x3937f4)
>  #12 in Why::Dispatcher::attachOrCreateDatabase(Firebird::CheckStatusWrapper*, bool, char const*, unsigned int, unsigned char const*) at workdir/UnpackedTarball/firebird/src/yvalve/why.cpp:5681:15 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x35adb7)
>  #13 in Why::Dispatcher::createDatabase(Firebird::CheckStatusWrapper*, char const*, unsigned int, unsigned char const*) at workdir/UnpackedTarball/firebird/src/yvalve/why.cpp:5606:9 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x35baa4)
>  #14 in PREPARSE_execute(Firebird::CheckStatusWrapper*, Why::YAttachment**, unsigned short, char const*, bool*, unsigned short) at workdir/UnpackedTarball/firebird/src/yvalve/preparse.cpp:288:26 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x427888)
>  #15 in Why::UtilInterface::executeCreateDatabase(Firebird::CheckStatusWrapper*, unsigned int, char const*, unsigned int, unsigned char*) at workdir/UnpackedTarball/firebird/src/yvalve/utl.cpp:587:8 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x481209)
>  #16 in Firebird::IUtilBaseImpl<Why::UtilInterface, Firebird::CheckStatusWrapper, Firebird::IVersionedImpl<Why::UtilInterface, Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IUtil> > >::cloopexecuteCreateDatabaseDispatcher(Firebird::IUtil*, Firebird::IStatus*, unsigned int, char const*, unsigned int, unsigned char*) at workdir/UnpackedTarball/firebird/src/include/firebird/IdlFbInterfaces.h:12375:44 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x495a09)
>  #17 in Firebird::IAttachment* Firebird::IUtil::executeCreateDatabase<Firebird::CheckStatusWrapper>(Firebird::CheckStatusWrapper*, unsigned int, char const*, unsigned int, unsigned char*) at workdir/UnpackedTarball/firebird/src/include/firebird/IdlFbInterfaces.h:3504:23 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x4c41df)
>  #18 in create_db(char const*, char*) at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:5314:38 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x48606b)
>  #19 in frontend(char const*) at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:6152:10 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x477e4e)
>  #20 in get_statement(char*, unsigned long, char const*) at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:7019:9 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x4740e6)
>  #21 in do_isql() at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:5481:9 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x461d48)
>  #22 in ISQL_main(int, char**) at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:1693:3 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x45d8cf)
>  #23 in main at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:1599:9 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x45cf09)
>  #24 in __libc_start_main at <null> (/lib64/libc.so.6 +0x231ba)
>  #25 in _start at <null> (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x40bd89)

Change-Id: I03ccded73840865f104ccf6d434f425f7c7e6907
Reviewed-on: https://gerrit.libreoffice.org/52620Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarStephan Bergmann <sbergman@redhat.com>
üst 2318501c
......@@ -86,6 +86,17 @@
return *this;
}
StringType& assign(const_pointer s)
--- src/common/unicode_util.cpp
+++ src/common/unicode_util.cpp
@@ -187,7 +187,7 @@
Mutex ciAiTransCacheMutex;
Array<UTransliterator*> ciAiTransCache;
- void (U_EXPORT2 *uVersionToString)(UVersionInfo versionArray, char* versionString);
+ void (U_EXPORT2 *uVersionToString)(UVersionInfo const versionArray, char* versionString);
int32_t (U_EXPORT2 *ulocCountAvailable)();
const char* (U_EXPORT2 *ulocGetAvailable)(int32_t n);
--- src/dsql/StmtNodes.cpp
+++ src/dsql/StmtNodes.cpp
@@ -6643,7 +6643,7 @@
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment