开发者生态
morning
适用于 Itanium 的 Windows XP 2002:肆无忌惮的愤怒
摘要
Windows XP ia64 build 2600 in all it’s glory This is exciting news, there is a fork of Qemu that has workable Itanium Merced emulation, and it’s good enough to run Windows XP/2003! Enter Malte Kuhlman...
the
gcc
that
for
linux
this
usr
local
build
Qemu
2026-08-04
1 阅读
约9分钟阅读
jandeboevrie
字号:
Windows XP ia64 build 2600 尽显辉煌 这是一个令人兴奋的消息,Qemu 的一个分支具有可用的 Itanium Merced 仿真,并且足以运行 Windows XP/2003!输入 Malte Kuhlmann 的 Qemu 分支,是 syunnPC 的 AI Itanium 注入的 Qemu 分支。我确信在某个时候将会出现某种形式的合并。一如既往,当事情有趣时,事情进展得很快。无论如何,我在构建这个项目时遇到了令人难以置信的问题。我应该写下 Qemu Alpha 的步骤,因为它可以运行 Alph64 Windows! ……但是我没有,所以我有点失去了(希望是暂时的)所需的食谱。相反,我会跳回我的 mac mini,因为 macOS 当然只是足够有用的 UNIX,而且足够主流以拥有真正的应用程序。部分原因是我想构建固件,因为我感觉这是我缺少的一些重要的“同步”东西。构建交叉编译器对于我或这个博客来说并不是什么新鲜事。事实上,我目前从其他各种项目中得到了两个: jsteve@Jasons-Mac-mini gcc % /usr/local/os2/bin/i386-pc-linux-gnuaout-gcc -v 从 /usr/local/os2/lib/gcc-lib/i386-pc-linux-gnuaout/2.8.1/specs gcc version 2.8.1 读取规范jsteve@Jasons-Mac-mini gcc % /usr/local/i586-linux2/bin/i586-linux-gcc -v 从 /usr/local/i586-linux2/lib/gcc-lib/i586-linux/2.8.1/specs gcc 版本 2.8.1 读取规范 由于 GCC 2.8.1 似乎可以作为 macOS arm64 二进制文件运行“okay”以交叉编译到i386...但这不适合这里。由于这是一个“现代”建筑,因此不需要任何有趣的事情。事情刚刚成功。令人惊讶的是,我知道。显然,对于多年后的人们来说,这并不成立。 Binutils 没什么可看或说的,只是使用了 binutils 2.46.0,并且它是开箱即用的配置/构建。好的。 ../binutils-2.46.0/configure --target=ia64-linux-gnu --prefix=/usr/local/ia64-linux-gnu GCC 这有点奇怪,因为 Itanium 不是一个垂死的平台,而是一个非常死的平台。尽管多亏了一位用户 René Rebe 保持了火焰的活力,我还是选择使用提到的版本 15 来看看它是否仍然有效。剧透,确实如此!在 macOS 上构建还意味着我确实安装了自制软件,并且我可以直接为 GCC 构建依赖项,而不是手动构建如此多的依赖项。这确实使得配置变得更加复杂。 ../gcc-15.3.0/configure \ --target=ia64-linux-gnu \ --prefix=/usr/local/ia64-linux-gnu \ --disable-bootstrap \ --disable-multilib \ --enable-languages=c \ --with-gmp=/opt/homebrew \ --with-mpfr=/opt/homebrew \ --with-mpc=/opt/homebrew \ CPPFLAGS="-I/opt/homebrew/include" \ LDFLAGS="-L/opt/homebrew/lib" 由于 zlib,fdopen 有一些奇怪的重复定义,导致构建失败。我知道什么鬼。在 ../../gcc-15.3.0/zlib/zutil.c:10 包含的文件中: 在 ../../gcc-15.3.0/zlib/gzguts.h:21 包含的文件中: 在 /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:61 包含的文件中: /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h:322:7:错误:预期')'322 | FILE *fdopen(int, const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, _... | ^ ../../gcc-15.3.0/zlib/zutil.h:140:33: 注意:从宏 'fdopen' 140 扩展 | # Define fdopen(fd,mode) NULL /* 没有 fdopen() */ 当然是修复是注释掉 zutil.h 的第 140 行之后,它将主要构建,(记住在你的路径中有 binutils 二进制文件!导出 PATH=/usr/local/ia64-linux-gnu/bin:$PATH )它会抱怨缺少 pthread,因为它想要构建所有 Linux 东西,但我们不在乎包含在文件中。 ../../../gcc-15.3.0/libgcc/gthr.h:157,来自../../../gcc-15.3.0/libgcc/libgcov-interface.c:27:./gthr-default.h:35:10:致命错误:pthread.h:没有这样的文件或目录35 | #include | ^~~~~~~~~~~ 但是,我必须手动复制 cp ia64-linux-gnu/libgcc/libgcc.a /usr/local/ia64-linux-gnu/lib/libgcc.a'。然后只需 cd 到 gcc 目录并运行 make install 即可。 jsteve@Jasons-Mac-mini gcc % /usr/local/ia64-linux-gnu/bin/ia64-linux-gnu-gcc -v 使用内置规范。 COLLECT_LTO_WRAPPER=/usr/local/ia64-linux-gnu/libexec/gcc/ia64-linux-gnu/15.3.0/lto-wrapper 目标:ia64-linux-gnu 配置为:../gcc-15.3.0/configure --target=ia64-linux-gnu --prefix=/usr/local/ia64-linux-gnu --disable-bootstrap --disable-multilib --enable-languages=c --with-gmp=/opt/homebrew --with-mpfr=/opt/homebrew --with-mpc=/opt/homebrew CPPFLAGS=-I/opt/homebrew/include LDFLAGS=-L/opt/homebrew/lib 线程模型:posix 支持的 LTO 压缩算法:zlib gcc 版本 15.3.0 (
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