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年05月08日
comparison on ./buildsh tools
2024年05月06日
py-setuptools (python 3.11.9)
make release took 1 hours and 10 min
qemu invocation for 10.99.10
2024年05月05日
Windows 10 version
serial connection
bc bench
2024年05月04日
Trial on 10.99.10
another version (later trial) to succeed
2024年04月29日
dkim
以上、1 日分です。
タイトル一覧
カテゴリ分類
Powered by hns-2.19.9, HyperNikkiSystem Project

Count.cgi (since 2000/02/05)