Hi Thomas,

On Mon, Nov 17, 2025 at 12:54:44PM +1300, Thomas Munro wrote:
> On Tue, Nov 11, 2025 at 11:04 AM Thomas Munro <[email protected]> wrote:
> > https://www.postgresql.org/message-id/68adbcd3.500a0220.8d4c9.9460%40mx.google.com
> >
> > Sorry I missed this.  I had some trouble with your messages being
> > deleted as spam, which I've hopefully fixed now...

(Sorry about that, I think I fixed it now (after Alvaro mentioned it
again to me at pgconf.eu). Ironically, your previous mail from November
11 was flagged as spam by my provider so I didn't see it until now,
either)

> > -#elif defined(__linux__) || defined(__sun) || defined(__darwin__)
> > +#elif defined(__linux__) || defined(__sun) || defined(__darwin__) ||
> > defined(__GNU__)
> >
> > Would __gnu_hurd__ be a better bet, less confusable with GNU userspace
> > stuff?  I think these platform macros might come from this file in
> > GCC:
> >
> > https://github.com/gcc-mirror/gcc/blob/faf7053346110cbd11fb22ff75f56a964047b19c/gcc/config/gnu.h#L30
> >
> > But maybe not only there, if __hurd__ (as removed by d2ea2d31)
> > actually worked...
> 
> I failed to locate a definitive source in a manual or porting guide or
> such, but I see patches making the same change in other projects in
> their mailing lists[1], so it seems that  __GNU__ is indeed their
> preferred way of detecting a GNU/Hurd (or IIUC 100% "GNU") system, and
> it's certainly not defined on my Debian GNU/Linux machine according to
> GCC and Clang. 

Yeah, __GNU__ is the usual way to distinguish that, I didn't even know
about __gnu_hurd__ until I looked up the same file above when I wrote
the patch...

> So although it was slightly confusing to this human, being used to
> seeing __GNUC__ and similar, it doesn't appear to be confusing to
> computers.
> 
> Pushed, and back-patched to 16, where it applied without problems.

Thanks!

> The REL_{14,15}_STABLE branches don't have commit d2ea2d31.  I thought
> about doing s/__hurd__/__GNU__/ instead, but it actually said:
> 
> #elif (defined(BSD) || defined(__hurd__)) && !defined(__darwin__)
> #define PS_USE_CHANGE_ARGV
> 
> The right thing to do might be to remove it from there, define
> PS_USE_CLOBBER_ARGV like in the newer branches and also apply the
> second hunk about padding strategy (in other words: be exactly like
> GNU/Linux), but I can't test that.  If 14 and 15 are still interesting
> to you, let me know if that makes sense and works as expected,
> otherwise I'll assume you just want to let sleeping dogs lie.

I mentioned that in a follow-up[0] to my original mail that you
apparently did not see eiter:

|By the way, on the back branches from 13-15 (before the above commit)
|process title changes don't work either, presumably because __hurd__ (as
|opposed to __GNU__ and __gnu_hurd__) has not been defined on GNU/Hurd
|for ages (or ever?), see
|https://github.com/gcc-mirror/gcc/blob/master/gcc/config/gnu.h#L25
|
|So in case this get backpatched, I think it should be changed to
|PS_USE_CLOBBER_ARGV there as well.

So yeah, I think those would be useful to fix. If you have a patch, I am
happy to test it, or I can come up with one (but not sure I manage this
week).


Thanks,

Michael

[0] 
https://www.postgresql.org/message-id/68add009.170a0220.16b3ca.d01e%40mx.google.com


Reply via email to