This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][PR build/23568] Fix gdb-7.12.1 MinGW/MSYS build issue


Hi there,

Just for your information, I tried to build gdb-8.1.1 under MinGW/MSYS and it doesn't work, due to a similar reason.
I opened a bug: https://sourceware.org/bugzilla/show_bug.cgi?id=23583

Have a nice day.
M. Laranjeira

Le 29/08/2018 à 00:19, SiZiOUS a écrit :
Hello,

Thank you very much for your interest to my patch.

I'm using the MinGW/MSYS installer from the official SourceForge page: https://sourceforge.net/projects/mingw/

Please note, I'm using the original MinGW/MSYS environment, not the newer MinGW-w64/MSYS2 environment which is a completely new project, with no links from the original one. The problem for me with MinGW-w64/MSYS2 is they dropped Windows XP support (and I understand that) but for my purpose I need XP support, as I targetting an old exotic platform (Sega Dreamcast if you're wondering), so I'm targetting GDB with sh-elf (fyi it's a Hitachi SH-4 CPU).

I did a new try on a completely fresh MinGW/MSYS installation just to be sure:

1- Download "mingw-get-setup.exe" from https://sourceforge.net/projects/mingw/ - it shows v0.6.2-beta-20131004-1 (It's just the MinGW Installation Manager Setup Tool version).
2- Click Install.
3- Install packages : mingw32-base, mingw32-gcc-g++, msys-base. GCC is 6.3.0-1.
4- Open MSYS Shell.
5- Unpack gdb-7.12.1 in the home directory or somewhere else.
6- Then execute the following command to launch the GDB build: "configure --disable-werror --prefix=/opt/toolchains/dc/sh-elf --target=sh-elf", followed by "make".

If you not apply my patch, then you'll get the following error near the build end:

ser-mingw.c: In function 'int ser_windows_read_prim(serial*, size_t)':
ser-mingw.c:346:30: error: 'ERROR_IO_PENDING' was not declared in this scope
       if (GetLastError () != ERROR_IO_PENDING
                              ^~~~~~~~~~~~~~~~
ser-mingw.c: In function 'int ser_windows_write_prim(serial*, const void*, size_t)': ser-mingw.c:368:30: error: 'ERROR_IO_PENDING' was not declared in this scope
       if (GetLastError () != ERROR_IO_PENDING
                              ^~~~~~~~~~~~~~~~
make[2]: *** [ser-mingw.o] Error 1

I tried the latest 8.0 build but it doesn't compile too.
Anyway I'm sticking to the 7.x branch as the GDB 7.x is confirmed to work with the Sega Dreamcast platform.

And I know, the MinGW/MSYS original project is maintained but almost deprecated in favour of MinGW-w64/MSYS2 project. But I really need XP support for my needs. I proposed this patch because it's really simple and not intrusive, but you're right, how many people uses that old MinGW/MSYS project?

Thank you for reading me in all the cases!

BR,
SiZiOUS

Le 28/08/2018 à 19:22, Eli Zaretskii a écrit :
From: Pedro Alves <palves@redhat.com>
Date: Tue, 28 Aug 2018 17:57:43 +0100

On 08/28/2018 01:01 PM, SiZiOUS wrote:
This little patch was made to allow the compilation under the MinGW/MSYS legacy environment (I don't know for the newer MinGW-w64/MSYS2 environment!). If this patch is not applied, then the compilation of gdb-7.12.1 under MinGW/MSYS is impossible.
GDB 7.12 is old by now and not actively maintained.

Can you check whether this is necessary on the master branch?
AFAICS, we include winerror.h via serial.h, which includes winsock2.h,
which includes winerror.h.  Older MinGW included that via the chain
windows.h->windef.h->winnt.h.

SiZiOUS, what version of the MinGW runtime are you using?



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]