As discussed in the mailing list thread starting at
<https://lists.freedesktop.org/archives/libreoffice/2023-January/089808.html>
"Plan to remove dead C++ UNO bridge implementations (bridges/source/cpp_uno/*)",
the bridge implementation at bridges/source/cpp_uno/gcc3_aix_powerpc is
apparently dead and should thus be removed. However, that was the only bridge
implementation for AIX, which implies that support for the AIX platform as a
whole is dead and should thus be removed.
Change-Id: I96de3f7f97d4fd770ff78256f0ea435383688be9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146057
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
These occurrences of sprintf in C code don't normally trigger the deprecation
warning at least with recent macOS, because macOS by default now enables
_FORTIFY_SOURCE (see the code setting it in
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.0.sdk/usr/include/_types.h
when originally unset), which for C code hides the declaration of sprintf (along
with its deprecation annotation) in
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.0.sdk/usr/include/stdio.h
with a macro (expanding to __builtin___sprintf_chk) in
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.0.sdk/usr/include/secure/_stdio.h.
But they started to trigger when I did an experimental -fsanitize=address build,
because
<https://github.com/llvm/llvm-project/commit/b4f819086a61b5a843f0171a7467c5184ba1b086>
"Disable source fortification on Darwin with AddressSanitizer" predefines
-D_FORTIFY_SOURCE=0 in that case.
While there might be ways to clean this code up to use something better than the
deprecated sprintf, don't bother too much with this 3rd-party, build-time--only
code and just silence any potential deprecation warnings.
Change-Id: I9f223a0ad50b2729b5d9af2db588fe9f82d0b07f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142534
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
...which nicely gets rid of a bunch of sprintf calls that otherwise could have
caused -Werror,-Wdeprecated-declarations with macOS 13 SDK now).
(That executable is only used during the build to process the .scp files.)
Change-Id: I3b087b11f6d3d1bce9e595322a21e67986f5d1c0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142537
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
(new with recent Clang 10 trunk) during e.g. InstallModule_scp2/ooo:
> [SPP] scp2/source/ooo/common_brand
> soltools/cpp/_tokens.c:336:13: runtime error: applying zero offset to null pointer
> #0 in copytokenrow at soltools/cpp/_tokens.c:336:13
> #1 in expand at soltools/cpp/_macro.c:325:5
> #2 in expandrow at soltools/cpp/_macro.c:292:13
> #3 in process at soltools/cpp/_cpp.c:106:17
> #4 in main at soltools/cpp/_cpp.c:60:5
Change-Id: Icbe1c105fbd0ff634f3e2966c27af1b89398be13
Reviewed-on: https://gerrit.libreoffice.org/81187
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
... "‘strncpy’ output truncated before terminating nul copying as many bytes
from a string as its length", as reported at
<https://lists.freedesktop.org/archives/libreoffice/2018-October/081109.html>
"LO build fails -Werror=stringop-truncation in _lex.c". Not adding the
terminating NUL appears to be intentional here, as the s->inp buffer is
terminated (through s->inl) with EOB bytes after the if/else blocks.
Change-Id: I5a8559e620b7e34ee27cbcd0f836432deb8cba90
Reviewed-on: https://gerrit.libreoffice.org/61355
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
...showing that tottok and tokkind are actually unused
Change-Id: Ic70f4f1fd7b585b00e98b538d116599e395a43b9
Reviewed-on: https://gerrit.libreoffice.org/60536
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
under --with-lang=ALL it had started to crash during e.g.
> LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}".../instdir/program:.../instdir/program" .../workdir/LinkTarget/Executable/cpp -+ -P -DWITH_POSTGRESQL_SDBC -DWITH_FIREBIRD_SDBC -DWITHOUT_EXTENSION_MEDIAWIKI -DWITHOUT_SCRIPTING_BEANSHELL -DWITHOUT_SCRIPTING_JAVASCRIPT -DWITH_HELPPACK_INTEGRATION -DWITH_EXTENSION_INTEGRATION -DENABLE_EXTENSION_UPDATE -DX86_64 -DLINUX -D_PTHREADS -DUNIX -DUNX -DCOMID=gcc3 -D_gcc3 -DWITH_LPSOLVER -I.../scp2/inc -I.../workdir -I.../config_host -I.../workdir/CustomTarget/scp2/macros -I.../workdir/ScpTemplateTarget/scp2/source/templates .../scp2/source/calc/file_calc.scp > .../workdir/ScpPreprocessTarget/scp2/source/calc/file_calc.pre
because of
> Syscall param read(buf) points to unaddressable byte(s)
> at 0x4F31A80: __read_nocancel (syscall-template.S:84)
> by 0x404F98: fillbuf (_lex.c:631)
> by 0x404CCF: gettokens (_lex.c:479)
> by 0x400F0A: process (_cpp.c:77)
> by 0x400E80: main (_cpp.c:60)
> Address 0x5278494 is 0 bytes after a block of size 32,772 alloc'd
> at 0x4C2DB9D: malloc (vg_replace_malloc.c:299)
> by 0x402034: domalloc (_cpp.c:321)
> by 0x40554F: setsource (_lex.c:679)
> by 0x403E38: doinclude (_include.c:130)
> by 0x401F9D: control (_cpp.c:297)
> by 0x401002: process (_cpp.c:101)
> by 0x400E80: main (_cpp.c:60)
There appears to be no other check that fillbuf doesn't overflow the Source's
input buffer, other than gettokens checking that the buffer isn't more than
three quarters full ("if (ip >= s->inb + (3 * INS / 4)) ..."). That smells like
cpp assumes input lines to be shorter than some maximum number of characters
(like the C99 standard setting a minimum limit of "4095 characters in logical
source lines"), and
> #define README_TXT_ALL_LANG(key, name, ext) \
> key (af) = READMETXTFILENAME(name,_af,ext); \
> Name (am) = CONFIGLANGFILENAME(name,am,ext); \
> Name (ar) = CONFIGLANGFILENAME(name,ar,ext); \
[...]
> Name (zh-CN) = CONFIGLANGFILENAME(name,zh-CN,ext); \
> Name (zh-TW) = CONFIGLANGFILENAME(name,zh-TW,ext); \
> key (zu) = READMETXTFILENAME(name,_zu,ext)
in workdir/CustomTarget/scp2/macros/langmacros.inc (which appears to be the
culprit here) exceeding that limit under --with-lang=ALL.
So just bump the input buffer size.
Change-Id: I5d863050fb772dc7e691a604009ff8702dc718e3
The types 'long' and 'unsigned long' are different sizes on different
platforms, making them wholy unsuitable for portable code.
And when I mean different sizes, I mean 64bit Linux and 64bit Windows
have different bit sizes.
Change-Id: Id4d8cd709bf71a3f85ed6515fae2b0a21ae8c25d
Reviewed-on: https://gerrit.libreoffice.org/41130
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Translates leftovers found using a custom regex and manually checking
the rest of the affected file.
Additionally:
- Translation of someone's attempts at Spanish in the .java file
Change-Id: Ie3a761bc1a8e302247d5dd6e93a6bc4cb3e85a9f
Reviewed-on: https://gerrit.libreoffice.org/39609
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Tested-by: Michael Stahl <mstahl@redhat.com>
Whatever those _POSIX_ for _MSV_VER were supposed to be good for (have been in
there at least ever since 4f4b74153d "Moved cpp
from cpp to soltools"), but cause -Wunused-macros at least when building with
clang-cl.
Change-Id: I356bf663cd1e86298ba72a179f46bb9d0c10016b
stage 2 of replacing usage of various checks for the windows platform
with the compiler-defined '_WIN32' macro
In this stage we focus on replacing usage of the WIN macro
Change-Id: Ie8a4a63198a6de96bd158ecd707dadafb9c8ea84
Reviewed-on: https://gerrit.libreoffice.org/22393
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>