Skip to content

Fix Linux build/runtime issues (thread-safety, RSVG, PCRE2, GCC 14, C# SEH, mssql2008 wide-char) - #2

Open
JesseS-T1 wants to merge 4 commits into
intramaps-ms84from
linux-build-fixes
Open

JesseS-T1 wants to merge 4 commits into
intramaps-ms84from
linux-build-fixes

Conversation

@JesseS-T1

@JesseS-T1 JesseS-T1 commented Sep 17, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Guard the ft_caches thread-safety reference in fontcache.c so it's only referenced under USE_THREAD
  • Escape backslashes inside [...] bracket expressions for PCRE2 (mapcompositingfilter.c, mapregex.c/h) so PCRE2's regex handling matches POSIX regex semantics
  • Support inline <?xml SVG symbol data in mapcairo.c, not just file paths for RSVG to support svg legend and scalebar
  • Fall back to svg output (not cairopng) when USE_RSVG is the active SVG backend, not just USE_SVG_CAIRO (maplegend.c, mapscale.c)
  • Guard MSVC __try/__except SEH usage in csmodule.i behind WIN32 && SWIGCSHARP - GCC has no equivalent and fails to parse it
  • Cast renderer_free_func assignments to their declared void (*)(symbolObj *) type, fixing GCC 14's -Wincompatible-pointer-types (promoted to an error by default in GCC 14) in maplegend.c, maprendering.c, mapsymbol.c
  • Fix the mssql2008 plugin's USE_ICONV wide-char ODBC path (SQLDriverConnectW/SQLExecDirectW/SQL_WCHAR) assuming a 2-byte wchar_t - true on Windows, false on Linux/glibc's 4-byte wchar_t - which corrupted connection strings, SQL text, and query results on Linux. Restricted that path to _WIN32; other platforms use the existing narrow-char path.

Test plan

  • Linux build (bookworm/GCC 12) compiles clean
  • mssql2008-backed layers return correct data on Linux (previously returned SQL Server syntax errors from corrupted query text)

@JesseS-T1
JesseS-T1 requested a review from szekerest September 17, 2026 01:26
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant