As reported by Port Fallouts [1], devel/stlink fails to build on various 32 bit platforms. This appears to be due to an overly zealous warning: /usr/bin/cc -DSTLINK_HAVE_SYS_MMAN_H -DSTLINK_HAVE_SYS_TIME_H -DSTLINK_HAVE_UNISTD_H -I/wrkdirs/usr/ports/devel/stlink/work/stlink-1.7.0/inc -I/wrkdirs/usr/ports/devel/stlink/work/.build/inc -I/wrkdirs/usr/ports/devel/stlink/work/stlink-1.7.0/src -I/wrkdirs/usr/ports/devel/stlink/work/stlink-1.7.0/src/st-flash -I/wrkdirs/usr/ports/devel/stlink/work/stlink-1.7.0/src/stlink-lib -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -std=c99 -std=gnu11 -std=gnu18 -Wall -Wextra -Wshadow -D_FORTIFY_SOURCE=2 -fstrict-aliasing -Wundef -Wformat -Wformat-security -Wmissing-variable-declarations -Wshorten-64-to-32 -Wimplicit-function-declaration -Wredundant-decls -fPIC -O2 -Werror -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -std=c99 -MD -MT CMakeFiles/stlink-static.dir/src/common.c.o -MF CMakeFiles/stlink-static.dir/src/common.c.o.d -o CMakeFiles/stlink-static.dir/src/common.c.o -c /wrkdirs/usr/ports/devel/stlink/work/stlink-1.7.0/src/common.c /wrkdirs/usr/ports/devel/stlink/work/stlink-1.7.0/src/common.c:2222:16: error: implicit conversion loses integer precision: 'off_t' (aka 'long long') to 'size_t' (aka 'unsigned int') [-Werror,-Wshorten-64-to-32] mf->len = st.st_size; ~ ~~~^~~~~~~ 1 error generated. ninja: build stopped: subcommand failed. A patch for this issue had already existed in am old revision [2], but was taken out last year. Perhaps it is required to reintroduce the patch. I have meanwhile reported the issue back to upstream, so perhaps they may fix it once again. [3] [1]: https://lists.freebsd.org/archives/freebsd-pkg-fallout/2021-August/073895.html [2]: https://cgit.freebsd.org/ports/commit/devel/stlink?id=fa323644a47f359c2bf843fd98aaa956e14ba845 [3]: https://github.com/stlink-org/stlink/issues/1175
Created attachment 227367 [details] devel/stlink/files/patch-src_common.c Attached is a patch that fixes the build once again. It can be added to the port as /usr/ports/devel/stlink/files/patch-src_common.c to fix the build. Tested on armv7 FreeBSD 13.0-RELEASE. The contents of this patch have been proposed upstream and may be included in a future release: https://github.com/stlink-org/stlink/issues/1175 Please also consider making the GTK3 option into a flavour in a future version of the port.
maintainer timeout.
Comment on attachment 227367 [details] devel/stlink/files/patch-src_common.c Maintainer timeout for patch.
@Robert Thanks for the report and patch. Could you: - Update the patch to include a comment in the header - Look for a method to disable, or override -Werror, which shouldn't be used/included in release builds.
Created attachment 227911 [details] devel/stlink: fix build on 32 bit platforms Improved patch as per koobs' wishes. While we are at it, pet portlint and portclippy and regenerate existing patches. Tested with Poudriere on armv7 arm64 i386 amd64 FreeBSD 13.0-RELEASE.
Comment on attachment 227911 [details] devel/stlink: fix build on 32 bit platforms maintainer timeout
^Triage: Reset assignee (maintainer/assignee timeout), open to take
Take.
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=b6534ecd950cf32e1b76733d34a2ec929b690704 commit b6534ecd950cf32e1b76733d34a2ec929b690704 Author: Robert Clausecker <fuz@fuz.su> AuthorDate: 2021-08-22 16:54:30 +0000 Commit: Yasuhiro Kimura <yasu@FreeBSD.org> CommitDate: 2021-10-27 15:53:07 +0000 devel/stlink: Fix build on 32 bit platforms * Remove settings of optimization from cmake/modules/c_flags.cmake as per section 13.9 of Porter's Handbook * Switch to DISTVERSION * Pet portclippy * Reformat Makefile with portfmt PR: 257708 Approved by: maitainer timeout (> 1 month) Differential Revision: https://reviews.freebsd.org/D32545 devel/stlink/Makefile | 31 +++++++++----------- devel/stlink/files/patch-CMakeLists.txt | 8 +++-- .../files/patch-cmake_modules_c__flags.cmake (new) | 18 ++++++++++++ .../files/patch-doc_dev_pkg-config_CMakeLists.txt | 6 ++-- devel/stlink/files/patch-doc_man_CMakeLists.txt | 6 ++-- devel/stlink/files/patch-src_common.c (new) | 34 ++++++++++++++++++++++ 6 files changed, 77 insertions(+), 26 deletions(-)
A commit in branch 2021Q4 references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=8c44014b13ddb0392fab868ed5822e11ea3af0f4 commit 8c44014b13ddb0392fab868ed5822e11ea3af0f4 Author: Robert Clausecker <fuz@fuz.su> AuthorDate: 2021-08-22 16:54:30 +0000 Commit: Yasuhiro Kimura <yasu@FreeBSD.org> CommitDate: 2021-10-27 16:00:19 +0000 devel/stlink: Fix build on 32 bit platforms * Remove settings of optimization from cmake/modules/c_flags.cmake as per section 13.9 of Porter's Handbook * Switch to DISTVERSION * Pet portclippy * Reformat Makefile with portfmt PR: 257708 Approved by: maitainer timeout (> 1 month) Differential Revision: https://reviews.freebsd.org/D32545 (cherry picked from commit b6534ecd950cf32e1b76733d34a2ec929b690704) devel/stlink/Makefile | 31 +++++++++----------- devel/stlink/files/patch-CMakeLists.txt | 8 +++-- .../files/patch-cmake_modules_c__flags.cmake (new) | 18 ++++++++++++ .../files/patch-doc_dev_pkg-config_CMakeLists.txt | 6 ++-- devel/stlink/files/patch-doc_man_CMakeLists.txt | 6 ++-- devel/stlink/files/patch-src_common.c (new) | 34 ++++++++++++++++++++++ 6 files changed, 77 insertions(+), 26 deletions(-)
Committed and merged to quarterly branch. Thanks!
(In reply to Yasuhiro Kimura from comment #11) Thanks! Could you please also bump PORTREVISION for this change as it seems that it affects build flags?