# [PATCH] mingw: drop bogus (and unneeded) declaration of `_pgmptr`

3 messages from 2024-06-19 to 2024-06-20. Participants: Johannes Schindelin via GitGitGadget, Mike Hommey, Junio C Hamano.
Thread: https://gitlist.dev/t/61647

## Johannes Schindelin via GitGitGadget, 2024-06-19 06:09

Subject: [PATCH] mingw: drop bogus (and unneeded) declaration of `_pgmptr`
Message-ID: <pull.1752.git.1718777398765.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/pull.1752.git.1718777398765.gitgitgadget%40gmail.com

```
From: Johannes Schindelin <johannes.schindelin@gmx.de>

In 08809c09aa13 (mingw: add a helper function to attach GDB to the
current process, 2020-02-13), I added a declaration that was not needed.
Back then, that did not matter, but now that the declaration of that
symbol was changed in mingw-w64's headers, it causes the following
compile error:

      CC compat/mingw.o
  compat/mingw.c: In function 'open_in_gdb':
  compat/mingw.c:35:9: error: function declaration isn't a prototype [-Werror=strict-prototypes]
     35 |         extern char *_pgmptr;
        |         ^~~~~~
  In file included from C:/git-sdk-64/usr/src/git/build-installers/mingw64/lib/gcc/x86_64-w64-mingw32/14.1.0/include/mm_malloc.h:27,
                   from C:/git-sdk-64/usr/src/git/build-installers/mingw64/lib/gcc/x86_64-w64-mingw32/14.1.0/include/xmmintrin.h:34,
                   from C:/git-sdk-64/usr/src/git/build-installers/mingw64/lib/gcc/x86_64-w64-mingw32/14.1.0/include/immintrin.h:31,
                   from C:/git-sdk-64/usr/src/git/build-installers/mingw64/lib/gcc/x86_64-w64-mingw32/14.1.0/include/x86intrin.h:32,
                   from C:/git-sdk-64/usr/src/git/build-installers/mingw64/include/winnt.h:1658,
                   from C:/git-sdk-64/usr/src/git/build-installers/mingw64/include/minwindef.h:163,
                   from C:/git-sdk-64/usr/src/git/build-installers/mingw64/include/windef.h:9,
                   from C:/git-sdk-64/usr/src/git/build-installers/mingw64/include/windows.h:69,
                   from C:/git-sdk-64/usr/src/git/build-installers/mingw64/include/winsock2.h:23,
                   from compat/../git-compat-util.h:215,
                   from compat/mingw.c:1:
  compat/mingw.c:35:22: error: '__p__pgmptr' redeclared without dllimport attribute: previous dllimport ignored [-Werror=attributes]
     35 |         extern char *_pgmptr;
        |                      ^~~~~~~

Let's just drop the declaration and get rid of this compile error.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
    mingw: drop bogus (and unneeded) declaration of _pgmptr
    
    Ran into this in
    https://github.com/git-for-windows/git-sdk-64/actions/runs/9558244721/job/26346637793.

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1752%2Fdscho%2Fdrop-bogus-_pgmptr-declaration-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1752/dscho/drop-bogus-_pgmptr-declaration-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/1752

 compat/mingw.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/compat/mingw.c b/compat/mingw.c
index 6b36d0387aa..41d8ca335d2 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -16,7 +16,6 @@ static const int delay[] = { 0, 1, 10, 20, 40 };
 void open_in_gdb(void)
 {
 	static struct child_process cp = CHILD_PROCESS_INIT;
-	extern char *_pgmptr;
 
 	argv_array_pushl(&cp.args, "mintty", "gdb", NULL);
 	argv_array_pushf(&cp.args, "--pid=%d", getpid());

base-commit: 08809c09aa1351b603e9c55734105cd2e3c24c41
-- 
gitgitgadget

```

## Mike Hommey, 2024-06-20 10:51

