Rinrin 的个人资料永远的羁绊照片日志列表更多 工具 帮助

日志


8月10日

MSYS/MinGW from Scratch(未完成,更新中)

准备编译环境
安装MSYS,msysDTK,msysDVLPR,MinGW
建一个目录,存放我们的工具链
export $MFS=/d/mmfs
mkdir -p $MFS

关于msys:
msys(Minimal SYStem)是Cygwin的改版,针对Win32做了优化和修改,最突出的一点是根目录"/"和"/bin"根据msys-1.0.dll的位置自动mount,其他mount选项放到/etc/fstab中而不是注册表中(这表明/etc不能被mount?)。

关于target的说明:
target指示目标编译器产生的可执行文件所运行的平台,新版本的config,guess已经不支持i*86-pc-msys平台了,所以我们只能用i*86-pc-cygwin代替。

编译binutils(第一遍)
mkdir build && cd build
../configure --prefix=$MFS --disable-nls --disable-shared --disable-multilib --host=mingw32 --build=mingw32 --target=i686-pc-cygwin --with-sysroot=$MFS
编辑Makefile,MAKEINFO = makeinfo
binutils编译时仍然需要配置,检查宿主环境是否可以编译自己,这里预先进行配置,防止编译到一半出错浪费时间
make configure-host && make && make install
因为ld链接脚本搜索目录不正确,所以重新生成
make -C ld clean
make -C ld LIB_PATH=$MFS/lib
make -C ld install
最后,看一下$MFS/i686-pc-cygwin/lib/ldscripts/i386pe.*
确认库的搜索范围

编译w32api(第一遍)
./configure --prefix=$MFS
make
make install

编译MSYS-runtime(第一遍)
MSYS-runtime是不能用MinGW的gcc编译的,所以要使用官方提供的msysDVLPR
/msys/bin/msysdvlpr会打开一个新窗口
export PATH=/msys/bin:$PATH
cd /msys/rt
mkdir bld && cd bld
../src/configure --prefix=$MFS
make
make install prefix=$MFS tooldir=$MFS

编译gcc(第一遍)
修改PATH,让gcc找到我们编译的ld
export OLDPATH=$PATH
export $PATH=$MFS/bin:$PATH
首先需要禁止gcc配置时自动搜索并修正宿主系统的头文件
cp -v gcc/Makefile.in{,.orig} &&
sed 's@\./fixinc\.sh@-c true@' gcc/Makefile.in.orig > gcc/Makefile.in
修正gcc默认在/usr/include下寻找头文件的问题
修改gcc/Makefile.in
NATIVE_SYSTEM_HEADER_DIR = /include
修改gcc/cppdefault.c
#define STANDARD_INCLUDE_DIR "/include"
修正库搜索路径
gcc/collect2.c
删除add_prefix (&libpath_lib_dirs, "/usr/lib");
修正可执行文件搜索路径
gcc/gcc.c
删除八行
add_prefix (&exec_prefixes, standard_exec_prefix_1, "BINUTILS",
            PREFIX_PRIORITY_LAST, 2, 0);
add_prefix (&exec_prefixes, standard_exec_prefix_2, "BINUTILS",
            PREFIX_PRIORITY_LAST, 2, 0);

add_prefix (&startfile_prefixes, standard_exec_prefix, "BINUTILS",
            PREFIX_PRIORITY_LAST, 1, 0);
add_prefix (&startfile_prefixes, standard_exec_prefix_2, "BINUTILS",
            PREFIX_PRIORITY_LAST, 1, 0);

建立编译目录
mkdir ../gcc-build && cd ../gcc-build
../gcc-4.2.0/configure --prefix=$MFS --disable-nls --disable-shared --disable-win32-registry --enable-languages=c --enable-optimize -v --host=mingw32 --target=i686-pc-cygwin -

-build=mingw32 --disable-threads --disable-multilib --with-sysroot=$MFS
编辑一下Makefile,LD = ld,MAKEINFO = makeinfo
make all-gcc
make install-gcc

现在,需要调整一下工具链
i686-pc-cygwin-gcc -dumpspecs > $MFS/lib/gcc/i686-pc-cygwin/4.2.0/specs
修改specs:
*lib中-lcygwin改为-lmsys-1.0.dll

编译Hello World程序验证工具链正常工作
cat > test.c <<EOF
#include <stdio.h>
#include <windows.h>

