1
0
mirror of https://github.com/skeeto/w64devkit.git synced 2025-08-07 22:42:54 +03:00
Commit Graph

357 Commits

Author SHA1 Message Date
Christopher Wellons
91ef757de1 w64devkit.c: Add an "environment" option [WIP] 2025-07-06 11:31:32 -04:00
Christopher Wellons
9a97c6d992 w64devkit.ini: MSYS2-like "path style"
Allows $PATH in w64dk environments to be controlled similarly to MSYS2.
Fixes #235.

https://www.msys2.org/wiki/MSYS2-introduction/#path
https://github.com/msys2/MSYS2-packages/blob/ae252e94/filesystem/profile#L28-L45
2025-07-06 11:29:22 -04:00
Christopher Wellons
055fbb6bf1 w64devkit.c: Style update before new changes
My personal style has evolved slightly more, and so continue moving in
that direction:

* Just accept u8 as an aliasing type (it's tolerable)
* Capitalize struct and enum typedefs, but leave s8 and s16 unchanged
* -Wconversion compliance, both 32- and 64-bit
* iz/uz for sizes and pointer-integers
* i32 for flags
* -lmemory now that it's available, with memory built-ins
* Rely on w64devkit's unique stdcall patch
* Drop dangerously-broken GCC attributes (malloc, alloc_size)
* Use C23 [[...]] instead of __attribute (new and experimental!)
2025-07-06 11:26:56 -04:00
Christopher Wellons
76ffbe9ec9 Reword library installation procedure (fixes #231)
I forgot to update this with 3a38668 (or ff4bb19). The situation has
simplified now that the architecture triple is gone from the sysroot.
2025-06-28 21:45:26 -04:00
Christopher Wellons
ff695fc9c1 vim: Improve HiDPI experience with a better font
GUI Vim defaults to Fixedsys, a raster font which does not scale. On
HiDPI displays, Vim is unusable in its default configuration despite
supporting HiDPI generally. This issue was never solved upstream, and
the official Vim builds still have this poor experience. For w64dk, I
want a better out-of-the-box experience. It tries Consolas, present on
any HiDPI system, and then falls back to Fixedsys if necessary (XP). As
a side effect, the unicode experience improves as well because Fixedsys
has little support beyond ASCII.

There's an argument to be made for Lucida Console, but Consolas edges
out by not having a space in the name. This also "breaks the seal" on
making other changes to Vim's generally poor defaults, perhaps to adopt
some of neovim's more thoughtful defaults:

https://neovim.io/doc/user/vim_diff.html#defaults
2025-06-26 13:01:34 -04:00
Christopher Wellons
1d0ed3417e Fix Mingw-w64 stddef.h for C23
Mingw-w64 stddef.h embeds a full, outdated copy of GCC stddef.h, which
overrides GCC's definitions, preventing GCC from defining C23 features
such as nullptr_t and unreachable(). This is a wrong. Ideally, Mingw-w64
ought not provide stddef.h because it has nothing to add. Despite this,
its header includes non-standard headers via crtdefs.h and defines quite
a bit more than it should. Other Mingw-w64 headers incorrectly rely on
these transitive includes. Rather than fix all these header bugs, allow
it to continue defining too much, and focus only on fixing C23.
2025-06-19 19:25:15 -04:00
Christopher Wellons
b74bca9998 llama.mak: Update for latest (new/removed files) 2025-06-19 16:56:03 -04:00
Christopher Wellons
d0d0af1c06 Bump to 2.3.0 v2.3.0 2025-06-17 17:58:40 -04:00
Christopher Wellons
ff4bb190f1 Adopt Hannes Domani's relocatable mingw patch (#212)
3a38668f is incomplete, and requires the toolchain is located under a
path ending w64devkit/, which unfortunately made it into the 2.2.0
release. This patch is more complete, but must only be applied to the
native toolchain, not the cross toolchain, so it applies the patch late
in the build.
2025-06-08 10:03:47 -04:00
Christopher Wellons
f2b69d2df5 Upgrade to Mingw-w64 13.0.0
Despite the patch notes, the only new debug import libraries are
msvcr80d, msvcr100d, and msvcr110d.

https://www.mingw-w64.org/changelog/#v1300-2025-06-08
2025-06-08 09:57:33 -04:00
Christopher Wellons
db95ea4855 peports: Remove an unnecessary void return
GCC and Clang accept this but other compilers do not. Regardless, this
was probably left over from refactoring. (#227)
2025-06-05 06:17:40 -04:00
Christopher Wellons
27c9633ff8 llama.mak: Update for latest (new files) 2025-06-05 06:17:39 -04:00
Yoshi662
515693903f Update path in README.md
Updated the path in the Usage section in the README.md due to a possible
confusion
2025-05-27 15:46:23 -04:00
Christopher Wellons
86fba52c10 llama.mak: New audio support, plus other changes 2025-05-27 10:10:22 -04:00
Christopher Wellons
4dfdd51d01 llama.mak: Update for latest (new files) 2025-05-19 08:59:04 -04:00
Christopher Wellons
29521abaf7 llama.mak: Update for new llama-server vision 2025-05-10 08:06:28 -04:00
Peter0x44
37355b4ca9 Delete unneeded patch for #86
The issue in GCC (PR110572) has been fixed upstream so this patch is no
longer needed.
2025-05-08 19:28:27 +01:00
Christopher Wellons
5e1f396919 llama.mak: Update for latest (file renames) 2025-05-03 16:56:38 -04:00
Christopher Wellons
17ff96cf81 Update links to C and C++ drafts
These pages are more reliable than the Stack Overflow answer, which
currently cannot be accessed without JavaScript.
2025-05-02 14:21:08 -04:00
Christopher Wellons
af81225122 Bump to 2.2.0 v2.2.0 2025-04-27 17:28:00 -04:00
Christopher Wellons
861ae534d5 Default to a quiet, trapping std::terminate
Remove 30k of Itanium demangling from C++ images just to display the
uncaught exception type before aborting. The message is near useless,
and GDB already does this while providing a wealth of information. An
application can still opt-in to the old behavior (including the 30k of
code) at runtime with:

    std::set_terminate(__gnu_cxx::__verbose_terminate_handler);

Speaking of GDB, std::terminate calls std::abort, but msvcrt!abort calls
exit() and does not trap. Introduce __gnu_cxx::__trap_terminate_handler
which uses __builtin_trap() instead, and set it as the new default. The
verbose handler also now uses a trap instruction. These changes improve
the debugging experience and better communicate the hard failure.

Closes #215.
2025-04-26 10:29:38 -04:00
Christopher Wellons
ab476113e2 Workaround old-style functions (GDB, Make, Vim) 2025-04-25 09:32:23 -04:00
Christopher Wellons
812849a368 Workarounds for GMP and MPFR bugs
Both GMP and MPFR sometimes use the wrong compiler when cross-compiling
unless a compiler is explicitly chosen. GCC now defaults to C23, but the
GMP configure script uses old-style, pre-ANSI function declarations that
were removed in C23.
2025-04-25 09:13:55 -04:00
Christopher Wellons
030ccf65c4 Update to GCC 15.1.0
https://gcc.gnu.org/gcc-15/changes.html
2025-04-25 07:54:22 -04:00
Christopher Wellons
b0617931ee Upgrade to u-config 0.34.0 2025-04-24 17:30:03 -04:00
Christopher Wellons
3a38668f4e Remove target element from the toolchain sysroot
This extra layer serves no purpose. Removing it flattens out the
directory structure and makes it a little nicer. The mingw32.h patch
will need to be adjusted for GCC 15, as this file was renamed for the
upcoming ARM64 port.
2025-04-07 20:03:58 -04:00
Christopher Wellons
2cb1e34b91 llama.mak: Update for latest changes (new sources) 2025-04-07 18:09:14 -04:00
Christopher Wellons
c99770dfba llama.mak: Update for latest changes (new sources) 2025-03-31 20:28:52 -04:00
Peter0x44
ec659f6883 Upgrade to libiconv 1.18 2025-03-27 15:45:03 -04:00
Peter0x44
ce0f09303c Upgrade to expat 2.7.0 2025-03-27 02:52:57 +00:00
Peter0x44
d25b1c790d Upgrade to MPFR 4.2.2 2025-03-26 01:16:09 +00:00
Christopher Wellons
cd264be113 llama.mak: Update for latest changes
Drop GGML exports, bigobj (now the default), and unneeded targets. Sync
exports with official DLL.
2025-03-17 14:32:40 -04:00
Christopher Wellons
fd6bb06188 Enable libbacktrace in libstdc++
This was supposed to be automatic, but libbacktrace's filetype.awk does
not recognize bigobj COFF (c9c9c07), and the detection failure overrides
--enable-stdcxx-backtrace. To work around it, clobber filetype.awk with
hardcoded output just before cross-compiling GCC.

Note: As of GCC 14.2, <stacktrace> requires linking -lstdc++exp.

Fixes #200.
2025-03-13 12:00:58 -04:00
Christopher Wellons
f0387373ea Upgrade to u-config 0.33.3
Improved --static, --modversion, error messages, and some variables.
2025-03-12 21:48:46 -04:00
Christopher Wellons
5cfc5e2688 rexxd.c: Stricter command line octal parsing
It now rejects invalid inputs that had been previously parsed as
decimal. It never incorrectly parsed valid inputs.
2025-03-10 10:38:34 -04:00
Christopher Wellons
5309f25b40 rexxd.c: Small cut() optimization
If the input is a multiple of the block size, it can run all the way to
the end. Has a small, but significant effect in the benchmarks.
2025-03-10 10:37:55 -04:00
Christopher Wellons
efd082db3a rexxd.c: Slightly stricter testing 2025-03-10 10:34:06 -04:00
Christopher Wellons
c6f30ee033 rexxd.c: Fix exit in two platforms
On x86-64 Linux actually use the exit status. On POSIX, do not exit
through libc.
2025-03-10 10:30:40 -04:00
Christopher Wellons
b217f139b8 Upgrade to busybox-w32 version FRP-5579
https://frippery.org/busybox/release-notes/FRP-5579.html
2025-02-28 07:59:02 -05:00
Christopher Wellons
36ac343fc3 gcc: Patch misaligned AVX spills (GCC bug 54412)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54412
2025-02-17 18:45:27 -05:00
Christopher Wellons
05d3306ca2 Replace Vim xxd with new "rexxd" implementation
An order of magnitude faster, and far less buggy.

Ref: https://nullprogram.com/blog/2025/02/17/
2025-02-16 19:30:19 -05:00
Christopher Wellons
cbb4c3f0df Fix libmemory and libchkstk archival on x86
The build used the host ar instead of the cross ar. With -mbig-obj as
the default (c9c9c073), the host ar cannot understand the PE32 object
files and so doesn't produce a symbol index. Not the first time this
problem has come up.
2025-02-13 20:33:25 -05:00
Christopher Wellons
d2a9c1c8b2 Update Expat to 2.6.4
Change to SourceForge becasue it's slightly more reliable than
fossies.org, which is down as of the time of this commit.
2025-02-08 11:00:53 -05:00
Peter0x44
6675cda8c3 Upgrade to GDB 16.2
Closes #194.
2025-02-08 11:00:40 -05:00
Peter0x44
e0bea3b7b7 Upgrade binutils to 2.44 2025-02-08 04:57:08 +00:00
Christopher Wellons
5f00137d37 llama.mak: Update for latest changes 2025-02-07 21:14:29 -05:00
Christopher Wellons
1170f6e78a Bump to 2.1.0
No major changes, just minor changes accumulated from the past few
months.
v2.1.0
2025-02-07 19:52:52 -05:00
Christopher Wellons
710e851add Upgrade to u-config 0.33.2
Primarily for changes to backslash processing in $PKG_CONFIG_PATH.
2025-02-07 19:52:52 -05:00
Christopher Wellons
6a3c12737b Update Vim download URL
The ftp.vim.org subdomain is gone, but the server is still up under its
real hostname. No release artifacts prior to 9.0 are hosted at vim.org,
leaving only nluug.nl and its mirrors.
2025-01-24 17:58:53 -05:00
Christopher Wellons
9969888b05 Bintuils patch to exclude more symbols from export
In bfd is a list of known libraries whose symbols are excluded when
exporting all symbols, the default behavior when no exports are chosen,
or with --export-all-symbols. The list is incomplete for w64dk and is
missing 15 additional "standard" libraries.

The result is that Windows-unaware builds using any of these libraries,
including any C++ program due to libpthread, tends to be broken. Instead
of adding each library to the list, blanket-exclude all libraries that
come from the sysroot. Since libpthread is so important, also add it to
the known list. Its absence is essentially a Binutils bug.
2025-01-24 17:33:06 -05:00