1
0
mirror of https://github.com/skeeto/w64devkit.git synced 2025-07-28 16:41:58 +03:00
Commit Graph

230 Commits

Author SHA1 Message Date
c90f4db711 WIP Rename w64devkit-i686 to w32devkit (#81) 2023-07-27 13:36:01 -04:00
1de55df78b Remove the "mini" variant
After the growth of various dependencies, the added weight of a C++
toolchain has become relatively small. I no longer feel it's worth
including as a separate variant.
2023-07-27 13:10:39 -04:00
0814c8094b Update to GCC 13.2.0
https://gcc.gnu.org/gcc-13/changes.html
2023-07-27 09:02:31 -04:00
2b0ae5a7f3 Add note to README.md about PowerShell (#69, #76)
Despite appearances, the ">" operator is actually a pipe to Out-File,
and GetFileType() returns FILE_TYPE_PIPE for that handle. It is not
seekable and does not behave like a file. By default it re-encodes its
input, which is virtually always destructive, unwanted, and surprising.
Regardless of the wording in its documentation, it is not possible to
connect process output to a file, and PowerShell does not support file
redirection.
2023-07-06 13:52:59 -04:00
c17f5ca2b4 Use --with-default-msvcrt=msvcrt-os with Mingw-w64
The Mingw-w64 default may change to UCRT in the future, possibly soon,
but w64devkit will continue with the original msvcrt.dll for as long as
possible. It has far better compatibility with older systems, and UCRT
has limited availability prior to Windows 10.

The only benefits of linking UCRT that I know are better compatibility
when statically linking with UCRT-based toolchains, particularly MSVC,
and actually-working assertions (something Mingw-w64 could fix, as it
does printf, etc.). That's it! Mingw-w64 already fills in the missing
C99 bits. The Mingw-w64 documentation vaguely mentions a UTF-8 locale,
but it is either false or useless depending on the meaning. UCRT has all
the same narrow API limitations of MSVCRT — *the* biggest and thorniest
issue with Windows CRTs.

Trading away a ton of backwards compatibility just for better static
linking with MSVC sounds like a poor cost-benefit trade-off. In that
light, the choice of CRT seems obvious regardless of the Mingw-w64
default. My own view is that Windows CRTs have been poorly implemented
and are generally not worth using, so they should be avoided in the
first place, i.e. define {main,WinMain}CRTStartup, call Win32 directly,
and compile with -nostartfiles.

https://sourceforge.net/p/mingw-w64/mailman/message/37853546/
2023-06-12 23:05:40 -04:00
2617b47433 Upgrade to busybox-w32 FRP-5007-g82accfc19
Many enhancements and fixes:
https://frippery.org/busybox/release-notes/FRP-5007.html
2023-05-28 11:58:41 -04:00
7d8cb0eefc Update build script getopts string with "optimize"
Amends e76624e.
2023-05-06 12:07:03 -04:00
c0bc4707ab Update README.md note about UBSan for GCC >= 13
The new option name is a lot nicer, so encourage its use! I don't know
if the old option will ever be removed.
2023-05-02 18:24:51 -04:00
3824d4d5bb Bump to 1.19.0 v1.19.0 2023-05-02 15:03:31 -04:00
e76624e29c Higher zip compression, disable default advzip
As of GDB 13.1, gdb.exe contains data triggering a bug in x64 Explorer
zip integration at last as far back as Windows 7. After recompressing
with advzip, gdb.exe extraction fails with 0x80004005 "Unspecified
error". This happens with both 32-bit and 64-bit gdb.exe regardless of
compiler flags. No other zip program has trouble with this file.

Until this is resolved, give up on advzip and tell zip to use -9. Also
renamed the build script option from -q (quick) to -O (optimize) and
disable its use by default.
2023-05-02 14:58:44 -04:00
0423b551db GCC 13: Disable UTF-8 manifest for i686 (#58)
The manifest is incompatible with Windows XP and prevents GCC's
executables from starting on that platform.
2023-05-02 13:24:56 -04:00
0d6664471a Fix a Binutils 2.40 regression
In Binutils 2.40, there is a regression that ld fails with MSVC lib
files. Add a patch to fix it. Closes #59.

[1] https://github.com/msys2/MINGW-packages/issues/15469
[2] https://sourceware.org/bugzilla/show_bug.cgi?id=30079
2023-05-01 11:15:48 -04:00
5875e0b326 Upgrade to Mingw-w64 11.0.0
Fixes to various headers. New Win32 APIs.

https://www.mingw-w64.org/changelog/#v1100-2023-04-28
2023-04-28 12:07:57 -04:00
7256915e4b Update to GCC 13.1.0 2023-04-26 11:24:09 -04:00
983d4718a2 Patch two Cppcheck bugs for upcoming GCC 13
Cppcheck does not compile with GCC 13 without these fixes, see:
https://gcc.gnu.org/gcc-13/porting_to.html
2023-04-26 11:23:45 -04:00
5b2e053bd1 Add gdbserver binary for remote debugging 2023-04-25 15:26:58 -04:00
122123c410 Upgrade to u-config 0.31.1 2023-04-10 19:38:31 -04:00
7f6e0bac80 Upgrade to Binutils 2.40 2023-04-06 11:57:22 -04:00
da042be364 In GDB prioritize wWinMain over wmain
Analagous to WinMain and main, but with -municode.
2023-03-13 11:43:18 -04:00
74b79cc2f0 In GDB prioritize main over CRT-free entry points
Programs with main typically also have mainCRTStartup, but it's unlikely
that the user wants to break inside the CRT. If WinMain or wWinMain are
present, the user purposefully defined them, so prioritize those even
higher.
2023-03-13 10:52:43 -04:00
3a981884ef Teach GDB about more Windows entry points
Windows programs have several conventional entry points depending on
various circumstances. Upstream GDB is only aware of "main" and the
"start" command behaves poorly or incorrectly otherwise.
2023-03-12 18:44:52 -04:00
98a7d85129 Improve alias.c with a near rewrite
I've gotten a lot better at CRT-free since I first wrote this. I'm more
confident about this version, it produces better error messages, and it
compiles around 10x faster. The last point matters because w64devkit
currently compiles this program 181 times.
2023-02-26 21:59:28 -05:00
d26683427a Remove Windows version define from GDB build
Originally a workaround (3316e7a), this bug was fixed upstream.
2023-02-22 13:53:43 -05:00
3480a43a54 Upgrade to Universal Ctags 6.0.0
This is the first official versioned release of Universal Ctags, dated
December 2022. There were no prior tagged releases, let alone stable
source tarballs, so w64devkit piggy-backed off Debian's fork for the
needed stability.

This release has an official, stable source tarball, but it's broken and
practically useless. Further, the Git repository isn't tagged correctly,
having no annotated tags even for 6.0.0. Fortunately GitHub has recently
committed to generating stable source tarballs following backlash from
archive breakage in early February 2023. Because GitHub's source tarball
is more reliable than the official tarball, use it instead.
2023-02-22 13:48:49 -05:00
bd00a3c9db Stop overriding default debug format in GCC
GDB 13.1 is the first release to fully support DWARF 5, and so this
override is no longer necessary.
2023-02-20 17:17:00 -05:00
fdac8e333f Upgrade to GDB 13.1
For some reason this version introduces a "gdb.exe" wrapper script. As
far as I can tell it is unnecessary, so I'm ignoring it.
2023-02-20 17:09:03 -05:00
b94d90de73 Introduce libiconv for GDB 12+
As of GDB 12.1, libiconv is a mandatory dependency on Windows. As with
Expat, this fact is undocumented. GDB builds successfully without but
that build is broken and practically useless. This dependency introduces
no new features nor makes GDB work better (i.e. GDB still cannot display
non-ASCII strings). It is necessary only to retain the capabilities
already present in GDB 11 an earlier.
2023-02-20 17:08:50 -05:00
1c7435de9b Upgrade to busybox-w32 FRP-4882-g6e0a6b7e5
https://frippery.org/busybox/release-notes/FRP-4882.html
2023-02-15 20:27:44 -05:00
1e63aca9f6 Upgrade to busybox-w32 FRP-4881-ga6c5fd4eb
* New option: diff --binary
* Improved CRLF handling
* Improved performance

https://frippery.org/busybox/release-notes/FRP-4881.html
2023-02-15 10:56:48 -05:00
4098428f2f Bump to 1.18.0 v1.18.0 2023-02-14 08:29:14 -05:00
0e773cccf2 Correct the "i686" patch
The "--with-arch" was landing in winpthreads rather than GCC.
2023-02-14 08:29:14 -05:00
77375be4fa Upgrade to u-config 0.31.0 2023-02-13 12:12:52 -05:00
dce2b638d0 Upgrade to busybox-w32 FRP-4784-g5507c8744
* Minor fixes to symlink handling, sh, tar, wget
2023-02-05 19:06:39 -05:00
db1f3f68de Fix 404 Win32 link
The file is available via the Internet Archive, luckily.
2023-02-05 23:04:36 +01:00
cc91d8f5ee Upgrade to Cppcheck 2.10
The update reduces false positives I've observed in real programs.
2023-02-04 14:16:56 -05:00
bbb8d730f2 Add an arch-prefixed pkg-config command alias 2023-02-01 10:49:02 -05:00
18542a50fc Upgrade to u-config 0.30.2
System import libraries are handled a little better, namely the linker
order, when using multiple packages at a time.
2023-01-30 10:30:55 -05:00
63418a5589 Upgrade to u-config 0.30.1
Testing revealed non-ideal, but still valid, output when libraries are
installed under the w64devkit sysroot. This has been corrected.
2023-01-27 11:51:25 -05:00
16f300cd69 Add a library installation section to the README
Except for the pkg-config part, these already worked. The new pkg-config
command expands and complements the options.
2023-01-27 11:50:01 -05:00
43707da51f Add a "pkg-config" command (u-config)
u-config: a new, lean pkg-config clone
https://nullprogram.com/blog/2023/01/18/
2023-01-25 20:31:43 -05:00
30c739277b Use configure option instead of hacking config.gcc
This option isn't listed in the root configure script, so I didn't know
it existed until now.
2022-11-08 22:56:41 -05:00
c5c9f6d259 Bump to 1.17.0 v1.17.0 2022-11-02 21:03:52 -04:00
20f1d620b1 Use cross-toolchain ar to when building PDCurses
The native ar is not necessarily compatible with Mingw-w64, particularly
aarch64-linux-gnu-ar when compiling w64devkit from a Raspberry Pi.
2022-11-02 21:03:52 -04:00
32e2f8bdd0 Refresh the variant patches 2022-11-02 08:26:05 -04:00
5f3d7b8485 Enable GDB TUI support via PDCurses
This introduces yet another dependency, but it's a substantial gain for
a small cost.

GDB lacks "--with-libcurses-prefix" so I had to manually list the path
in LDFLAGS. Otherwise the GDB configure script fails to find waddstr and
gives up even though actually linking gdb.exe works fine without it.

The capitalized file name for PDCurses introduces a small sorting issue
in SHA256SUMS. Lexicographic collation with PDCurses at the top? A more
natural collation with PDCurses in the middle? I generate the listing
via "sha256sum *" in Bash, and in my locale Bash uses the latter, so
that's what I'll use.
2022-11-01 10:46:35 -04:00
34945ffe86 Upgrade to GDB 11.2
For w64devkit, nothing significant relative to GDB 11.1.
2022-11-01 08:43:51 -04:00
1000d8e9c0 Upgrade to GNU Make 4.4 2022-10-31 23:54:30 -04:00
fa0c76ef09 Upgrade to Expat 2.5.0
Fixes CVE-2022-43680, though GDB's use of Expat is not vulnerable in the
first place.
2022-10-30 19:42:54 -04:00
ded508907b Correct some typos in README.md 2022-10-11 21:14:41 +01:00
c6ae174900 Delete useless Binutils programs
Obviously elfedit and readelf are not useful on Windows. GProf has not
worked on Windows since Binutils 2.36 because it doesn't support PIE. It
was never effective in the first place, so it probably wasn't ever worth
including.
2022-10-01 15:20:48 -04:00