int main()
{
        printf("Hello World!\n");
        MessageBox(NULL,"Hello World!","Test",MB_OK);
        return 0;
}
EOF
i686-pc-cygwin-gcc -v test.c
./test

OK,我们的工具链已经可以工作了,下面需要编译一些基本工具

为什么需要MSYS?
因为某些GNU工具需要POSIX支持,在MinGW下是无法编译的,或者工作不正常
这样,当configure脚本或者Makefile用到它们时,就会出现错误。

(后面的部分未完成)
编译mingw-runtime
编辑configure.in,W32API = -I /d/mmfs/mingw32/include
autoconf
编辑profile/configure.in,W32API = -I /d/mmfs/mingw32/include
autoconf
编辑mingwex/configure.in,W32API = -I /d/mmfs/mingw32/include
autoconf
./configure --prefix=$MFS/mingw32 --host=mingw32 --build=mingw32 --target=mingw32
make
make install

binutils
gcc
newlib
MSYS-runtime
w32api

bash
bzip2
coreutils
diffutils
findutils
gawk
gettext
grep
gzip
m4
make
patch
perl
sed
tar
texinfo

评论 (7)

请稍候...
很抱歉,您输入的评论太长。请缩短您的评论。
您没有输入任何内容,请重试。
很抱歉,我们当前无法添加您的评论。请稍后重试。
若要添加评论,需要您的家长授予您相应权限。请求权限
您的家长禁用了评论功能。
很抱歉,我们当前无法删除您的评论。请稍后重试。
您已超过了一天之内允许提供的评论数上限。请在 24 小时后重试。
因为我们的系统表明您可能在向其他用户提供垃圾评论,您的帐户已禁用了评论功能。如果您认为我们错误地禁用了您的帐户,请联系 Windows Live 支持部门
完成下面的安全检查,您提供评论的过程才能完成。
您在安全检查中键入的字符必须与图片或音频中的字符一致。

若要添加评论,请使用您的 Windows Live ID 登录(如果您使用过 Hotmail、Messenger 或 Xbox LIVE,您就拥有 Windows Live ID)。登录


还没有 Windows Live ID 吗?请注册

没有名字发表:
您需要二手液晶显示屏废旧液晶屏么?我们是不折不扣的二手液晶屏、旧液晶屏大批发商,长期大量供应可再利用的旧液晶屏。我公司提供的各种尺寸的二手液晶屏, 不同厚薄如笔记本屏,均已经过我们严格的分类,检验,测试流程。请访问协力液晶屏www.sceondhandlcd.com[igjgcahgdjhdeeg]
11 月 22 日
11 月 9 日
11 月 2 日
10 月 28 日
没有名字发表:
Warcraft game like this to (World of Warcraft gold) and (wow gold)! Price concessions, credibility is also good!
9 月 12 日
没有名字发表:

Hi,Do you need advertising displays, advertising player and LCD displays? Please go Here:www.amberdigital.com.hk(Amberdigital).we have explored and developed the international market with professionalism. We have built a widespread marketing network, and set up a capable management team dedicated to provide beyond-expectation services to our customers.

amberdigital Contact Us

E-mail:sstar@netvigator.com
website:www.amberdigital.com.hk
alibaba:amberdigital.en.alibaba.com[cfibfidgaiaggg]

9 月 1 日
没有名字发表:

Amberdigital Branch,Southern Stars Enterprises Co is specializing in the development and manufacturing of advertisement screens, LCD digital signage and LCD signages. Established in 1996, we have explored and developed the international market with professionalism. We have built a widespread marketing network, and set up a capable management team dedicated to provide beyond-expectation services to our customers.

amberdigital Contact Us
Southern Stars Enterprises Co (Hong Kong Office)
Add:3 Fl, No.2, Lane 2, Kam Tsin Tsuen, Sheung Shui, Hong Kong
Tel:+852 2681 4099
Fax:+852 2681 4586

Southern Stars Enterprises Co (Shenzhen Office)
Add:DE, 16/F, Building 2, Nanguo Tower, Sungang Road, Shenzhen, China
Tel:+86 755 2592 9100
Fax:+86 755 2592 7171

E-mail:sstar@netvigator.com
website:www.amberdigital.com.hk
alibaba:amberdigital.en.alibaba.com[b

8 月 20 日

引用通告

此日志的引用通告 URL 是:
http://rinrin9.spaces.live.com/blog/cns!21F4129E393B54B9!145.trak
引用此项的网络日志