From: Patrick Steinhardt <ps@pks•im>
To: Jeff King <peff@peff•net>
Cc: "Osipov, Michael (IN IT IN)" <michael.osipov@innomotics•com>,
git@vger•kernel.org
Subject: Re: [Bug] Compat objects not added to CLAR_TEST_PROG
Date: Tue, 9 Sep 2025 09:45:07 +0200 [thread overview]
Message-ID: <aL_bAxZubXMOGWsu@pks.im> (raw)
In-Reply-To: <20250905213708.GB612697@coredump.intra.peff.net>
On Fri, Sep 05, 2025 at 05:37:08PM -0400, Jeff King wrote:
> On Fri, Sep 05, 2025 at 03:19:50PM +0200, Osipov, Michael (IN IT IN) wrote:
> > diff -u -ur t/unit-tests/clar/clar/sandbox.h git-2.51.0.patched/t/unit-tests/clar/clar/sandbox.h
> > --- t/unit-tests/clar/clar/sandbox.h 2025-08-18 02:35:38 +0200
> > +++ t/unit-tests/clar/clar/sandbox.h 2025-09-05 14:10:52 +0200
> > @@ -2,6 +2,8 @@
> > #include <sys/syslimits.h>
> > #endif
> >
> > +#include "../../../../compat/posix.h"
> > +
> > static char _clar_path[4096 + 1];
> >
> > static int
>
> ...seems like an obvious improvement. If we are compiling any C code,
> we'd want our compatibility macros, etc. Although it does get a little
> funny, as the contents of clar/ are imported from elsewhere, and now
> we're modifying that.
>
> It looks like clar tries to handle portability on its own, so I guess
> another route is for it to add its own mkdtemp wrapper, and we'd import
> that fixed version. But it really feels like we're duplicating effort.
We're duplicating effort indeed, but that effort benefits other
projects that use clar.
In any case, we already have logic to detect whether or not the platform
should have `mkdtemp()`:
#if defined(__MINGW32__)
if (_mktemp(_clar_tempdir) == NULL)
return -1;
if (mkdir(_clar_tempdir, 0700) != 0)
return -1;
#elif defined(_WIN32)
if (_mktemp_s(_clar_tempdir, sizeof(_clar_tempdir)) != 0)
return -1;
if (mkdir(_clar_tempdir, 0700) != 0)
return -1;
#elif defined(__sun) || defined(__TANDEM)
if (mktemp(_clar_tempdir) == NULL)
return -1;
if (mkdir(_clar_tempdir, 0700) != 0)
return -1;
#else
if (mkdtemp(_clar_tempdir) == NULL)
return -1;
#endif
So that raises the question whether HP-UX has mktemp(3p) -- if so, we
can probably fix the issue like this:
diff --git a/clar/sandbox.h b/clar/sandbox.h
index ff43159..5af36f3 100644
--- a/clar/sandbox.h
+++ b/clar/sandbox.h
@@ -164,7 +164,7 @@ static int build_tempdir_path(void)
if (mkdir(_clar_tempdir, 0700) != 0)
return -1;
-#elif defined(__sun) || defined(__TANDEM)
+#elif defined(__sun) || defined(__TANDEM) || defined(__HPUX)
if (mktemp(_clar_tempdir) == NULL)
return -1;
The `__HPUX` define is pulled out of thin air, I have no idea what
preprocessor macro that system sets. But something in that spirit may
fix that issue. If so, I'm happy to fix this upstream and then pull
the latest version into Git.
Patrick
next prev parent reply other threads:[~2025-09-09 7:45 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-05 13:19 [Bug] Compat objects not added to CLAR_TEST_PROG Osipov, Michael (IN IT IN)
2025-09-05 21:37 ` Jeff King
2025-09-05 22:12 ` Osipov, Michael (IN IT IN)
2025-09-09 7:45 ` Patrick Steinhardt [this message]
2025-09-09 8:00 ` Osipov, Michael (IN IT IN)
2025-09-09 10:15 ` Patrick Steinhardt
2025-09-09 12:07 ` Osipov, Michael (IN IT IN)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aL_bAxZubXMOGWsu@pks.im \
--to=ps@pks$(echo .)im \
--cc=git@vger$(echo .)kernel.org \
--cc=michael.osipov@innomotics$(echo .)com \
--cc=peff@peff$(echo .)net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox