Skip to content

Commit

Permalink
devel/stlink: Fix build on 32 bit platforms
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
clausecker authored and Yasuhiro Kimura committed Oct 27, 2021
1 parent 644e5b6 commit b6534ec
Show file tree
Hide file tree
Showing 6 changed files with 77 additions and 26 deletions.
31 changes: 14 additions & 17 deletions devel/stlink/Makefile
@@ -1,35 +1,32 @@
PORTNAME= stlink
PORTVERSION= 1.7.0
DISTVERSION= 1.7.0
DISTVERSIONPREFIX= v
PORTREVISION= 0
CATEGORIES= devel

MAINTAINER= lev@FreeBSD.org
COMMENT= STM32 ST-Link JTAG variant tools

LICENSE= BSD3CLAUSE

OPTIONS_DEFINE= GTK3 DOCS
OPTIONS_SUB= yes
GTK3_EXTRA_PATCHES_OFF= ${FILESDIR}/extra-pacth-turn-off-gtk
GTK3_USES= gnome
GTK3_USE= GNOME=gtk30

USE_GITHUB= yes
GH_ACCOUNT= stlink-org

USES= cmake pkgconfig
USE_CSTD= c99
USE_GITHUB= yes
GH_ACCOUNT= stlink-org
USE_LDCONFIG= yes

PORTDOCS= README.md ${ALLDOCS}
PORTDOCS= ${ALLDOCS} README.md

ALLDOCS= compiling.md dev/developer.txt devices_boards.md \
flashloaders.md release.md tutorial.md \
version_support.md

FLASHLOADERS= cleanroom.md linker.ld Makefile stm32f0.s stm32f4.s \
stm32f4lv.s stm32f7.s stm32f7lv.s stm32l4.s stm32lx.s \
flashloaders.md release.md tutorial.md version_support.md

FLASHLOADERS= cleanroom.md linker.ld Makefile stm32f0.s stm32f4.s stm32f4lv.s \
stm32f7.s stm32f7lv.s stm32l4.s stm32lx.s

OPTIONS_DEFINE= DOCS GTK3
OPTIONS_SUB= yes
GTK3_USES= gnome
GTK3_USE= GNOME=gtk30
GTK3_EXTRA_PATCHES_OFF= ${FILESDIR}/extra-pacth-turn-off-gtk

.include <bsd.port.pre.mk>

Expand Down
8 changes: 5 additions & 3 deletions devel/stlink/files/patch-CMakeLists.txt
@@ -1,8 +1,10 @@
--- CMakeLists.txt.orig 2021-07-13 15:04:41.612208000 +0300
+++ CMakeLists.txt 2021-07-13 15:06:16.763751332 +0300
@@ -299,4 +299,5 @@
--- CMakeLists.txt.orig 2021-09-15 09:54:35 UTC
+++ CMakeLists.txt
@@ -298,6 +298,7 @@ endif ()
# add_subdirectory(src/stlink-gui) # contains subordinate CMakeLists to build GUI
add_subdirectory(tests) # contains subordinate CMakeLists to build test executables
add_subdirectory(cmake/packaging) # contains subordinate CMakeLists to build packages
+add_subdirectory(doc/dev/pkg-config) # contains subordinate CMakeLists to build pkg-config descriptor

option(STLINK_GENERATE_MANPAGES "Generate manpages with pandoc" OFF)
add_subdirectory(doc/man) # contains subordinate CMakeLists to generate manpages
18 changes: 18 additions & 0 deletions devel/stlink/files/patch-cmake_modules_c__flags.cmake
@@ -0,0 +1,18 @@
Work around upstream bug #1175 and make the build more robust
against minor platform differences. -Werror should not be
provided in release builds.

--- cmake/modules/c_flags.cmake.orig 2021-04-24 22:24:02 UTC
+++ cmake/modules/c_flags.cmake
@@ -44,11 +44,3 @@ endif ()
if (NOT (WIN32 OR (EXISTS "/etc/debian_version" AND MINGW)))
add_cflag_if_supported("-fPIC")
endif ()
-
-if (${CMAKE_BUILD_TYPE} MATCHES "Debug")
- add_cflag_if_supported("-ggdb")
- add_cflag_if_supported("-O0")
-else ()
- add_cflag_if_supported("-O2")
- add_cflag_if_supported("-Werror")
-endif ()
6 changes: 3 additions & 3 deletions devel/stlink/files/patch-doc_dev_pkg-config_CMakeLists.txt
@@ -1,6 +1,6 @@
--- doc/dev/pkg-config/CMakeLists.txt.orig 2021-04-25 01:24:02.000000000 +0300
+++ doc/dev/pkg-config/CMakeLists.txt 2021-07-13 15:09:25.486974252 +0300
@@ -11,5 +11,5 @@
--- doc/dev/pkg-config/CMakeLists.txt.orig 2021-04-24 22:24:02 UTC
+++ doc/dev/pkg-config/CMakeLists.txt
@@ -11,5 +11,5 @@ configure_file(

install(
FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
Expand Down
6 changes: 3 additions & 3 deletions devel/stlink/files/patch-doc_man_CMakeLists.txt
@@ -1,6 +1,6 @@
--- doc/man/CMakeLists.txt.orig 2021-07-13 15:08:26.986789558 +0300
+++ doc/man/CMakeLists.txt 2021-04-25 01:24:02.000000000 +0300
@@ -30,7 +30,7 @@
--- doc/man/CMakeLists.txt.orig 2021-04-24 22:24:02 UTC
+++ doc/man/CMakeLists.txt
@@ -30,7 +30,7 @@ foreach (manpage ${MANPAGES})
endif ()

if (f AND NOT WIN32)
Expand Down
34 changes: 34 additions & 0 deletions devel/stlink/files/patch-src_common.c
@@ -0,0 +1,34 @@
Partial application of upstream commit c8fc656, closing
upstream bug #985 and #1175 and fixing the build on 32
bit platforms.

https://github.com/stlink-org/stlink/commit/c8fc6561fead79ad49c09d82bab864745086792c
https://github.com/stlink-org/stlink/issues/985
https://github.com/stlink-org/stlink/issues/1175

--- src/common.c.orig 2021-04-24 22:24:02 UTC
+++ src/common.c
@@ -1,4 +1,5 @@
#define DEBUG_FLASH 0
+#include <limits.h>
#include <stdarg.h>
#include <stdint.h>
#include <stdio.h>
@@ -2205,7 +2206,7 @@ static int map_file(mapped_file_t *mf, const char *pat

if (sizeof(st.st_size) != sizeof(size_t)) {
// on 32 bit systems, check if there is an overflow
- if (st.st_size > (off_t)INT32_MAX) {
+ if (st.st_size > (off_t)SSIZE_MAX) {
fprintf(stderr, "mmap() size_t overflow for file %s\n", path);
goto on_error;
}
@@ -2219,7 +2220,7 @@ static int map_file(mapped_file_t *mf, const char *pat
goto on_error;
}

- mf->len = st.st_size;
+ mf->len = (size_t)st.st_size;
error = 0; // success

on_error:

0 comments on commit b6534ec

Please sign in to comment.