1782810f88
Size of buffer on stack is 256 characters. Logging function usage in make check, of >1 100 000 invocations, the longest string was 80 characters, average being 4.6 characters. So heap allocation is unlikely in scenarios with intensive function usage. Several existing unit tests had to be fixed. Usually, the change is either minimal or getting closer to what Excel returns (for Calc tests). But in case of AMORDEGRC, I had to change rate value passed to the function from 0.3 to 0.31. It's because the closest double value for 0.3 is 0.29999999999999999, which is a bit less than 0.3; multiplied by 1.5, this gives 0.44999999999999996, and then rounding the result of multiplication of the latter by cost gave the result 1 less than before, when 0.3 was imported as 0.30000000000000004. Now the function returns a value 1 less than Excel for that set of arguments. I don't see how to fix that. Having rate slightly different gives consistent result between Calc and Excel. Change-Id: Icae5ce374fe0c31a1aa10cee815e65ef0014f382 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89422 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
266 lines
5.6 KiB
Makefile
266 lines
5.6 KiB
Makefile
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
|
|
#
|
|
#
|
|
# This file is part of the LibreOffice project.
|
|
#
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
#
|
|
|
|
$(eval $(call gb_Library_Library,sal))
|
|
|
|
$(eval $(call gb_Library_set_soversion_script,sal,$(SRCDIR)/sal/util/sal.map))
|
|
|
|
$(eval $(call gb_Library_set_precompiled_header,sal,sal/inc/pch/precompiled_sal))
|
|
|
|
$(eval $(call gb_Library_set_include,sal,\
|
|
$$(INCLUDE) \
|
|
-I$(SRCDIR)/sal/inc \
|
|
))
|
|
|
|
$(eval $(call gb_Library_add_defs,sal,\
|
|
$(if $(filter FUZZERS,$(BUILD_TYPE)), \
|
|
-DFORCE_DEFAULT_SIGNAL \
|
|
) \
|
|
$(if $(filter iOS,$(OS)), \
|
|
-DNO_CHILD_PROCESSES \
|
|
) \
|
|
-DSAL_DLLIMPLEMENTATION \
|
|
-DRTL_OS="\"$(RTL_OS)\"" \
|
|
-DRTL_ARCH="\"$(RTL_ARCH)\"" \
|
|
-DSRCDIR="\"$(SRCDIR)\"" \
|
|
))
|
|
|
|
$(eval $(call gb_Library_use_libraries,sal,\
|
|
$(if $(filter ANDROID,$(OS)), \
|
|
lo-bootstrap \
|
|
) \
|
|
))
|
|
|
|
$(eval $(call gb_Library_use_externals,sal,\
|
|
dtoa \
|
|
valgrind \
|
|
))
|
|
|
|
$(eval $(call gb_Library_use_system_win32_libs,sal,\
|
|
advapi32 \
|
|
comdlg32 \
|
|
dbghelp \
|
|
mpr \
|
|
ole32 \
|
|
shell32 \
|
|
user32 \
|
|
userenv \
|
|
wer \
|
|
ws2_32 \
|
|
))
|
|
|
|
$(eval $(call gb_Library_add_libs,sal,\
|
|
$(if $(filter LINUX,$(OS)), \
|
|
-ldl \
|
|
-lrt \
|
|
) \
|
|
$(if $(filter SOLARIS,$(OS)), \
|
|
-lnsl \
|
|
-lsocket \
|
|
) \
|
|
$(if $(filter HAIKU,$(OS)), \
|
|
-lnetwork \
|
|
) \
|
|
))
|
|
|
|
ifeq ($(OS),MACOSX)
|
|
$(eval $(call gb_Library_use_system_darwin_frameworks,sal,\
|
|
Carbon \
|
|
CoreFoundation \
|
|
Foundation \
|
|
$(if $(ENABLE_MACOSX_SANDBOX),Security) \
|
|
))
|
|
endif
|
|
|
|
$(eval $(call gb_Library_add_exception_objects,sal,\
|
|
sal/osl/all/compat \
|
|
sal/osl/all/debugbase \
|
|
sal/osl/all/filepath \
|
|
sal/osl/all/loadmodulerelative \
|
|
sal/osl/all/log \
|
|
sal/osl/all/signalshared \
|
|
sal/osl/all/utility \
|
|
sal/rtl/alloc_arena \
|
|
sal/rtl/alloc_cache \
|
|
sal/rtl/alloc_fini \
|
|
sal/rtl/alloc_global \
|
|
sal/rtl/bootstrap \
|
|
sal/rtl/byteseq \
|
|
sal/rtl/cipher \
|
|
sal/rtl/cmdargs \
|
|
sal/rtl/crc \
|
|
sal/rtl/digest \
|
|
sal/rtl/hash \
|
|
sal/rtl/locale \
|
|
sal/rtl/math \
|
|
sal/rtl/random \
|
|
sal/rtl/rtl_process \
|
|
sal/rtl/strbuf \
|
|
sal/rtl/strimp \
|
|
sal/rtl/string \
|
|
sal/rtl/unload \
|
|
sal/rtl/uri \
|
|
sal/rtl/ustrbuf \
|
|
sal/rtl/ustring \
|
|
sal/rtl/uuid \
|
|
sal/textenc/converter \
|
|
sal/textenc/convertsimple \
|
|
sal/textenc/handleundefinedunicodetotextchar \
|
|
sal/textenc/tcvtutf8 \
|
|
sal/textenc/tencinfo \
|
|
sal/textenc/textcvt \
|
|
sal/textenc/textenc \
|
|
sal/textenc/unichars \
|
|
))
|
|
|
|
ifeq ($(OS),iOS)
|
|
$(eval $(call gb_Library_add_cxxflags,sal,\
|
|
$(gb_OBJCXXFLAGS) \
|
|
))
|
|
endif
|
|
|
|
sal_textenc_code= \
|
|
sal/textenc/context \
|
|
sal/textenc/convertbig5hkscs \
|
|
sal/textenc/converteuctw \
|
|
sal/textenc/convertgb18030 \
|
|
sal/textenc/convertisciidevangari \
|
|
sal/textenc/convertiso2022cn \
|
|
sal/textenc/convertiso2022jp \
|
|
sal/textenc/convertiso2022kr \
|
|
sal/textenc/convertsinglebytetobmpunicode \
|
|
sal/textenc/tables \
|
|
sal/textenc/tcvtbyte \
|
|
sal/textenc/tcvtmb \
|
|
sal/textenc/tcvtutf7 \
|
|
|
|
ifeq ($(OS),ANDROID)
|
|
$(eval $(call gb_Library_add_exception_objects,sal,\
|
|
$(sal_textenc_code) \
|
|
))
|
|
else ifeq ($(DISABLE_DYNLOADING),TRUE)
|
|
|
|
$(eval $(call gb_Library_add_exception_objects,sal,\
|
|
$(sal_textenc_code) \
|
|
))
|
|
endif
|
|
|
|
ifneq ($(OS),WNT)
|
|
$(eval $(call gb_Library_add_exception_objects,sal,\
|
|
sal/osl/unx/backtraceapi \
|
|
sal/osl/unx/conditn \
|
|
sal/osl/unx/file \
|
|
sal/osl/unx/file_error_transl \
|
|
sal/osl/unx/file_misc \
|
|
sal/osl/unx/file_path_helper \
|
|
sal/osl/unx/file_stat \
|
|
sal/osl/unx/file_url \
|
|
sal/osl/unx/file_volume \
|
|
sal/osl/unx/memory \
|
|
sal/osl/unx/module \
|
|
sal/osl/unx/mutex \
|
|
sal/osl/unx/nlsupport \
|
|
sal/osl/unx/pipe \
|
|
sal/osl/unx/process \
|
|
sal/osl/unx/process_impl \
|
|
sal/osl/unx/profile \
|
|
sal/osl/unx/random \
|
|
sal/osl/unx/readwrite_helper \
|
|
sal/osl/unx/salinit \
|
|
sal/osl/unx/security \
|
|
sal/osl/unx/signal \
|
|
sal/osl/unx/socket \
|
|
sal/osl/unx/soffice \
|
|
sal/osl/unx/tempfile \
|
|
sal/osl/unx/thread \
|
|
sal/osl/unx/time \
|
|
))
|
|
|
|
# Note that the uunxapi.mm file just includes the uunxapi.cxx one. Ditto for system.mm
|
|
ifeq ($(OS),MACOSX)
|
|
$(eval $(call gb_Library_add_objcxxobjects,sal,\
|
|
sal/osl/unx/uunxapi \
|
|
sal/osl/unx/system \
|
|
))
|
|
else
|
|
$(eval $(call gb_Library_add_exception_objects,sal,\
|
|
sal/osl/unx/uunxapi \
|
|
sal/osl/unx/system \
|
|
))
|
|
endif
|
|
|
|
ifneq ($(filter MACOSX iOS,$(OS)),)
|
|
$(eval $(call gb_Library_add_exception_objects,sal,\
|
|
sal/osl/unx/osxlocale \
|
|
))
|
|
endif
|
|
ifneq ($(OS),WNT)
|
|
$(eval $(call gb_Library_add_cobjects,sal,\
|
|
sal/osl/unx/backtrace \
|
|
))
|
|
endif
|
|
ifneq ($(filter SPARC64 SPARC,$(CPUNAME)),)
|
|
$(eval $(call gb_Library_add_asmobjects,sal,\
|
|
sal/osl/unx/asm/interlck_sparc \
|
|
))
|
|
else
|
|
$(eval $(call gb_Library_add_exception_objects,sal,\
|
|
sal/osl/unx/interlck \
|
|
))
|
|
endif
|
|
|
|
else # $(OS) == WNT
|
|
|
|
# FIXME ?
|
|
# .IF "$(CCNUMVER)" >= "001400000000"
|
|
# $(eval $(call gb_Library_add_defs,sal,\
|
|
-D_CRT_NON_CONFORMING_SWPRINTFS \
|
|
))
|
|
# .ENDIF
|
|
|
|
$(eval $(call gb_Library_add_exception_objects,sal,\
|
|
sal/osl/w32/backtrace \
|
|
sal/osl/w32/conditn \
|
|
sal/osl/w32/dllentry \
|
|
sal/osl/w32/file \
|
|
sal/osl/w32/file_dirvol \
|
|
sal/osl/w32/file_error \
|
|
sal/osl/w32/file_url \
|
|
sal/osl/w32/interlck \
|
|
sal/osl/w32/memory \
|
|
sal/osl/w32/module \
|
|
sal/osl/w32/mutex \
|
|
sal/osl/w32/nlsupport \
|
|
sal/osl/w32/path_helper \
|
|
sal/osl/w32/pipe \
|
|
sal/osl/w32/process \
|
|
sal/osl/w32/procimpl \
|
|
sal/osl/w32/profile \
|
|
sal/osl/w32/random \
|
|
sal/osl/w32/salinit \
|
|
sal/osl/w32/security \
|
|
sal/osl/w32/signal \
|
|
sal/osl/w32/socket \
|
|
sal/osl/w32/tempfile \
|
|
sal/osl/w32/thread \
|
|
sal/osl/w32/time \
|
|
))
|
|
|
|
endif # ifneq ($(OS),WNT)
|
|
|
|
ifeq ($(ENABLE_CIPHER_OPENSSL_BACKEND),TRUE)
|
|
$(eval $(call gb_Library_add_defs,sal,-DLIBO_CIPHER_OPENSSL_BACKEND))
|
|
$(eval $(call gb_Library_use_externals,sal, \
|
|
openssl \
|
|
openssl_headers \
|
|
))
|
|
endif
|
|
|
|
# vim: set noet sw=4 ts=4:
|