Subject: Re: [PATCH] mingw: drop bogus (and unneeded) declaration of `_pgmptr`
Message-ID: <20240620105105.5xv2ywxzzye4wjtk@glandium.org>
URL: https://gitlist.dev/e/20240620105105.5xv2ywxzzye4wjtk%40glandium.org
In-Reply-To: <pull.1752.git.1718777398765.gitgitgadget@gmail.com>

```
On Wed, Jun 19, 2024 at 06:09:58AM +0000, Johannes Schindelin via GitGitGadget wrote:
> From: Johannes Schindelin <johannes.schindelin@gmx.de>
> 
> In 08809c09aa13 (mingw: add a helper function to attach GDB to the
> current process, 2020-02-13), I added a declaration that was not needed.
> Back then, that did not matter, but now that the declaration of that
> symbol was changed in mingw-w64's headers, it causes the following
> compile error:
> 
>       CC compat/mingw.o
>   compat/mingw.c: In function 'open_in_gdb':
>   compat/mingw.c:35:9: error: function declaration isn't a prototype [-Werror=strict-prototypes]
>      35 |         extern char *_pgmptr;
>         |         ^~~~~~
>   In file included from C:/git-sdk-64/usr/src/git/build-installers/mingw64/lib/gcc/x86_64-w64-mingw32/14.1.0/include/mm_malloc.h:27,
>                    from C:/git-sdk-64/usr/src/git/build-installers/mingw64/lib/gcc/x86_64-w64-mingw32/14.1.0/include/xmmintrin.h:34,
>                    from C:/git-sdk-64/usr/src/git/build-installers/mingw64/lib/gcc/x86_64-w64-mingw32/14.1.0/include/immintrin.h:31,
>                    from C:/git-sdk-64/usr/src/git/build-installers/mingw64/lib/gcc/x86_64-w64-mingw32/14.1.0/include/x86intrin.h:32,
>                    from C:/git-sdk-64/usr/src/git/build-installers/mingw64/include/winnt.h:1658,
>                    from C:/git-sdk-64/usr/src/git/build-installers/mingw64/include/minwindef.h:163,
>                    from C:/git-sdk-64/usr/src/git/build-installers/mingw64/include/windef.h:9,
>                    from C:/git-sdk-64/usr/src/git/build-installers/mingw64/include/windows.h:69,
>                    from C:/git-sdk-64/usr/src/git/build-installers/mingw64/include/winsock2.h:23,
>                    from compat/../git-compat-util.h:215,
>                    from compat/mingw.c:1:
>   compat/mingw.c:35:22: error: '__p__pgmptr' redeclared without dllimport attribute: previous dllimport ignored [-Werror=attributes]
>      35 |         extern char *_pgmptr;
>         |                      ^~~~~~~
> 
> Let's just drop the declaration and get rid of this compile error.

I can only suppose it gets rid of the compiler error with close to 100%
certainty because for some reason, it only happens intermittently for me
and I don't know whether I'm lucky or if the issue is fixed for real,
but what it absolutely sure is that it doesn't break anything.

Mike

```

## Junio C Hamano, 2024-06-20 17:58

Subject: Re: [PATCH] mingw: drop bogus (and unneeded) declaration of `_pgmptr`
Message-ID: <xmqqzfrfv6lg.fsf@gitster.g>
URL: https://gitlist.dev/e/xmqqzfrfv6lg.fsf%40gitster.g
In-Reply-To: <20240620105105.5xv2ywxzzye4wjtk@glandium.org>

```
Mike Hommey <mh@glandium.org> writes:

> I can only suppose it gets rid of the compiler error with close to 100%
> certainty because for some reason, it only happens intermittently for me
> and I don't know whether I'm lucky or if the issue is fixed for real,
> but what it absolutely sure is that it doesn't break anything.

That is a curious vote of confidence ;-)  Will queue.  Thanks, both.

```
