| Commit | Date | |
|---|---|---|
|
[r13008]
by
mikeaubury
Detect optional build tools with "command -v", not "type" Reported building r13007 on Ubuntu 26.04: the build stops in It should never have tried. uilib/Makefile already falls back to the HASFLEXML:=$(shell type flexml 2> /dev/null) but the probe is not safe. "type" is a shell builtin whose behaviour for a $ dash -c 'type flexml 2> /dev/null' "command -v" is the POSIX way to ask this and prints a path on stdout only Fixed in all ten probes of this shape, not just the one that bit: Not reproduced end to end here: this box has bash as /bin/sh and GNU Make 4.3, The warnings quoted alongside the failure - comms.c sign-compare and unused |
2026-08-25 16:10:04 | Tree |
| 2026-08-25 14:17:26 | Tree | |
|
[r13006]
by
mikeaubury
Build haru.c against libharu 2.4 as well as 2.3 Reported against r13001 on Ubuntu 26.04, once the libcurl failure was out of the libharu 2.4 changed two things this file relies on: - HPDF_Page_SetDash() takes its pattern as const HPDF_REAL * and its phase as Rather than move to the new spelling and break older installations, pick both Note that on 2.4 the dash lengths stop being truncated to whole points, since Verified both ways: compiles clean against the 2.3.0 headers on this box (the The comment at the old line 4059 ("SCUARE is not a spelling mistake!") now |
2026-08-25 14:11:53 | Tree |
|
[r13005]
by
mikeaubury
Finish the sprintf conversion in the grammar fragments and lint.c Follow-on to r13004. -Wformat-overflow goes from 14 to 7, and a full build from GCC only flags the calls whose overflow it can demonstrate; the rest of the raw Every destination in those files is either a local char buff[N] or the parser's (lint.c has one static char *buff, in local_xml_escape(), which builds its The remaining 7 are the two files that cannot use the macro at all, as noted in |
2026-08-25 13:56:51 | Tree |
|
[r13004]
by
mikeaubury
Use the checked SPRINTFn macros for the sprintf calls GCC flags as overflowing -Wformat-overflow drops from 159 to 14, and a full build from 882 to 737 The SPRINTFn macros in incl/a4gl_libaubit4gl.h were already the house style - A4GL_sprintf(__FILE__, __LINE__, dest, sizeof(dest), fmt, ...) which formats into a scratch buffer of the destination's size and raises an The yacc grammars were the bulk of them, and are the clearest case: %union { char str[1024]; ... } sizeof($<str>$) is the union member's 1024, so the macro checks these properly Where the warned code lives in a build product the fix is in the source it is Four sites are deliberately left alone: - compilers/xgen/x.yacc (5): bin/xgen is a bootstrap tool built before One trade-off worth recording: A4GL_sprintf is not declared with |
2026-08-25 12:59:07 | Tree |
|
[r13003]
by
mikeaubury
Silence the two noisiest warning categories: sign-compare loops and unused-but-set A full build goes from 2066 warnings to 882. The two categories dealt with here -Wunused-but-set-variable (303, across 66 files) is switched off in -Wsign-compare (1106) is NOT switched off, because the category is not uniformly 880 for (a=0; a<x.x_len; a++) counter is int, length is u_int Only the first group is meaningless: the counter starts at zero, so the signed The other 226 are left visible on purpose. The assertions are the reason: A4GL_assertion(u->variable_id >= ...->variables.variables_len, "Invalid VARIABLE ID"); a negative variable_id converts to a huge unsigned here, so the assertion fires Two of the casts change behaviour, both for the better: lib/libform/form_generic/formwrite2.c:439 With len==0 the old code computed 0-1 as unsigned, so an empty list ran the What is left: format-overflow 159 (sprintf in the yacc grammars, worth a proper |
2026-08-25 12:29:22 | Tree |
|
[r13002]
by
mikeaubury
Fix clean-build breakage from r13001, two latent pointer bugs, and ~700 warnings r13001 broke "make cleanall && make": having every generated API .c include - lib/bin/dlmagic, lib/bin/dlmagic_c.awk: drop the api_header include again. Two of these are real bugs rather than cosmetics, both dormant until libcurl - lib/libsql/odbc/sql.c: SQLLEN was #define'd to int, but the bundled Warning cleanup - a full build goes from 2722 to 2022 warnings on the same - compilers/xgen/x.yacc: the generated .xo.c/.xi.c loops compared an int Still outstanding, all in hand-written code and needing a decision per site: |
2026-08-25 11:42:39 | Tree |
|
[r13001]
by
mikeaubury
Fix gzFile/FILE* type error in curl.c and clean up the dlmagic API generator Reported on Ubuntu 26.04: GCC 15 makes -Wincompatible-pointer-types an - incl/a4gl_curl.h: the local file in struct fcurl_data was a FILE *, but The generated API_*_self.c files (dlmagic -S, used by the static-link - lib/bin/dlmagic, lib/bin/dlmagic_c.awk: self mode now includes the Also fixes parallel builds of the API layer, which never worked: dlmagic All 26 generated API files (11 dlopen + 11 self, plus 4 in compilers/4glc) |
2026-08-25 11:12:00 | Tree |
| 2026-08-20 15:32:04 | Tree | |
|
[r12999]
by
mikeaubury
Fix fresh-checkout build: rpcgen headers are needed without XDR r12998 gated the RPCGEN_* recipes in common/dataio/Makefile on No rule to make target '../../common/dataio/form_x.h', An existing working copy still built, because form_x.h was already - common/dataio/Makefile: the RPCGEN_* recipes are unconditional again; Verified on a clean 'svn export' of the tree: ./configure && make now |
2026-08-15 14:48:05 | Tree |