summaryrefslogtreecommitdiff
path: root/configure.ac
AgeCommit message (Collapse)Author
2024-06-02Latest VS 2022 Preview is 17.11.0 nowTaichi Haradaguchi
...while latest proper VS 2022 is 17.10.0 Change-Id: Ibc8c1c331659cb607e0dd51793097ac0495badb0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168303 Tested-by: Jenkins Reviewed-by: Taichi Haradaguchi <20001722@ymail.ne.jp>
2024-05-29Emscripten: Unconditional --enable-wasm-exceptionsStephan Bergmann
(...which will be beneficial, in turn, to implement exception handling in the work-in-progress bridges/source/cpp_uno/gcc3_wasm UNO bridge). As per <https://developer.mozilla.org/en-US/docs/WebAssembly#browser_compatibility>, Wasm exceptions appear to be supported by most if not all relevant engines by now. * Lets see whether the "Note that to really use WASM exceptions everywhere" for external libraries in solenv/gbuild/platform/EMSCRIPTEN_INTEL_GCC.mk does have any practical consequences (but ignoring it for now). * This change depends on the preceding 77129fbb74bcefde4551d494f029169e7c6026e3 "Emscripten: Add hack to prepare for --enable-wasm-exceptions" to work around the issue that was mentioned in static/README.wasm.md. * In unotest/source/embindtest/embindtest.js, getExceptionMessage started to work now, no longer exhibiting the RuntimeError that had been documented there for non-Wasm-based exceptions. Change-Id: Ifa2165b62208cc927844684911ddf21a4a2b624f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168169 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-05-27Bump emscripten minimum to 2.0.32 for as_handleJulien Nabet
Reading https://github.com/emscripten-core/emscripten/blob/main/ChangeLog.md val::as_handle() has been added with 2.0.32 It'll allow WASM Jenkins to fail at the configure check step instead in the build with: /home/tdf/jenkins/workspace/lo_gerrit/tb/src_wasm/static/source/unoembindhelpers/PrimaryBindings.cxx:231:37: error: no member named 'as_handle' in 'emscripten::val' = _emval_as(rObject.as_handle(), getTypeId(rUnoType), &destructors); ~~~~~~~ ^ /home/tdf/jenkins/workspace/lo_gerrit/tb/src_wasm/static/source/unoembindhelpers/PrimaryBindings.cxx:240:37: error: no member named 'as_handle' in 'emscripten::val' = _emval_as(rObject.as_handle(), getTypeId(rUnoType), &destructors); ~~~~~~~ ^ 2 errors generated. Change-Id: I7531256de46cd4b86b6eac9b1f8d16cad7b46ae2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168035 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-05-21tdf#145735 avmedia qt: Use QtMultimedia for Qt 6 media playbackMichael Weghorn
Similar to the way that GTK 4's native facilities for video playback are used for the gtk4 VCL plugin, initially added in commit commit d0a527ec09516bc7215baf229adb90cd21ffa27a Author: Caolán McNamara <caolanm@redhat.com> Date: Thu Feb 10 12:55:18 2022 +0000 first cut at using Gtk4 built in video playback , implement media playback using QtMultimedia for the Qt 6 based VCL plugins (qt6/kf6) via a new service "com.sun.star.comp.avmedia.Manager_Qt". Video playback with the mechanism used for qt5 no longer works with qt6, as "qwidget5videosink" that gets used on Wayland for qt5 wasn't ported to Qt 6 and is unmaintained, s. the commit message of commit 88d57cf241209ffec9eaed3e523942ab51af6db6 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Sep 29 11:09:51 2021 +0200 qt6: Add a qt6 VCL plugin for more details. Additionally, this also doesn't work properly any more on X11/with the xcb Qt QPA platform, see tdf#145735 comment 7. Instead of using GStreamer directly, let Qt handle the low-level stuff by using the QtMultimedia module [1] instead. This adds a new dependency on QtMultimedia. For building, this requires installing the Qt 6 QtMultimedia development headers (e.g. package `qt6-multimedia-dev` on current Debian testing). Except for WASM, the use of QtMultimedia is enabled by default when building with autogen options `--enable-qt6` or `--enable-kf6`, but can explicitly be disabled using `--disable-qt6-multimedia`. In tests with the qt6 VCL plugin on Debian testing, with a sample presentation containing an embedded video, attachment 145517 from tdf#120452, video playback generally works for both, the xcb and the wayland Qt QPA platforms: * Video and audio are played as expected on the external screen in presentation mode when using the presenter console * Video and audio playback work in non-presentation mode by clicking on the video and using the controls in the Impress sidebar (play, pause,...). However, the following issues were observed with the current implementation: * There's an odd frame/margin around the video. * In non-presentation mode, the placeholder shown until the video gets started using the controls in the sidebar is just an "audio icon", not a frame from the actual video. (This might be related to the fact that `QtPlayer::createFrameGrabber` currently returns an empty reference.) * At least on Wayland (issue not observed with QT_QPA_PLATFORM=xcb so far), when using the presenter console, video playback in the presenter console (i.e. on the non-presentation screen) is unreliable: The video sometimes shows, but sometimes doesn't. At least the (more important) one on the presentation screen was reliably shown in my tests, however. Tested with git dev versions of qtbase (as of commit 8d5e7d50d8dbf1ad79bd8ff9f6ef6028eba481c9), qtwayland (as of commit 6f0ebd916f176f6fbe35af28caeb52b62768ac94) and qtmultimedia (as of commit 264b7e8d7d5683252102b5e5149685c8b8a70c2d). [1] https://doc.qt.io/qt-6/qtmultimedia-index.html Change-Id: I29c3c7ded01c61b49b192fa5c313d8a92c942185 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167869 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-05-21Fix bashism in configure tests for curl and libcmisChris Mayo
When /bin/sh is dash: ./configure: 35165: test: yes: unexpected operator checking whether to enable breakpad... no ./configure: 35218: test: yes: unexpected operator Causing HAVE_FEATURE_CURL not to be set to 1 and build to fail: sw/source/ui/misc/translatelangselect.cxx:160:24: error: no member named 'TranslateDocumentCancellable' in namespace 'SwTranslateHelper' 160 | SwTranslateHelper::TranslateDocumentCancellable(m_rWrtSh, aConfig, m_bCancelTranslation); | ~~~~~~~~~~~~~~~~~~~^ Introduced in: 5bf7c2fa5794 ("Fix --disable-curl build", 2023-09-14) Change-Id: Ifbc4bc1a7cde86101ff13b05ec7cee6836798605 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167831 Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org> Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org> Tested-by: Jenkins
2024-05-16android: Set android.ndkVersion for GradleMichael Weghorn
Set the `android.ndkVersion` property [1] for the Android Gradle Plugin, in addition to `android.ndkPath` that is set there already. This addresses the warning > Task :stripStrippedUIEditingDebugDebugSymbols [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. Unable to strip the following libraries, packaging them as they are: libc++_shared.so, libfreebl3.so, liblo-native-code.so, libnspr4.so, libnss3.so, libnssckbi.so, libnssdbm3.so, libnssutil3.so, libplc4.so, libplds4.so, libsmime3.so, libsoftokn3.so, libsqlite3.so, libssl3.so. that started to show up in a local `--with-android-ndk=$HOME/Android/Sdk/ndk/25.1.8937393` Android build after commit 1610ebc06b34263bf3e525babe1e583b932f6242 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Mon May 13 10:47:49 2024 +0200 android: Update Android Gradle Plugin to 8.4.0 ... and gradle to 8.6, as suggested by Android Studio. As described at [2], that Android Gradle Plugin defaults to NDK 26.1.10909125. [1] https://developer.android.com/studio/projects/install-ndk#apply-specific-version [2] https://developer.android.com/build/releases/gradle-plugin Change-Id: Ied81f13f535303f9578177646f177b4ef791eefa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167715 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-05-14bump product version to 24.8.0.0.alpha1+Christian Lohmaier
Change-Id: I96d168560db02ea3cad2eb3e428e1d17bc8d10d6
2024-05-13Update to ICU 74.1Taichi Haradaguchi
https://icu.unicode.org/download/74 Unicode 15.1 https://blog.unicode.org/2023/09/announcing-unicode-standard-version-151.html CLDR 44 https://cldr.unicode.org/index/downloads/cldr-44 New Unicode blocks: UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_I Change-Id: Ic9196e10138663d07235f5ebd9cc4bf3a9750824 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158749 Tested-by: Eike Rathke <erack@redhat.com> Reviewed-by: Eike Rathke <erack@redhat.com>
2024-05-07use windows doxygen in wsl-as-helper caseChristian Lohmaier
basically reverts f7fe6a0bed2c2aee19535a26181a2edfb103e587 avoiding the penalty for accessing files in the windows-realm from within the wsl-container significantly accelerates the doc-generation Change-Id: I95af905bda7225a9c1924a41e952656dffbfbc0b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167279 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2024-04-27fix some hardcoded use of wsl.exe and fix some typosChristian Lohmaier
Change-Id: I6152ee61913638f828eeb201ecb26312de5f8572 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166737 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Jenkins
2024-04-26add --with-keep-awake switch to prevent going into sleep/suspendChristian Lohmaier
if used defaults to Awake for Windows and caffeinate for macOS Change-Id: I35f41bf1fb63af05ce2ec1a7f4d7b50b310536a3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166743 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Jenkins
2024-04-26Make odfvalidator and officeotron work in WSL_ONLY_AS_HELPER modeStephan Bergmann
...where e.g. CppunitTest_oox_testscene3d CPPUNIT_TEST_NAME=test_material_wireframe::TestBody had failed with > forced failure > - Error: Unable to access jarfile /mnt/d/lo/tar/odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar and e.g. CppunitTest_oox_mcgr CPPUNIT_TEST_NAME=testAxialColorLinearTrans::TestBody had failed with > equality assertion failed > - Expected: 0 > - Actual : 1 > - failed to execute: sh D:/lo-wsl/core/bin/officeotron.sh C:\Users\steph\AppData\Local\Temp\test_oox_mcgr.dll2epgul.tmp > C:\Users\steph\AppData\Local\Temp\test_oox_mcgr.dll2epgup.tmp 2>&1 > Error: Unable to access jarfile /mnt/d/lo/tar/8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar Change-Id: I094b76daff6eef2cb6a9874a4776bab9c4424f49 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166703 Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Tested-by: Jenkins
2024-04-26Support --with-junit/hamcrest in WSL_ONLY_AS_HELPER modeStephan Bergmann
...where it failed with > checking for JUnit 4... ./configure: line 47354: cygpath: command not found Change-Id: I56c930b6c8b738b39f26766f90476c32efb383e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166508 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Jenkins
2024-04-26Honor TMPDIR configure option in WSL_ONLY_AS_HELPER modeStephan Bergmann
(It needs to be passed-in as a TMPDIR=/mnt/c/... style path, because configure uses it early on and otherwise fails with some > checking build system type... config.guess: cannot create a temporary directory in C:/... error.) Change-Id: I798ed7dd363eb5fd7614c5984861f77cf9d38266 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166506 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2024-04-26Don't hardcode build as x86_64 for WSL_ONLY_AS_HELPERStephan Bergmann
...to also make it work builds on aarch64 Change-Id: Ibc502b11eedceddb84481c2ad5d351bf8404c8cf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166501 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2024-04-26initial support for running autogen.sh inside wsl from git-bashChristian Lohmaier
Change-Id: I4272ea817a48880fd4206d6c73add7ccb8c4f6c5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166335 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2024-04-26look for java, javac and javadoc with the .exe suffix on windowsChristian Lohmaier
while it doesn't make a difference from within cygwin or from within git-bash, it does affect checks from wsl into windows since the version without .exe isn't found/only the .exe does actually exist as a file<. Cygwin portion already explicitly checked for the .exe to determine whether the JDK home is valid, so just use it like that. Change-Id: Ifc0238f54ed4326de27840136589e64fcdb6f3e3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166334 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Jenkins
2024-04-26use unix paths for dir tests and prefer PathFormat…Christian Lohmaier
over manual cygpath calls. Since PathFormat checks whether the path is 8.3 compatible/in case of spaces or other incompatible characters remove some superfluous checks also drop a workaround for VS2017 (minimum requried version is 2019) Change-Id: I2d098cf323c96862c06acf7605abacbefe8a35ad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166333 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Jenkins
2024-04-26configure.ac: split registry path from registry keyChristian Lohmaier
in preparation for an upcoming change to read values using reg.exe Also fixes a bug in determining UCRTVERSION from the Windows SDK's ProductVersion registry value (misses trailing .0) Change-Id: I66236ba6bf38393e6f7c7ab83706657a6e96769c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166332 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2024-04-22add undefining FORTIFY_SOURCE to the gcc no-opt flagsCaolán McNamara
We build non-optimized files by adding the no-opt flags to the compiler options that include the optimized flags, so add undefining FORTIFY_SOURCE to the -O0 line motivation here to have --enable-hardening-flags not add unhelpful extra warnings to the build for the parts built with -O0 Change-Id: Ib5416ad7f9f5ef907d7c767a5ebff6343b035cfe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166458 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-04-22tdf#150082: LO Base MariaDB/MySQL connector don't accept auth via gssapiJulien Nabet
Exclude Windows since we're not sure gssapi.h is available (at least Jenkins Windows machine doesn't have it) Change-Id: Iba396f77b07dce4291de5eb0e6ad7c0c25e6c3c7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159954 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2024-04-22configure: cygwin issue with date fixedVasily Melenchuk
previous variant was causing: "bash: /dev/null: ambiguous redirect" and value was written Change-Id: Ic8762a98f11ef2fee669478b5694ae1c5fb0b8ce Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166294 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2024-04-19add --enable-hardening-flags to enable compiler hardening flagsCaolán McNamara
distros typically have their own set via C[XX]FLAGS, so make this an optional argument some notes on the options: -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 https://www.redhat.com/en/blog/enhance-application-security-fortifysource (I see Fedora has recently bumped to to 3 since Jan 2024 https://fedoraproject.org/wiki/Changes/Add_FORTIFY_SOURCE%3D3_to_distribution_build_flags but here use 2 for now instead) -Wp,-D_GLIBCXX_ASSERTIONS https://fedoraproject.org/wiki/Changes/HardeningFlags28 -fstack-protector-strong (We already apply this by default) -fstack-clash-protection https://fedoraproject.org/wiki/Changes/HardeningFlags28 -fcf-protection https://fedoraproject.org/wiki/Changes/HardeningFlags28 https://cgit.freedesktop.org/libreoffice/core/commit/?id=af55dc3891f7950d392175004b2090cb0e54828e and record the compiler flags in debuginfo -grecord-gcc-switches Change-Id: Ib05387bad8324b188bd4ed0ee327d6a7cf83973b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163312 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Andras Timar <andras.timar@collabora.com> (cherry picked from commit 33483058f6e27f39633114721f7329c90571101d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166289 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-04-09Avoid -O2 in AC_PROG_CC/CXX, work around occasional Clang 12.0.1 SEGVsStephan Bergmann
At least with one ASan/UBSan setup of mine using LODE's Clang 12.0.1, ./autogen.sh would occasionally detect -std=gnu11 as the required CC "option to enable C11 features" (which would in turn cause building external/firebird to fail oddly; an issue worth investigations of its own), because Clang would occasionally crash with a SEGV on the corresponding configure test program's first invocation (without -std=gnu11) when invoked with -O2 (and happen to succeed on second invocation with -std=gnu11, so configure thinks that's needed), see below for a relevant config.log excerpt. When CC/CXX are already set (as is the case in this scenario), we could arguably skip the AC_PROG_CC/CXX checks entirely (and thus avoid configure potentially adding -std=gnu11 to CC), but at least AC_PROG_CC also internally sets the GCC shell var, which we use in configure.ac. So better be conservative and just avoid -O2 during AC_PROG_CC/CXX (whatever the autoconf motivation to include it in the first place). > configure:8165: checking for /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=local-bounds -fsanitize-blacklist=/home/sberg/lo0/core/sanitize-ubsan-excludelist option to enable C11 features > configure:8180: /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=local-bounds -fsanitize-blacklist=/home/sberg/lo0/core/sanitize-ubsan-excludelist -c -g -O2 conftest.c >&5 > PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script. > Stack dump: > 0. Program arguments: /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=local-bounds -fsanitize-blacklist=/home/sberg/lo0/core/sanitize-ubsan-excludelist -c -g -O2 conftest.c > 1. <eof> parser at end of file > 2. Code generation > #0 0x000055f3a890caf2 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1c3eaf2) > #1 0x000055f3a890a734 llvm::sys::RunSignalHandlers() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1c3c734) > #2 0x000055f3a887b998 CrashRecoverySignalHandler(int) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1bad998) > #3 0x00007f750d24e520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520) > #4 0x000055f3a93f9cd4 llvm::DIE::getUnitDie() const (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x272bcd4) > #5 0x000055f3a9404574 llvm::DwarfDebug::finishEntityDefinitions() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2736574) > #6 0x000055f3a941df99 llvm::DwarfDebug::finalizeModuleInfo() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x274ff99) > #7 0x000055f3a9421128 llvm::DwarfDebug::endModule() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2753128) > #8 0x000055f3a93f1219 llvm::AsmPrinter::doFinalization(llvm::Module&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2723219) > #9 0x000055f3a82478f5 llvm::FPPassManager::doFinalization(llvm::Module&) (.localalias) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x15798f5) > #10 0x000055f3a8253900 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1585900) > #11 0x000055f3a8bb57d3 (anonymous namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (.constprop.0) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1ee77d3) > #12 0x000055f3a8bb76ea clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout const&, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1ee96ea) > #13 0x000055f3a9825876 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2b57876) > #14 0x000055f3aa35c549 clang::ParseAST(clang::Sema&, bool, bool) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x368e549) > #15 0x000055f3a91ef2d9 clang::FrontendAction::Execute() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x25212d9) > #16 0x000055f3a91903a3 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x24c23a3) > #17 0x000055f3a92a2fd8 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x25d4fd8) > #18 0x000055f3a7798815 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0xaca815) > #19 0x000055f3a77961a7 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0xac81a7) > #20 0x000055f3a9039689 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const::'lambda'()>(long) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x236b689) > #21 0x000055f3a887baa7 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1badaa7) > #22 0x000055f3a903a802 clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const (.part.0) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x236c802) > #23 0x000055f3a900fbec clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2341bec) > #24 0x000055f3a9010679 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2342679) > #25 0x000055f3a901e8f1 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x23508f1) > #26 0x000055f3a7717e6f main (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0xa49e6f) > #27 0x00007f750d235d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90) > #28 0x00007f750d235e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40) > #29 0x000055f3a7795b55 _start (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0xac7b55) > clang-12: error: clang frontend command failed with exit code 139 (use -v to see invocation) > clang version 12.0.1 (https://github.com/llvm/llvm-project.git fed41342a82f5a3a9201819a82bf7a48313e296b) > Target: x86_64-unknown-linux-gnu > Thread model: posix > InstalledDir: /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin > clang-12: note: diagnostic msg: > ******************** > > PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT: > Preprocessed source(s) and associated run script(s) are located at: > clang-12: note: diagnostic msg: /tmp/conftest-968380.c > clang-12: note: diagnostic msg: /tmp/conftest-968380.sh > clang-12: note: diagnostic msg: > > ******************** > configure:8180: $? = 139 > configure: failed program was: > | /* confdefs.h */ > | #define PACKAGE_NAME "LibreOffice" > | #define PACKAGE_TARNAME "libreoffice" > | #define PACKAGE_VERSION "24.8.0.0.alpha0+" > | #define PACKAGE_STRING "LibreOffice 24.8.0.0.alpha0+" > | #define PACKAGE_BUGREPORT "" > | #define PACKAGE_URL "http://documentfoundation.org/" > | #define LIBO_VERSION_MAJOR 24 > | #define LIBO_VERSION_MINOR 8 > | #define LIBO_VERSION_MICRO 0 > | #define LIBO_VERSION_PATCH 0 > | #define LIBO_THIS_YEAR 2024 > | #define SRCDIR "/home/sberg/lo0/core" > | #define SRC_ROOT "/home/sberg/lo0/core" > | #define BUILDDIR "/home/sberg/lo0/core" > | #define USE_HEADLESS_CODE 1 > | #define ENABLE_HEADLESS 1 > | /* end confdefs.h. */ > | > | /* Does the compiler advertise C89 conformance? > | Do not test the value of __STDC__, because some compilers set it to 0 > | while being otherwise adequately conformant. */ > | #if !defined __STDC__ > | # error "Compiler does not advertise C89 conformance" > | #endif > | > | #include <stddef.h> > | #include <stdarg.h> > | struct stat; > | /* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ > | struct buf { int x; }; > | struct buf * (*rcsopen) (struct buf *, struct stat *, int); > | static char *e (p, i) > | char **p; > | int i; > | { > | return p[i]; > | } > | static char *f (char * (*g) (char **, int), char **p, ...) > | { > | char *s; > | va_list v; > | va_start (v,p); > | s = g (p, va_arg (v,int)); > | va_end (v); > | return s; > | } > | > | /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has > | function prototypes and stuff, but not \xHH hex character constants. > | These do not provoke an error unfortunately, instead are silently treated > | as an "x". The following induces an error, until -std is added to get > | proper ANSI mode. Curiously \x00 != x always comes out true, for an > | array size at least. It is necessary to write \x00 == 0 to get something > | that is true only with -std. */ > | int osf4_cc_array ['\x00' == 0 ? 1 : -1]; > | > | /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters > | inside strings and character constants. */ > | #define FOO(x) 'x' > | int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; > | > | int test (int i, double x); > | struct s1 {int (*f) (int a);}; > | struct s2 {int (*f) (double a);}; > | int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), > | int, int); > | > | // Does the compiler advertise C99 conformance? > | #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L > | # error "Compiler does not advertise C99 conformance" > | #endif > | > | #include <stdbool.h> > | extern int puts (const char *); > | extern int printf (const char *, ...); > | extern int dprintf (int, const char *, ...); > | extern void *malloc (size_t); > | > | // Check varargs macros. These examples are taken from C99 6.10.3.5. > | // dprintf is used instead of fprintf to avoid needing to declare > | // FILE and stderr. > | #define debug(...) dprintf (2, __VA_ARGS__) > | #define showlist(...) puts (#__VA_ARGS__) > | #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) > | static void > | test_varargs_macros (void) > | { > | int x = 1234; > | int y = 5678; > | debug ("Flag"); > | debug ("X = %d\n", x); > | showlist (The first, second, and third items.); > | report (x>y, "x is %d but y is %d", x, y); > | } > | > | // Check long long types. > | #define BIG64 18446744073709551615ull > | #define BIG32 4294967295ul > | #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) > | #if !BIG_OK > | #error "your preprocessor is broken" > | #endif > | #if BIG_OK > | #else > | #error "your preprocessor is broken" > | #endif > | static long long int bignum = -9223372036854775807LL; > | static unsigned long long int ubignum = BIG64; > | > | struct incomplete_array > | { > | int datasize; > | double data[]; > | }; > | > | struct named_init { > | int number; > | const wchar_t *name; > | double average; > | }; > | > | typedef const char *ccp; > | > | static inline int > | test_restrict (ccp restrict text) > | { > | // See if C++-style comments work. > | // Iterate through items via the restricted pointer. > | // Also check for declarations in for loops. > | for (unsigned int i = 0; *(text+i) != '\0'; ++i) > | continue; > | return 0; > | } > | > | // Check varargs and va_copy. > | static bool > | test_varargs (const char *format, ...) > | { > | va_list args; > | va_start (args, format); > | va_list args_copy; > | va_copy (args_copy, args); > | > | const char *str = ""; > | int number = 0; > | float fnumber = 0; > | > | while (*format) > | { > | switch (*format++) > | { > | case 's': // string > | str = va_arg (args_copy, const char *); > | break; > | case 'd': // int > | number = va_arg (args_copy, int); > | break; > | case 'f': // float > | fnumber = va_arg (args_copy, double); > | break; > | default: > | break; > | } > | } > | va_end (args_copy); > | va_end (args); > | > | return *str && number && fnumber; > | } > | > | > | // Does the compiler advertise C11 conformance? > | #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L > | # error "Compiler does not advertise C11 conformance" > | #endif > | > | // Check _Alignas. > | char _Alignas (double) aligned_as_double; > | char _Alignas (0) no_special_alignment; > | extern char aligned_as_int; > | char _Alignas (0) _Alignas (int) aligned_as_int; > | > | // Check _Alignof. > | enum > | { > | int_alignment = _Alignof (int), > | int_array_alignment = _Alignof (int[100]), > | char_alignment = _Alignof (char) > | }; > | _Static_assert (0 < -_Alignof (int), "_Alignof is signed"); > | > | // Check _Noreturn. > | int _Noreturn does_not_return (void) { for (;;) continue; } > | > | // Check _Static_assert. > | struct test_static_assert > | { > | int x; > | _Static_assert (sizeof (int) <= sizeof (long int), > | "_Static_assert does not work in struct"); > | long int y; > | }; > | > | // Check UTF-8 literals. > | #define u8 syntax error! > | char const utf8_literal[] = u8"happens to be ASCII" "another string"; > | > | // Check duplicate typedefs. > | typedef long *long_ptr; > | typedef long int *long_ptr; > | typedef long_ptr long_ptr; > | > | // Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. > | struct anonymous > | { > | union { > | struct { int i; int j; }; > | struct { int k; long int l; } w; > | }; > | int m; > | } v1; > | > | > | int > | main (int argc, char **argv) > | { > | int ok = 0; > | > | ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); > | > | > | // Check bool. > | _Bool success = false; > | success |= (argc != 0); > | > | // Check restrict. > | if (test_restrict ("String literal") == 0) > | success = true; > | char *restrict newvar = "Another string"; > | > | // Check varargs. > | success &= test_varargs ("s, d' f .", "string", 65, 34.234); > | test_varargs_macros (); > | > | // Check flexible array members. > | struct incomplete_array *ia = > | malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); > | ia->datasize = 10; > | for (int i = 0; i < ia->datasize; ++i) > | ia->data[i] = i * 1.234; > | > | // Check named initializers. > | struct named_init ni = { > | .number = 34, > | .name = L"Test wide string", > | .average = 543.34343, > | }; > | > | ni.number = 58; > | > | int dynamic_array[ni.number]; > | dynamic_array[0] = argv[0][0]; > | dynamic_array[ni.number - 1] = 543; > | > | // work around unused variable warnings > | ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' > | || dynamic_array[ni.number - 1] != 543); > | > | > | _Static_assert ((offsetof (struct anonymous, i) > | == offsetof (struct anonymous, w.k)), > | "Anonymous union alignment botch"); > | v1.i = 2; > | v1.w.k = 5; > | ok |= v1.i != 5; > | > | return ok; > | } > | > configure:8180: /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=local-bounds -fsanitize-blacklist=/home/sberg/lo0/core/sanitize-ubsan-excludelist -std=gnu11 -c -g -O2 conftest.c >&5 > configure:8180: $? = 0 > configure:8201: result: -std=gnu11 Change-Id: I9122d0d853d0010155d57cb1d1d56f7c453d5208 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165904 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-04-08clean up after removal of patched rhinoRene Engelhard
Change-Id: I193fd0c10d297555faa7a832718dbd6cd929a406 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165762 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-03-21Update the Android "enough memory for linking" checkStephan Bergmann
...which had been introduced with 149792414e767c7526123f0e2abb7c4dc9491fa0 "android: add a check for the installed memory in the machine", presumably at a time when there were ENABLE_SYMBOLS and ENABLE_DEBUGINFO_FOR variables, both of which appear to no longer exist. So use the existing ENABLE_SYMBOLS_FOR instead. Change-Id: I1757f49e26e703e4a5831bf2c1f39f9337077d4e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165083 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-03-20Allow extra options in JAVACOMPILER env varStephan Bergmann
...similar to how we support this for other vars like CC and CXX. (I currently need this to add -J-Xint to JAVACOMPILER in an attempt to work around the issue described in <https://blogs.oracle.com/java/post/java-on-macos-14-4> where macOS now sends uncatchable SIGKILL instead of SIGSEGV to the JVM process in response to a Java null pointer deref.) Change-Id: Ie677f97aeca983af7d8ef23e3794103ae30ae0b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165065 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-03-20python3: upgrade to release 3.8.19Michael Stahl
Fixes CVE-2023-6597 and also CVE-2024-0450 Change-Id: Iebca2608e16a966356736201c63f1be5185430d4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165053 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2024-03-12Fix build with autoconf 2.72Fridrich Strba
This commit http://git.savannah.gnu.org/gitweb/ ?p=autoconf.git;a=commitdiff; h=cf09f48841b66fe76f606dd6018bb3a93242a7c9 changed the internal cache variable name and its content The effects show later in message like /tmp/ccyB6wS6.ltrans9.ltrans.o: in function `comphelper::DocPasswordHelper::decryptGpgSession(com::sun::star::uno::Sequence<com::sun::star::uno::Sequence<com::sun::star::beans::NamedValue> > const&)': /home/abuild/rpmbuild/BUILD/libreoffice-24.2.1.2/comphelper/source/misc/docpasswordhelper.cxx:705:(.text+0x4fb7): undefined reference to `GpgME::Data::seek(long, int)' /usr/bin/ld.bfd: /home/abuild/rpmbuild/BUILD/libreoffice-24.2.1.2/comphelper/source/misc/docpasswordhelper.cxx:716:(.text+0x5402): undefined reference to `GpgME::Data::seek(long, int)' /usr/bin/ld.bfd: /tmp/ccyB6wS6.ltrans13.ltrans.o: in function `comphelper::OStorageHelper::CreateGpgPackageEncryptionData()': /home/abuild/rpmbuild/BUILD/libreoffice-24.2.1.2/comphelper/source/misc/storagehelper.cxx:507:(.text+0x64e3): undefined reference to `GpgME::Data::seek(long, int)' /usr/bin/ld.bfd: /home/abuild/rpmbuild/BUILD/libreoffice-24.2.1.2/comphelper/source/misc/storagehelper.cxx:520:(.text+0x6583): undefined reference to `GpgME::Data::seek(long, int)' collect2: error: ld returned 1 exit status Where the type 'off_t' at the time of inclusion of the header and at the time of compilation of the library differ. Change-Id: Ie0486dbc869e84f5fb2688473334cfe464abd570 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164704 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-03-09Enable CVE tests on Windows by defaultMike Kaganski
Since commit c16969b9bc73fdd77e763299d6aea7b614e203e2 (tdf#84553 Detect and warn of Windows Antivirus., 2020-02-08), it is checked that antivirus is disabled in $SRC_ROOT and $BUILDDIR. This reverts commit a6b2c618cb02168bba950652367f494a1021cf53 (disable cve tests by default on windows, 2014-10-01). Change-Id: I3816e97cfb4559f7647167ed291b75468b03dc4d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164612 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-03-04Fix typoAndrea Gelmini
Change-Id: I27c2ecec6355fd81f06c66c016050f1b168179b1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164044 Tested-by: Jenkins Reviewed-by: Taichi Haradaguchi <20001722@ymail.ne.jp>
2024-03-02Allow building with Java 8Fridrich Štrba
Change-Id: Ib1af1a98993aabb8a03f4ef19d8da4d9a71fdbc0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164226 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-03-01add accessibility to --enable-mergedlibs=moreNoel Grandin
Also (*) fix the definition of ENABLE_MERGELIBS_MORE in configure.ac (*) Remove the dummy accessible factory in vcl, it creates more problems than it solves, because code will break when trying to use it, and then I get crashes far removed from the source of the problem (failure to find the acc factory). Change-Id: I969481d5ad2cfd7104d8240fdd0dce9d285fdb61 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164176 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-03-01remove mergelibs warning from configureNoel Grandin
It is now known working on Linux/macOS/Windows Change-Id: Ib529a002a88cc94798a6707af7319ce9e25aca48 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164169 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-02-27Fix typoAndrea Gelmini
Change-Id: I30bd7ed93eedf241fde23b35ac674d010c9e6575 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164043 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2024-02-27Check Windows SDK versionHossein
Because of a regression in Windows SDK version 10.0.19xxxx which is now fixed in 10.0.20348, it is good to check that the required SDK version is installed: More information https://developercommunity.visualstudio.com/t/std:c17-generates-warning-compiling-Win/1249671 It is important to know that both Windows 10 and Windows 11 SDK should work. Change-Id: Ia42843cac4f94c4db9ef429714f1b9d46ba3fd09 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163770 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2024-02-18Latest VS 2022 Preview is 17.10.0 nowStephan Bergmann
...while latest proper VS 2022 is 17.9.0 Change-Id: Idbd104d54dde1822957894d4f74b16e651a4c8b5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163485 Tested-by: Jenkins Reviewed-by: Taichi Haradaguchi <20001722@ymail.ne.jp>
2024-02-15Fix file name to rmAndrea Gelmini
Change-Id: Ic700b18004e4fb84aa1153331f02cad33e01341d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163457 Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Tested-by: Jenkins
2024-02-15Work around some Clang PCH consteval issue by disabling HAVE_CPP_CONSTEVALStephan Bergmann
(see the links in the configure.ac check for details) Change-Id: I9a98f784f68931cb4482bc02be313d18c5464105 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163422 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-02-14Revert "configure: clean up not needed abseil libs for the system-abseil case"René Engelhard
This reverts commit 89a0933968e4b9160613707301d1f5dd36d97282. Reason for revert: we still need absl_inlined_vector, Linking test doesn't work, this is header-only but we should check for it being there to be sure Change-Id: I55b4d645876d7080ee41917413e02cba930c9060 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163349 Tested-by: René Engelhard <rene@debian.org> Reviewed-by: René Engelhard <rene@debian.org>
2024-02-14configure: clean up not needed abseil libs for the system-abseil caseMiklos Vajna
Noticed by Rene, found by emptying the list and then adding items back till the linker succeeded again. Change-Id: I0b68ad8c50659af2d3a9ff3abfad60990f25bd79 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163378 Tested-by: René Engelhard <rene@debian.org> Reviewed-by: René Engelhard <rene@debian.org>
2024-02-12create --enable-mergelibs=moreNoel Grandin
The existing --enable-mergelibs is in use by Linux distro people, who do not want any further mergeing because they want to be able to split libreoffice up into things like nogui, calc, writer, dbaccess, etc. So this work is to enable combining even more into libmerged for platforms like Windows and macOS and COOL, where we really want everything in one big lump of code. Change-Id: I4b268864955747d9859e16ebb569debbfc32fa78 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162999 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-02-12kf6: Add missing include path to fix buildMichael Weghorn
Many thanks to Andreas Sturmlechner for pointing this out on #libreoffice-dev on 2024-02-12: > [10:27] <asturm> michaelweghorn: I also had to apply a trivial > openmandriva patch to get it to build in the first place, > https://github.com/gentoo/gentoo/blob/master/app-office/libreoffice/files/libreoffice-24.2-kf6-buildfix.patch Change-Id: If86220e258336d84ffc30fd5da0f5d99dda59aff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163237 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-02-11Fix quoting of [ ]Stephan Bergmann
Change-Id: I57c96fe9f72794abb4f49f63735c075a4647bd23 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163228 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-02-07double operator < is not a strict weak ordering due to NaNStephan Bergmann
...so recent LLVM 19 trunk libc++ in debug mode complained during CppunitTest_chart2_export2 about > ~/llvm/inst/bin/../include/c++/v1/__debug_utils/strict_weak_ordering_check.h:59: assertion __comp(*(__first + __a), *(__first + __b)) failed: Your comparator is not a valid strict-weak ordering at > 5 libsystem_c.dylib 0x0000000183279a40 abort + 180 > 6 libc++.1.0.dylib 0x00000001030f9d98 _ZNSt3__123__cxx_atomic_notify_oneEPVKv + 0 > 7 libchartcorelo.dylib 0x00000002f817f0ec _ZNSt3__135__check_strict_weak_ordering_sortedB8de190000INS_11__wrap_iterIPNS_6vectorIdNS_9allocatorIdEEEEEEN5chart12_GLOBAL__N_116lcl_LessXOfPointEEEvT_SB_RT0_ + 960 > 8 libchartcorelo.dylib 0x00000002f817e6cc _ZNSt3__118__stable_sort_implB8de190000INS_17_ClassicAlgPolicyENS_11__wrap_iterIPNS_6vectorIdNS_9allocatorIdEEEEEEN5chart12_GLOBAL__N_116lcl_LessXOfPointEEEvT0_SC_RT1_ + 268 > 9 libchartcorelo.dylib 0x00000002f8172a90 _ZNSt3__111stable_sortB8de190000INS_11__wrap_iterIPNS_6vectorIdNS_9allocatorIdEEEEEEN5chart12_GLOBAL__N_116lcl_LessXOfPointEEEvT_SB_T0_ + 68 > 10 libchartcorelo.dylib 0x00000002f8172820 _ZN5chart11VDataSeries15doSortByXValuesEv + 508 > 11 libchartcorelo.dylib 0x00000002f8064c44 _ZN5chart9AreaChart12createShapesEv + 1528 > 12 libchartcorelo.dylib 0x00000002f80f2ae0 _ZN5chart9ChartView28impl_createDiagramAndContentERKNS_18CreateShapeParam2DERKN3com3sun4star3awt4SizeE + 4440 > 13 libchartcorelo.dylib 0x00000002f80f77ac _ZN5chart9ChartView14createShapes2DERKN3com3sun4star3awt4SizeE + 2728 > 14 libchartcorelo.dylib 0x00000002f80f58ec _ZN5chart9ChartView12createShapesEv + 692 > 15 libchartcorelo.dylib 0x00000002f80f4598 _ZN5chart9ChartView15impl_updateViewEb + 288 But the introduced use of `std::strong_order(first[0], second[0]) < 0` then triggered a false > lo/core/chart2/source/view/main/VDataSeries.cxx:105:61: error: NullToMemberPointer ValueDependentIsNotNull ZeroLiteral -> nullptr [loplugin:nullptr] > 105 | return std::strong_order(first[0], second[0]) < 0; > | ^ so needed some hack in loplugin:nullptr. And old versions of libc++, still used at least on Android, do not have any implementations of std::strong_order. So detect those cases in configure.ac (checking for std::strong_order for double, which is what is actually being used in the code) and fall back to operator <=> for now, even if that will not provide a strict weak ordering and will thus continue to violate the requirements of std::sort. And then our venerable clang-format 5.0.0 would have broken the token `<=>` into `<= >`, so exclude include/o3tl/compare.hxx from its mis-treatment. Change-Id: I7a64a630eb5f560dce59f3ff9d51ca3d1adc70be Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163075 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-02-07MSVC 2022 Preview: One HAVE_CPP_CONSTEVAL blocker down, one upStephan Bergmann
While the previously known issue appears to be fixed in VS 2022 Preview 17.9.0 Preview 5.0, a new one showed up that now caused > sal/qa/rtl/oustringbuffer/test_oustringbuffer_assign.cxx(63): error C2440: '<function-style-cast>': cannot convert from 'initializer list' to 'rtl::OUStringLiteral<2>' > sal/qa/rtl/oustringbuffer/test_oustringbuffer_assign.cxx(63): note: Invalid aggregate initialization > sal/qa/rtl/oustringbuffer/test_oustringbuffer_assign.cxx(63): note: too many initializers etc. Change-Id: Ia74a8d6454bb5f15c0af4d3cf29989342f2eef7a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163072 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-02-05Allow to build against a non-EMSDK Emscripten installation built from sourceStephan Bergmann
The EMSDK variable was only used to find the Emscripten version.h file, but for a build from source there would be no value it could be set to in order to find the installation's cache/sysroot/include/emscripten/version.h at the $EMSDK/upstream/emscripten/cache/sysroot/include/emscripten/version.h location where configure.ac wants to look for it. (And using the configure.ac code that does not use version.h at all wouldn't work either, as the only EMSCRIPTEN_DEFINES found with at least a contemporary emcc would be just an unhelpful __EMSCRIPTEN__=1, but no version information.) So allow to explicitly set EMSCRIPTEN_VERSION_H in autogen.input to use that for the version check. Change-Id: Ic64ecfaefb3b5830f82e577b100a6e7becc73953 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162994 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-02-05Allow qmake, moc to be explicitly set in autogen.inputStephan Bergmann
(I need that for a wasm cross-build with Qt6, where MOC6 needs to explicitly be set to the build-time moc tool, not a non-existing anyway host moc tool.) Change-Id: I4a779ccc1b12b80a2e67bbaa5cd7ec04861a5d43 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162984 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-01-29Experimental support for latest Emscripten (and Qt6)Stephan Bergmann
What I'm after in the context of our Embind-related code is the claim at <https://emscripten.org/docs/porting/connecting_cpp_and_javascript/embind.html#memory-management>: "JavaScript only gained support for finalizers in ECMAScript 2021, or ECMA-262 Edition 12. The new API is called FinalizationRegistry and it still does not offer any guarantees that the provided finalization callback will be called. Embind uses this for cleanup if available, but only for smart pointers, and only as a last resort." However, with the recommended emsdk 2.0.31 my tests did not show any use of that finalization support. So I wanted to try with the latest emsdk 3.1.51 instead. But then, linking vcldemo failed with > wasm-ld: error: ~/allotropia-qt5/lib/libQt5Core.a(qlogging.o): undefined symbol: std::__2::__vector_base_common<true>::__throw_length_error() const etc., so I gave it a try to rather build against latest Qt6.7, with > --with-distro=LibreOfficeWASM32 > --disable-qt5 > --enable-qt6 > QT6DIR=... TODO: The result is highly experimental, and it uses ENABLE_QT5 (i.e., the recommended setup with emsdk 2.0.31 and the <https://github.com/allotropia/qt5.git> v5.15.2+wasm branch) vs. ENABLE_QT6 (i.e., my experimental setup with emsdk 3.1.51 and the <https://github.com/qt/qt5.git> 6.7 branch) not only to distinguish between Qt5- vs. Qt6-specific behavior, but also to distinguish between old- vs. new-Emscripten-specific behavior. Of note: * The startup code appears to have changed substantially (and required setting -s MODULARIZE=1 and -s EXPORT_NAME=soffice_entry now, and telling emcc to build just soffice.js and not the wrapper soffice.html. TODO: This also required hacking into qt_soffice.html: (1) The command-line arguments (--norestore, --nologo, --writer, and the exammple.odt; all of which we should eventually get rid of, anyway). (2) Saving the generated instance as window.Module (and adapting the embindmaker-generated code, cf. the changes to static/README.wasm.md). * There were some symbol clashes between external/argon2 and libQt6Core.a(qcryptographichash.cpp.o, so renamed the problematic symbols in external/argon2. Change-Id: I5420ab566d560b11954ac6613249bfc53d8acb31 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162695 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-01-24fix windows aarch64 cross-build wrt REPORTBUILDERChristian Lohmaier
broken after a2a9850217b3f711440283131fdfc58a9a254919 which added the REPORTBUILDER conditional, but didn't also put it into the special PERMITTED_BUILD_TARGETS list - so it wasn't set during cross-compilation and broke the build C:/cygwin/home/tdf/jenkins/dly/s_master/solenv/gbuild/Configuration.mk:169: *** There is no target C:/cygwin/home/tdf/jenkins/dly/b_master/workdir_for_build/XcuModuleTarget/officecfg/registry/data/org/openoffice/Setup-reportbuilder.xcu. Stop. Change-Id: I9474318eae775bcd974e79db0d8340a2d3839412 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162504 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>