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

226 Commits

Author SHA1 Message Date
Christopher Wellons
56d49323d5 Copy alias.c straight into the installation prefix 2021-02-09 22:04:04 -05:00
Christopher Wellons
3500d0930d Fix Vim 8.2 Markdown mode
Vim 8.2 shipped with broken Markdown syntax. This was the patch that
fixed it. This must be removed when upgrading to a future Vim 8.3.
2021-02-08 21:59:46 -05:00
Christopher Wellons
d8583583ed Bump to 1.6.0 v1.6.0 2021-02-07 19:35:15 -05:00
Christopher Wellons
d86ea47afe "Install" BusyBox using custom command alias tool
The "busybox --install" step has always been an unfortunate extra step
that I've watned to eliminate. I hoped I could do it via batch scripts
command "aliases". However, each aliased command has cmd.exe as its
parent interfering with its operation — particularly the disruptive and
infamous "Terminate batch job (Y/N)?" message which cannot be disabled.

The usual suggestion when people complain about this misfeature is to
use PowerShell. However, unlike batch scripts, PowerShell scripts are
not first class citizens on Windows. PowerShell is not always available
(often disabled by the adminstrator), and its scripts generally can't be
installed on and executed via the PATH, at least not without system-wide
configuration (i.e. PATHEXT).

The here is to use a tiny 4kB executable as a kind of crude compiled
shell script that, unlike cmd.exe, does the right thing. Since there are
so many, it adds about 150kB to the final .zip, but it does eliminate
this finall installation step.
2021-02-07 19:06:28 -05:00
Christopher Wellons
f78d14c3a9 Introduce custom command alias program
Unlike batch script aliases, this program will be well-behaved and will
not produce a disruptive "Terminate batch job (Y/N)" prompt. The program
is always compiled freestanding in order to be as small as possible.

Interactive programs (vi, vim, gvim, vimtutor) are fine with a batch
script alias.
2021-02-07 18:48:24 -05:00
Christopher Wellons
14c0ac34c5 Upgrade to Binutils 2.36.1 2021-02-06 11:36:11 -05:00
Christopher Wellons
e25a5704ca Auto silent "busybox --install" in activate.bat 2021-02-05 22:54:12 -05:00
Christopher Wellons
160bfa9d7b Set -Wl,--no-insert-timestamp by default
It's a bad idea to have this option enabled by default: The timestamp is
useless junk, and it makes builds non-reproducable.
2021-02-05 22:35:50 -05:00
Christopher Wellons
b8e8037e3d Add c99.bat compatability alias for "gcc -std=c99" 2021-02-05 21:54:47 -05:00
Christopher Wellons
f27d399c4c README.md updates and tweaks
Since my busybox-w32 ash patch has been accepted upstream, BusyBox's
shell is now quite adequate and capable, so there's little reason to
consider a replacement shell at this point.
2021-02-02 20:22:57 -05:00
Christopher Wellons
56422d3e9e Upgrade to NASM 2.15.05 2021-01-28 22:48:31 -05:00
Christopher Wellons
d72c0a3c22 Upgrade to Binutils 2.36
The windres --preprocessor command changed behavior in this release,
likely due to a bug, and it no longer word splits its argument (Binutils
commit 21c33bcb), though this was a misfeature to begin with. Vim uses
this option and so its build broke. Fortunately it doesn't actually need
to use --preprocessor sine the default is already fine, so it's been
removed.

