Re: master build broken on macOS due to Firebird update
On Sun, 2024-01-07 at 19:26 +, Caolán McNamara wrote: > On Sun, 2024-01-07 at 19:03 +0200, Ilmari Lauhakangas wrote: > > Yes, even with the patch the (debug) build fails for me on Linux > > with > > Clang 16. > > I don't quite know what the problem here is but if you drop > > --enable-ld=mold > > does it then build? https://gerrit.libreoffice.org/c/core/+/161775 might help here
Re: master build broken on macOS due to Firebird update
On Sun, 2024-01-07 at 19:03 +0200, Ilmari Lauhakangas wrote: > Yes, even with the patch the (debug) build fails for me on Linux with > Clang 16. I don't quite know what the problem here is but if you drop --enable-ld=mold does it then build?
Re: master build broken on macOS due to Firebird update
On 7.1.2024 18.38, Patrick Luby wrote: On 2024-01-06 3:46 p.m., Caolán McNamara wrote: On Sat, 2024-01-06 at 12:03 -0500, Patrick Luby wrote: I have submitted a revert for the Firebird update here: The previous version was 3.0.7 and the current is 3.0.11 which suggests there probably wasn't massive changes. So reading through the upgrade commit I see a macosx specific hunk in one of our patches got dropped, presumably because it didn't apply. Does https://gerrit.libreoffice.org/c/core/+/161727 which restores that hunk make any difference? > > Thank you Caolán for finding the cause of the macOS build failures! I > can now build and run the unit tests successfully running "make clean && > make && make check" > > Although the following Gerrit change mostly only affects macOS, I did > add a fix for another problem that I found: the Firebird build runs the > isql command in its build directory and it can't find libfbclient: > > https://gerrit.libreoffice.org/c/core/+/161727 > > With the above patch, are there still build failures on Windows or Linux. Yes, even with the patch the (debug) build fails for me on Linux with Clang 16. Ilmari
Re: master build broken on macOS due to Firebird update
Thank you Caolán for finding the cause of the macOS build failures! I can now build and run the unit tests successfully running "make clean && make && make check" Although the following Gerrit change mostly only affects macOS, I did add a fix for another problem that I found: the Firebird build runs the isql command in its build directory and it can't find libfbclient: https://gerrit.libreoffice.org/c/core/+/161727 With the above patch, are there still build failures on Windows or Linux. Patrick On 2024-01-06 3:46 p.m., Caolán McNamara wrote: On Sat, 2024-01-06 at 12:03 -0500, Patrick Luby wrote: I have submitted a revert for the Firebird update here: The previous version was 3.0.7 and the current is 3.0.11 which suggests there probably wasn't massive changes. So reading through the upgrade commit I see a macosx specific hunk in one of our patches got dropped, presumably because it didn't apply. Does https://gerrit.libreoffice.org/c/core/+/161727 which restores that hunk make any difference?
Re: master build broken on macOS due to Firebird update
On Sat, 2024-01-06 at 12:03 -0500, Patrick Luby wrote: > I have submitted a revert for the Firebird update here: The previous version was 3.0.7 and the current is 3.0.11 which suggests there probably wasn't massive changes. So reading through the upgrade commit I see a macosx specific hunk in one of our patches got dropped, presumably because it didn't apply. Does https://gerrit.libreoffice.org/c/core/+/161727 which restores that hunk make any difference?
Re: master build broken on macOS due to Firebird update
I have submitted a revert for the Firebird update here: https://gerrit.libreoffice.org/c/core/+/161683 There are still errors even when I build a non-debug build. So, the only way I can see this update sucessfully building on macOS is that Jenkins builds Mac Intel targeting an older (pre-Ventura) version of macos i.e. before Apple deprecated sprintf. IMHO, the Firebird update needs a lot more work before recommitting it. Patrick On 2024-01-06 11:36 a.m., Patrick Luby wrote: So I used the attached debug patch and now I am only runnning into casting errors. Still more work to do, but at least it is progress. I'll see how far I can get patching the errors. Patrick On 2024-01-06 11:22 a.m., Regina Henschel wrote: Hi all, it breaks for me too. VS2022 on Win11 with --enable-dbgutil. So not only macOS. Kind regards, Regina Patrick Luby schrieb am 06.01.2024 um 16:20: All, I am not sure how this update built successfully on macOS on Jenkins, but the Firebird update is filled with hundreds of sprintf calls like the following. Xcode has marked sprintf as deprecated since a couple of versions ago: /Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/firebird/temp/Debug/isql/show.cpp:6986:5: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations] sprintf(info, "Number of DB pages free = %" SQUADFORMAT"%s", value_out, separator); So how do we suppress these "en masse" when doing debug builds? Thanks, Patrick
Re: master build broken on macOS due to Firebird update
So I used the attached debug patch and now I am only runnning into casting errors. Still more work to do, but at least it is progress. I'll see how far I can get patching the errors. Patrick On 2024-01-06 11:22 a.m., Regina Henschel wrote: Hi all, it breaks for me too. VS2022 on Win11 with --enable-dbgutil. So not only macOS. Kind regards, Regina Patrick Luby schrieb am 06.01.2024 um 16:20: All, I am not sure how this update built successfully on macOS on Jenkins, but the Firebird update is filled with hundreds of sprintf calls like the following. Xcode has marked sprintf as deprecated since a couple of versions ago: /Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/firebird/temp/Debug/isql/show.cpp:6986:5: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations] sprintf(info, "Number of DB pages free = %" SQUADFORMAT"%s", value_out, separator); So how do we suppress these "en masse" when doing debug builds? Thanks, Patrick diff --git a/external/firebird/ExternalProject_firebird.mk b/external/firebird/ExternalProject_firebird.mk index 5b39fd82b1e3..5556f9d1ae82 100644 --- a/external/firebird/ExternalProject_firebird.mk +++ b/external/firebird/ExternalProject_firebird.mk @@ -57,7 +57,7 @@ $(call gb_ExternalProject_get_state_target,firebird,build): $(if $(filter MSC-TRUE-X86_64,$(COM)-$(COM_IS_CLANG)-$(CPUNAME)),-march=x86-64-v2) \ $(if $(HAVE_GCC_FNO_SIZED_DEALLOCATION),-fno-sized-deallocation -fno-delete-null-pointer-checks) \ $(CXXFLAGS_CXX11) \ - $(if $(filter TRUE,$(COM_IS_CLANG)), -Wno-c++11-narrowing) \ + $(if $(filter TRUE,$(COM_IS_CLANG)), -Wno-error) \ $(call gb_ExternalProject_get_build_flags,firebird) \ $(if $(ENABLE_DEBUG),$(if $(filter MSC,$(COM)),-Od -Z7)) \ " \
Re: master build broken on macOS due to Firebird update
Hi all, it breaks for me too. VS2022 on Win11 with --enable-dbgutil. So not only macOS. Kind regards, Regina Patrick Luby schrieb am 06.01.2024 um 16:20: All, I am not sure how this update built successfully on macOS on Jenkins, but the Firebird update is filled with hundreds of sprintf calls like the following. Xcode has marked sprintf as deprecated since a couple of versions ago: /Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/firebird/temp/Debug/isql/show.cpp:6986:5: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations] sprintf(info, "Number of DB pages free = %" SQUADFORMAT"%s", value_out, separator); So how do we suppress these "en masse" when doing debug builds? Thanks, Patrick
Re: master build broken on macOS due to Firebird update
Unfortunately, on macOS neither --enable-werror or --disable-werror doesn't seem to have any affect on the external/firebird build. Patrick On 2024-01-06 10:59 a.m., Mike Kaganski wrote: Hi! On 1/6/2024 9:53 PM, Patrick Luby wrote: Can anyone actually do a debug build on any other platform on master with this update? IIRC Windows also has to suppress deprecation warnings, at least for sprintf, but maybe I am wrong. I have just built master on Windows, using --enable-werror; it has built OK. I know that there are some measures to suppress externals' warnings. Maybe something broke specifically with macOS (or specific compiler versions?)...
Re: master build broken on macOS due to Firebird update
On 6.1.2024 17.53, Patrick Luby wrote: On 2024-01-06 10:20 a.m., Patrick Luby wrote: All, I am not sure how this update built successfully on macOS on Jenkins, but the Firebird update is filled with hundreds of sprintf calls like the following. Xcode has marked sprintf as deprecated since a couple of versions ago: /Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/firebird/temp/Debug/isql/show.cpp:6986:5: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations] sprintf(info, "Number of DB pages free = %" SQUADFORMAT"%s", value_out, separator); So how do we suppress these "en masse" when doing debug builds? > Bad news: this update is worse than I thought when doing a clean debug build after doing a make clean. I am seeing a lengthy list of all sorts of different warnings being converted to errors. There are still a lot of sprintf errors, but now there are even more other, different warnings. See attached build log for a list of warnings converted to errors that I am seeing. Can anyone actually do a debug build on any other platform on master with this update? IIRC Windows also has to suppress deprecation warnings, at least for sprintf, but maybe I am wrong. I am getting a build failure with Clang and --enable-dbgutil: https://gerrit.libreoffice.org/c/core/+/152016/40#message-9baf3396b2a8714dabf6fbf6eec72d8f9a318ee2 mold: fatal: cannot open loader_path/../Debug/firebird: No such file or directory clang-16: error: linker command failed with exit code 1 (use -v to see invocation) make[6]: *** [Makefile.examples:138: ../../gen/examples/empbuild] Error 1 make[5]: *** [Makefile:600: examples] Error 2 make[4]: *** [Makefile:201: master_process] Error 2 make[3]: *** [Makefile:72: Debug] Error 2 make[2]: *** [Makefile:6: Debug] Error 2 make[1]: *** [/home/user/libreoffice/external/firebird/ExternalProject_firebird.mk:30: /home/user/libreoffice/workdir/ExternalProject/firebird/build] Error 1 Ilmari
Re: master build broken on macOS due to Firebird update
Hi! On 1/6/2024 9:53 PM, Patrick Luby wrote: Can anyone actually do a debug build on any other platform on master with this update? IIRC Windows also has to suppress deprecation warnings, at least for sprintf, but maybe I am wrong. I have just built master on Windows, using --enable-werror; it has built OK. I know that there are some measures to suppress externals' warnings. Maybe something broke specifically with macOS (or specific compiler versions?)... -- Best regards, Mike Kaganski
Re: master build broken on macOS due to Firebird update
Bad news: this update is worse than I thought when doing a clean debug build after doing a make clean. I am seeing a lengthy list of all sorts of different warnings being converted to errors. There are still a lot of sprintf errors, but now there are even more other, different warnings. See attached build log for a list of warnings converted to errors that I am seeing. Can anyone actually do a debug build on any other platform on master with this update? IIRC Windows also has to suppress deprecation warnings, at least for sprintf, but maybe I am wrong. Patrick On 2024-01-06 10:20 a.m., Patrick Luby wrote: All, I am not sure how this update built successfully on macOS on Jenkins, but the Firebird update is filled with hundreds of sprintf calls like the following. Xcode has marked sprintf as deprecated since a couple of versions ago: /Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/firebird/temp/Debug/isql/show.cpp:6986:5: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations] sprintf(info, "Number of DB pages free = %" SQUADFORMAT"%s", value_out, separator); So how do we suppress these "en masse" when doing debug builds? Thanks, PatrickThe Firebird3 package has been configured with the following options: Raw devices : disabled Service name : gds_db Service port : 3050 GPRE modules : c_cxx.cpp Install Dir : /usr/local/firebird ld: warning: ignoring duplicate libraries: '-liconv' ld: warning: ignoring duplicate libraries: '-liconv' In file included from /Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/firebird/src/dsql/Parser.cpp:25: In file included from /Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/firebird/src/dsql/../dsql/Parser.h:26: In file included from /Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/firebird/src/dsql/../dsql/dsql.h:47: /Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/firebird/src/dsql/../jrd/Attachment.h:155:21: warning: increment of object of volatile-qualified type 'volatile FB_UINT64' (aka 'volatile unsigned long long') is deprecated [-Wdeprecated-volatile] totalLocksCounter++; ^ /Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/firebird/src/dsql/../jrd/Attachment.h:174:21: warning: increment of object of volatile-qualified type 'volatile FB_UINT64' (aka 'volatile unsigned long long') is deprecated [-Wdeprecated-volatile] totalLocksCounter++; ^ In file included from /Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/firebird/src/dsql/Parser.cpp:25: In file included from /Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/firebird/src/dsql/../dsql/Parser.h:27: In file included from /Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/firebird/src/dsql/../dsql/DdlNodes.h:31: In file included from /Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/firebird/src/dsql/../dsql/Nodes.h:26: In file included from /Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/firebird/src/dsql/../jrd/jrd.h:55: /Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/firebird/src/include/../jrd/../common/os/guid.h:71:2: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations] sprintf(buffer, GUID_LEGACY_FORMAT, ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk/usr/include/stdio.h:180:1: note: 'sprintf' has been explicitly marked deprecated here __deprecated_msg("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.") ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk/usr/include/sys/cdefs.h:215:48: note: expanded from macro '__deprecated_msg' #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg))) ^ In file included from /Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/firebird/src/dsql/Parser.cpp:25: In file included from /Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/firebird/src/dsql/../dsql/Parser.h:27: In file included from /Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/firebird/src/dsql/../dsql/DdlNodes.h:31: In file included from
master build broken on macOS due to Firebird update
All, I am not sure how this update built successfully on macOS on Jenkins, but the Firebird update is filled with hundreds of sprintf calls like the following. Xcode has marked sprintf as deprecated since a couple of versions ago: /Volumes/LOBuilds/lode/dev/core/workdir/UnpackedTarball/firebird/temp/Debug/isql/show.cpp:6986:5: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations] sprintf(info, "Number of DB pages free = %" SQUADFORMAT"%s", value_out, separator); So how do we suppress these "en masse" when doing debug builds? Thanks, Patrick