graphics/sane-backends: fix build with clang 15
During an exp-run for llvm 15 (see bug 265425), it turned out that graphics/sane-backends failed to build with clang 15: jpegtopdf.c:204:5: error: incompatible pointer to integer conversion assigning to 'long' from 'char *(int, int)' [-Wint-conversion] tz = timezone; ^ ~~~~~~~~ scanimage.c:1248:42: warning: call to undeclared function 'basename'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] png_set_iCCP(*png_ptr, *info_ptr, basename(icc_profile), PNG_COMPRESSION_TYPE_BASE, icc_buffer, icc_size); ^ scanimage.c:1248:42: error: incompatible integer to pointer conversion passing 'int' to parameter of type 'png_const_charp' (aka 'const char *') [-Wint-conversion] png_set_iCCP(*png_ptr, *info_ptr, basename(icc_profile), PNG_COMPRESSION_TYPE_BASE, icc_buffer, icc_size); ^~~~~~~~~~~~~~~~~~~~~ The jpegtopdf error is because 'timezone' as a global external variable does not exist on FreeBSD: it is a glibc-ism. Use struct tm's tm_gmtoff field instead, which also has its sign reversed from the glibc global. The scanimage error is because basename(3) is used without including <libgen.h>. With glibc, basename() is declared in both string.h and libgen.h, where the former gives you the GNU specific variant, and the latter the POSIX variant. PR: 268771 Approved by: vvd@unislabs.com (maintainer) MFH: 2023Q1
This commit is contained in:
parent
42ff1e6c66
commit
9fbb5958d1
2 changed files with 26 additions and 0 deletions
14
graphics/sane-backends/files/patch-frontend_jpegtopdf.c
Normal file
14
graphics/sane-backends/files/patch-frontend_jpegtopdf.c
Normal file
|
@ -0,0 +1,14 @@
|
|||
--- frontend/jpegtopdf.c.orig 2022-01-19 16:38:00 UTC
|
||||
+++ frontend/jpegtopdf.c
|
||||
@@ -201,7 +201,11 @@ static SANE_Int _get_current_time( struct tm *pt, SANE
|
||||
goto EXIT;
|
||||
}
|
||||
/* get time difference ( OHH'mm' ) */
|
||||
+#ifdef __FreeBSD__
|
||||
+ tz = -pt->tm_gmtoff;
|
||||
+#else
|
||||
tz = timezone;
|
||||
+#endif
|
||||
if ( tz > 0 ) {
|
||||
*sign_c = '-';
|
||||
}
|
12
graphics/sane-backends/files/patch-frontend_scanimage.c
Normal file
12
graphics/sane-backends/files/patch-frontend_scanimage.c
Normal file
|
@ -0,0 +1,12 @@
|
|||
--- frontend/scanimage.c.orig 2022-01-19 16:38:00 UTC
|
||||
+++ frontend/scanimage.c
|
||||
@@ -39,6 +39,9 @@
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <stdarg.h>
|
||||
+#ifdef __FreeBSD__
|
||||
+#include <libgen.h>
|
||||
+#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
Loading…
Reference in a new issue