Re: Dead code in ps_status.c

From: Thomas Munro <thomas(dot)munro(at)gmail(dot)com>
To: Michael Banck <mbanck(at)gmx(dot)net>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Andres Freund <andres(at)anarazel(dot)de>
Subject: Re: Dead code in ps_status.c
Date: 2025-11-16 23:54:44
Message-ID: CA+hUKGJSJbAXn5uU2VFpPjF-TqX8YOEcAawARfdL3u0H1R8bFg@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Nov 11, 2025 at 11:04 AM Thomas Munro <thomas(dot)munro(at)gmail(dot)com> 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...
>
> -#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. 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.

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.

[1] https://lists.gnu.org/archive/cgi-bin/namazu.cgi?query=__GNU__&submit=Search%21&idxname=bug-hurd&max=20&result=normal&sort=score

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Smith 2025-11-17 00:30:47 Re: CREATE/ALTER PUBLICATION improvements for syntax synopsis
Previous Message David Rowley 2025-11-16 23:37:25 Re: Some efforts to get rid of "long" in our codebase