This issue should be revisited on the next Binutils release.
2021-01-24 13:38:54 -05:00
Christopher Wellons
633f93bfa7 Add mingw32-make.bat alias for make.exe
This is useful for compatability with existing MinGW-based builds.
2021-01-23 20:05:40 -05:00
Christopher Wellons
370c3918f3 Upgrade to busybox-w32 FRP-3812-g12e14ebba
This includes a patch that fixes Alt key handling in the BusyBox shell.
2021-01-18 09:30:27 -05:00
Christopher Wellons
1d9aa6d16b Disable some unnecessary BusyBox programs
* ar, strings, vi, xxd: already supplied
* dpkg, dpkg-deb, rpm: useless in this context
* [[ only makes sense as a shell built-in
2021-01-11 20:16:18 -05:00
Christopher Wellons
7067e135f8 Add note about __USE_MINGW_ANSI_STDIO and -Os 2021-01-10 14:14:53 -05:00
Christopher Wellons
66ec60e839 Bump to 1.5.0 v1.5.0 2021-01-09 20:04:20 -05:00
Christopher Wellons
09d0714f14 Expand the README: more information, more bragging 2021-01-09 20:02:54 -05:00
Christopher Wellons
0771e29c0a Fix libsanitizer README link 2020-12-02 21:34:44 -05:00
Christopher Wellons
522ab38461 Disable 32-bit CRT (64-bit only) 2020-12-02 16:52:20 -05:00
Christopher Wellons
4102e5088f Upgrade to MPC 1.2.1 2020-10-24 14:08:00 -04:00
Christopher Wellons
4d76233acc Upgrade to GDB 10.1 2020-10-24 14:04:27 -04:00
Christopher Wellons
f8420992d3 Stop using GNU mirrors since they're to unreliable
About half the time I run fresh builds, at least one of the tarballs is
not downloaded correctly. The mirror is down, it has a bad certificate,
or it's serving HTTP 404 responses for files that should exist.
2020-10-24 13:36:45 -04:00
Christopher Wellons
11c0e00943 Also optimize the bootstrap CRT by size 2020-10-20 13:21:14 -04:00
Christopher Wellons
624671921e Enable wildcard expansion by GCC
This isn't ideal since it undermines the shell to support Windows' awful
command line semantics. However, it *is* pragmatic and that's one of the
major goals of the project.

Fixes #3.
2020-10-01 12:09:29 -04:00
Christopher Wellons
8021092686 Upgrade to Binutils 2.35.1 2020-09-19 22:27:04 -04:00
Christopher Wellons
c53e29c5ac Do more optimization for size
Some of the size optimizations from the first stage bootstrap leak into
the second stage itself. This means the distribution can be made slighly
smaller by optimizing for size in certain parts of the first stage.
2020-08-29 15:02:33 -04:00
Christopher Wellons
6f824b0eb7 Update ctags from 20191013 to 20200824 2020-08-29 13:32:07 -04:00
Christopher Wellons
953a08e4dc Set __USE_MINGW_ANSI_STDIO by default
Why this isn't already the default boggles the mind! The user can still
explicitly disable it if they like.
2020-08-23 16:38:16 -04:00
Christopher Wellons
5fe7efb377 Include Mingw-w64 licenses in the distribution
As discussed in the README, this makes it easier for users to comply
with the Mingw-w64 licenses, and it's probably necessary for the
distribution itself anyway.
2020-08-23 15:30:26 -04:00
Christopher Wellons
a4bc8896e6 Upgrade to Binutils 2.35 2020-07-25 09:55:49 -04:00
Christopher Wellons
7e255f7989 Bump to 1.4.0 v1.4.0 2020-07-23 21:19:39 -04:00
Christopher Wellons
00f6c47eba Update to GCC (10.2.0), GDB and MPFR 2020-07-23 21:18:30 -04:00
Christopher Wellons
493ba28af9 Add note to README about Mingw-w64 license crap
I hate this stuff.
2020-06-25 22:06:41 -04:00
Christopher Wellons
a92fa40c98 Bump to 1.3.1 v1.3.1 2020-06-07 10:11:18 -04:00
Christopher Wellons
2d16c6e323 Disable dependency tracking to speed up the build 2020-06-06 15:52:17 -04:00
Christopher Wellons
6dde5288e6 Improve the vimtutor script
The script now "copies" the tutor file to the temporary directory with a
"unique" file name, so the tutorial now lines up with the buffer state.
This one-liner already works far better than the official vimtutor.bat
ever did! It's only missing language selection, but this doesn't matter
since w64devkit discards internationalization anyway.
2020-06-04 17:14:23 -04:00
Christopher Wellons
b787dc2dec Add a vimtutor script
It would be interesting for w64devkit to be part of some sort of intro
to programming that targets Windows users who haven't yet graduated to a
more appropriate operating system. These people would need vimtutor in
order to make use of Vim.

Unfortunately the Vim developers decided that vimtutor should be a
complicated, fragile script rather than a feature built into Vim. After
a couple hours of trying, I still can't get the original vimtutor.bat
working reliably. So instead I included a one liner script that does 95%
of the job reliably. Unfortunately it's not an exact match with the
instructions, but this is the best I've found so far.
2020-06-03 20:06:02 -04:00
Christopher Wellons
b3ece094b2 Add note to README about statically-linked OpenMP 2020-05-27 13:18:47 -04:00
Christopher Wellons
4fae326765 Remove deprecated Mingw-w64 --enable-secure-api
This option was removed in Mingw-w64 7.0.0 since it's now the default
and cannot be disabled.
2020-05-27 13:06:31 -04:00
Christopher Wellons
45044bbe51 Bump to 1.3.0 v1.3.0 2020-05-25 13:15:10 -04:00
Christopher Wellons
e6a9e2f588 Enable C++11 thread support
pthreads already works fine in C, so I assumed C++ threads worked.
However, it requires choosing POSIX, not Win32, threads during GCC's
configuration, which, in retrospect, makes sense.
2020-05-25 13:15:10 -04:00
Christopher Wellons
cc73e7b8e7 Add note about libsanitizer to the README 2020-05-19 12:44:44 -04:00
Christopher Wellons
3d6c912751 Upgrade to Mingw-w64 v7.0.0
I would have used this in the first place, but the official Mingw-w64
website still supplies the wrong download link six months after v7.0.0
was released.
2020-05-18 22:11:49 -04:00
Christopher Wellons
e6aa244b9b Upgrade to Vim 8.2
This upgrade is required to work around a bug in Mingw-w64 7.0.0:
https://github.com/vim/vim/issues/4913

I would have used this version of Vim initially, but the Vim website
still lists 8.1 as the latest version five months after the release of
8.2.
2020-05-18 22:11:49 -04:00
Christopher Wellons
5c44239605 Add --enable-secure-api to Mingw-w64 configuration 2020-05-18 21:16:00 -04:00
Christopher Wellons
d0cbe749f8 Bump to 1.2.0 v1.2.0 2020-05-12 11:12:54 -04:00
Christopher Wellons
916e5ac533 Clear $SHELL before running Vim
This is necessary because otherwise, when run from BusyBox, it picks up
BusyBox's virtual "/bin/sh" shelll which, of course, doesn't work within
Vim.
2020-05-12 10:55:23 -04:00
Christopher Wellons
91b4af6131 Tweak some README wording 2020-05-12 10:55:12 -04:00
Christopher Wellons
4d46361400 Add Universal Ctags
Unfortunately Universal Ctags has never made an official release, and
the maintainer doesn't seem to be interesting in ever making one. So
there's no official stable tarball of the source code. GitHub's
automatically generated tarballs are not stable, so we can't use them.
So the best we can do is use a stable snapshot from a Linux
distribution, in this case Debian. This means we're limited to whatever
version Debian packages.
2020-05-12 09:24:01 -04:00