Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Builder curl-ares-solaris11-sparc Build #4262

Results:

Build successful

SourceStamp:

Projectcurl
Repositoryhttps://github.com/curl/curl.git
Branchmaster
Revision3bb5e58c105d7be450b667858d1b8e7ae3ded555
Got Revision3bb5e58c105d7be450b667858d1b8e7ae3ded555
Changes1 change

BuildSlave:

unstable11s

Reason:

The SingleBranchScheduler scheduler named 'schedule-curl-ares-solaris11-sparc' triggered this build

Steps and Logfiles:

  1. git update ( 54 secs )
    1. stdio
  2. Runtest './tests/testcurl.pl --nogitpull ...' ( 31 mins, 28 secs )
    1. stdio
    2. resultlog
  3. Mail result 'cat resultlog ...' ( 0 secs )
    1. stdio

Build Properties:

NameValueSource
branch master Build
builddir /export/home/buildbot/slave/curl-ares-solaris11-sparc slave
buildername curl-ares-solaris11-sparc Builder
buildnumber 4262 Build
codebase Build
got_revision 3bb5e58c105d7be450b667858d1b8e7ae3ded555 Git
osplatform SPARC SetPropertyFromCommand Step
osrelease 11 SetPropertyFromCommand Step
project curl Build
repository https://github.com/curl/curl.git Build
revision 3bb5e58c105d7be450b667858d1b8e7ae3ded555 Build
scheduler schedule-curl-ares-solaris11-sparc Scheduler
slavename unstable11s BuildSlave
workdir /export/home/buildbot/slave/curl-ares-solaris11-sparc slave (deprecated)

Forced Build Properties:

NameLabelValue

Responsible Users:

  1. Viktor Szakats

Timing:

StartMon Jul 28 18:29:37 2025
EndMon Jul 28 19:59:41 2025
Elapsed1 hrs, 30 mins, 3 secs

All Changes:

:

  1. Change #241039

    Category curl
    Changed by Viktor Szakats <commitohnoyoudont@vsz.me>
    Changed at Mon 28 Jul 2025 17:45:04
    Repository https://github.com/curl/curl.git
    Project curl
    Branch master
    Revision 3bb5e58c105d7be450b667858d1b8e7ae3ded555

    Comments

    memory: make function overrides work reliably in unity builds
    Fixing:
    - HTTPS-RR builds with c-ares and Linux MUSL.
    - curl-for-win minimal builds with Linux MUSL.
    
    It should fix all other kinds of entaglement between curl's redefintions
    of system symbols and system (or 3rd-party) headers sensitive to that.
    
    It also syncs memory override behavior between unity & non-unity builds,
    thus reducing build variations.
    
    The idea is to define and declare everything once in `curl_setup.h`,
    without overriding any system symbols with curl ones yet. Then, like
    before this patch, override them, if necessary, in each source file via
    `curl_memory.h` and `memdebug.h`, after including system headers.
    To ensure a clean slate with no overrides at the beginning of each
    source file, reset all of them unconditionally at the end of
    `curl_setup.h`, by including `curl_mem_undef.h`. (This assumes
    `curl_setup.h` is always included first, which is already the case
    throughout the codebase.)
    
    `curl_mem_undef.h` can also be included explicitly wherever overrides
    are causing problems. E.g. in tests which use unity-style builds and
    a previously included `curl_memory.h`/`memdebug.h` can be spilling into
    other source files.
    
    The simplified role of the two override headers:
    - `curl_memory.h`: overrides system memory allocator functions to
      libcurl ones, when memory tracing (aka `CURLDEBUG`) is disabled.
    - `memdebug.h`: overrides system memory allocator and some other
      functions to curl debug functions, when memory tracing is enabled.
    
    Changed made in this patch, step-by-step:
    - curl_memory.h: move allocator typedefs and protos to `curl_setup.h`.
    - memdebug.h: move `ALLOC_*` macros to `curl_setup.h`.
    - memdebug.h: move allocator protos to `curl_setup.h`.
    - memdebug.h: move `Curl_safefree()` macro to `curl_setup.h`.
      (it's a regular macro, with a one-time, global, definition.)
    - curl_memory.h: move system symbol undefs to a new, separate header:
      `curl_mem_undef.h`.
    - curl_setup.h: include `curl_mem_undef.h` at the end, unconditionally,
      to reset system symbol macros after each inclusion.
    - handle `sclose()` and `fake_sclose()` in `curl_setup.h`. They are not
      system symbols, a one-time definition does the job.
    
    Also:
    - GHA/linux: enable unity mode for the HTTP-RR c-ares MUSL job.
      Follow-up to 17ab4d62e62bd3bfb6dbf6cb51460629f21c03e7 #16413
    
    That said, I'd still find it better to avoid redefining system macros.
    To communicate clearly the fact that they are not the original system
    calls and they do behave differently. And, it would allow dropping the
    undef/redef dance in each source file, and maintaining the logic with
    it. The "last #include files should be in this order" comments in each
    source would also become unnecessary. Also the trick of using
    `(func)` (or interim macros) to call the non-overridden function where
    required. This method works for printf and most everything else already.
    For `_tcsdup`, socket and fopen functions this could work without
    disturbing the codebase much.
    
    Ref: #16428 (clean reboot of)
    
    Closes #17827

    Changed files

    • .github/workflows/linux.yml
    • lib/Makefile.inc
    • lib/curl_mem_undef.h
    • lib/curl_memory.h
    • lib/curl_setup.h
    • lib/curl_setup_once.h
    • lib/memdebug.h