hns - 日記自動生成システム - Version 2.19.9

先月 2004年12月 来月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Namazu for hns による簡易全文検索
詳しくは 詳細指定/ヘルプを参照して下さい
検索式:

2004年12月25日() 旧暦 [n年日記] [更新:"2004/12/25 22:37:39"]

#1 [toolchain] mingw-cross-howto.txt

6/02 の日記 を見て、そこから接続している mingw-cross-howto.txt を見て、作って見る。 MSVCRT と CRTDLL の違いが良く分っていないが msvcrt で行って見る。 材料
  • bin-msvcrt-2000-03-27.zip
  • binutils-2.15
  • gcc-3.3.4

library and includes:

mkdir /usr/local/cross-tools
cd    /usr/local/cross-tools
unzip $HOGE/bin-msvcrt-2000-03-27.zip

binutils:

cd src
tar zxf binutils-2.15.tar.bz2
cd binutils-2.15
mkdir obj
cd obj
../configure --prefix=/usr/local/cross-tools --target=i386-mingw32msvc -v 
make
sudo make install

gcc:

cd src
tar zxf gcc-3.3.4.tar.gz2
cd gcc-3.3.4
mkdir obj
cd obj
../configure --prefix=/usr/local/cross-tools --target=i386-mingw32msvc -v  \
 --enable-languages=c,c++
make
/usr/local/cross-tools/i386-mingw32msvc/bin/ld: cannot find -lmingwex
? mingw-runtime-2.0-2 大昔に似たようなことをしている人がいる ? 今だと mingw-runtime-3.5 ?

#2 [toolchain] 初めからやり直し

#1 にあることをもう一度
stuff for install:
mingw-runtime-3.5.tar.gz
w32api-3.1.tar.gz
binutils-2.15.tar.bz2
gcc-3.4.2.tar.bz2

w32api, mingw-runtime:

cd /usr/local/cross-tools/
sudo mkdir i386-mingw32
cd i386-mingw32
sudo tar zxf /e/u/j/distfiles/mingw-runtime-3.5.tar.gz
sudo tar zxf /e/u/j/distfiles/w32api-3.1.tar.gz

binutils-2.15:

tar zxf /e/u/j/distfiles/binutils-2.15.tar.bz2
mkdir binutils-2.15/obj
cd /export/local-src/binutils-2.15/obj/
make
sudo make install

gcc-3.4.2:

set path = ( $path /usr/local/cross-tools/i386-mingw32/bin )
set path = ( $path /usr/local/cross-tools/bin )

tar zxf /e/u/j/distfiles/gcc-3.4.2.tar.bz2
mkdir gcc-3.4.2/obj
cd gcc-3.4.2/obj
../configure --prefix=/usr/local/cross-tools --target=i386-mingw32 -v --enable-language=c,c++
time gmake
sudo gmake install
/usr/local/cross-tools/i386-mingw32/bin/gcc --version

make install (gcc):

cross compile:

Use this gcc to create cross-assembler on Win/2k, which is for embedded processor.
../bfd/.libs/libbfd.a: could not read symbols: Archive has no index; run ranlib to add one
i386-mingw32-ranlib bfd/.libs/libbfd.a
will fix this problem. I don't know why we need this manual intervention.
file hoge
hoge: MS Windows PE 32-bit Intel 80386 console executable not relocatable

test run on machine without cygwin:

In DOS CMD prompt window, I've got: "This program cannot be run in DOS mode."

test run on machine with cygwin:

Runs OK, in DOS cmd prompt window.

#3 [toolchain] cygwin のない Win/2k 用の実行形式を作る

#2 に書いたように i386-mingw32 のクロス環境を用意した。 確かに gcc でコンパイル出来る。
これでコンパイルしたものを DOS 窓で動かして見る。対象機械は二つ。一つは cygwin 無。一つは cygwin 有。
cygwin 有 DOS 窓  ○
cygwin 窓         ○
cygwin 無 DOS 窓  × (1)
cygwin 無 GUI     × 一瞬 DOS 窓が開くが、すぐ閉じてしまう。
(1) 表示は "This program cannot be run in DOS mode."
しかし i386-mingw32-objdump -d hoge |grep cygwin して見ると、 cygwin への参照はない。 ちなみに、cygwin でコンパイルしたものは cygwin への参照がある。
これは cygwin は関係なくて、mingw が入っている機械と、入っていない機械の違い のような気がする。
ldd とかないのかな。
mingw-runtime-3.5.tar.gz に入っている、次のものを入れればいいのかな。
408964 Sep  5 23:23 bin/mingwm10.dll
だったら cygwin でも同じ ?
PATH 変数に入っていると思われる C:\WINNT\ に置いて見たが、状況は変らず。 (要再動 ?) 再起動しても同じだった。 vector より Hexdump -C して見ると、最初の方にそういう文字がある。
Windows 環境の時には実行されないが、DOS 環境の時には実行されて、その文字 が表示されるらしい。 ○と×の機械で、 set と入力して表示される環境変数を見ると、かなり違いがある。 明日確めて見よう(きょうは寝る)。 関数で言うと、次のどれかかなぁ。っていうよりは、開始番地が違うのかな。
00401000 t __gnu_exception_handler@4
00401100 t ___mingw_CRTStartup
00401220 T _mainCRTStartup
00401240 T _WinMainCRTStartup
00401240 T _WinMainCRTStartup から始めてくれればいい訳だ。



最近の日記
2024年03月10日
停電 (瞬電)
2024年03月03日
the second try on bare-metal
useradd
2024年02月29日
opendkim and senmail
2024年01月24日
chat/iam 0.0.8
2024年01月21日
uselocale vs setlocale (textproc/R-readxl)
以上、1 日分です。
タイトル一覧
カテゴリ分類
Powered by hns-2.19.9, HyperNikkiSystem Project

Count.cgi (since 2000/02/05)