- PR -

MH-6.8.4-JP-3.05 をインストールする際にmake でこけます。。。

1
投稿者投稿内容
ともこ
会議室デビュー日: 2004/11/28
投稿数: 2
投稿日時: 2004-11-28 03:54
はじめて投稿させて頂きます。
まだ経験浅いuserですので、お手やわらかにお願いします(>人<)

今回はじめてMHのインストールを行なってますが、その際に発生した問題を
どなたか御存知のかたがいらっしゃいましたらご助言頂けるでしょうか。
素人質問でたいへん申し訳ありません。

MHをインストールしてるのですが、"undefined reference to `errno'"
のメッセージが出力されmakeでこけてしまいます。

patchもあてているのですが、errnoのメッセージ出力があまりにも多い様なので
同様の現象などを他の方々も確認されてるのでしょうか。
それとも手順がおかしいでしょうか。

-動作環境-、**手順**、=エラー出力メッセージ=を下記に記述します。

--- 動作環境 ---

OS: RH enterprise ver.AS3
install version : MH-6.8.4-JP-3.05.tgz
patch : mh-6.8.4-JP-3.05-20030114.patch.gz
: mh-6.8.4-JP-3.05-20031023.patch.gz
: mh-6.8.4-JP-3.05-20031106.patch.gz
----------------

** インストール手順 **
1. souce の展開($dir = /usr/local/src)
tar -xzvf $dir/mh-6.8.4-JP-3.05.tar.gz

2. patch をあてる
gzip -dc /usr/local/src/mh-6.8.4-JP-3.05-20030114.patch.gz | patch -p0 -s
gzip -dc /usr/local/src/mh-6.8.4-JP-3.05-20031023.patch.gz | patch -p0 -s
gzip -dc /usr/local/src/mh-6.8.4-JP-3.05-20031106.patch.gz | patch -p0 -s
#こちらもなぜか、-p1では通らなかったです、、

find . -name '*.rej' -print で何もファイルが存在しないことを確認。

3. configを下記のとおり設定
#sh configure - -bindir=/usr/local/bin/mh --enable-rpop
--enable-apop=/etc/pop.auth

4. mhconfの作成と実行
cd conf/ で 移動し、MH を確認して conf/でmake.
makeによってmhconfが作成されてることを確認したら、下記のコマンドで実行
./mhconf MH

5. make
souceを展開したtop dir($dir/mh-6.8.4-JP-3.05)に移動して、はじめにmake clean
#mhconf実行後に出た "Don't forget to run "make clean" in the top directory
before compiling"
メッセージにしたがいました。

make clean 後に make を行なった。
その際に下記のエラーと"make[1]: ターゲット `all' はエラーにより再 make で
きませんでした。"が出力される。。。(x_x;;

**********************

== output error(make でエラーが出た1部のみを記述) ====

/usr/bin/ld: Warning: size of symbol `ospeed' changed from 2 in trmsbr.o to
4 in /usr/lib/gcc-lib/i386-redhat-linux/3.2.3/../../../libcurses.so
vmhsbr.o(.text+0x47e): In function `err2peer':
: `sys_errlist' is deprecated; use `strerror' or `strerror_r' instead
vmhsbr.o(.text+0x42d): In function `err2peer':
: `sys_nerr' is deprecated; use `strerror' or `strerror_r' instead
mshcmds.o(.text+0x1603): In function `forwcmd':
: the use of `mktemp' is dangerous, better use `mkstemp'
vmhsbr.o(.text+0x3f3): In function `err2peer':
: undefined reference to `errno'
pshsbr.o(.text+0x162): In function `pop_init':
: undefined reference to `errno'
../zotnet/libzot.a(mts.o)(.text+0x6a5): In function `dup2':
: undefined reference to `errno'
collect2: ld はステータス 1 で終了しました
make[1]: *** [xmsh] エラー 1

gcc -L../sbr -s -Xlinker -rpath -Xlinker /usr/local/lib -o xpgpshow
pgpshow.o ../config/config.o -lmh ../mts/libmts.a ../zotnet/libzot.a
../config/version.o
../zotnet/libzot.a(mts.o)(.text+0x6a5): In function `dup2':
: undefined reference to `errno'
collect2: ld はステータス 1 で終了しました

gcc -L../sbr -s -Xlinker -rpath -Xlinker /usr/local/lib -o xrefile
refile.o ../config/config.o -lmh
../mts/libmts.a ../zotnet/libzot.a ../config/version.o
../zotnet/libzot.a(mts.o)(.text+0x6a5): In function `dup2':
: undefined reference to `errno'
collect2: ld はステータス 1 で終了しました

gcc -L../sbr -s -Xlinker -rpath -Xlinker /usr/local/lib -o xprompter
prompter.o ../config/config.o -lmh ../mts/libmts.a ../zotnet/libzot.a
../config/version.o
../zotnet/libzot.a(mts.o)(.text+0x6a5): In function `dup2':
: undefined reference to `errno'
collect2: ld はステータス 1 で終了しました

====

エラーメッセージを見る限りでは、souceの方に"errno"の宣言が通ってないこと
から
今、試行錯誤でむりやりsouceにheader file追記を行なってます。
どなたか同様の現象が確認されましたか。
また、その際にどのように解決されましたでしょうか。
他には、手順に問題ありますでしょうか。

以上、よろしくお願いします。
あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2004-11-28 09:48
MH についてはよく分かりませんが、qmail でも同じような問題が発生するようで、こちらは、ヘッダファイルに

#include <errno.h>

を加えて対応可能ですので、MH についてもこれで解決できるかもしれません。

Google で「mh errno」としただけでも結構ヒットするので、まずそちらを参照するのがよいと思います。
ともこ
会議室デビュー日: 2004/11/28
投稿数: 2
投稿日時: 2004-12-04 04:23
解決できました。
ありがとうございます、

また、おそくなりすみません。

教えて頂きましたとおりに、捜してみますとpatchがありましたので、
あてましたところ、きちんとmakeがとおりました。

私は以前にも、MHだけでなく、qmail,IMAP等で同様の問題をかかえた事があります。

LinuxとBSDでは、ヘッダファイルのインクルード方法が違うと考えてよいのでしょうか

引用:

あんとれさんの書き込み (2004-11-28 09:48) より:
MH についてはよく分かりませんが、qmail でも同じような問題が発生するようで、こちらは、ヘッダファイルに

#include <errno.h>

を加えて対応可能ですので、MH についてもこれで解決できるかもしれません。

Google で「mh errno」としただけでも結構ヒットするので、まずそちらを参照するのがよいと思います。


コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-12-04 12:16
>LinuxとBSDでは、ヘッダファイルのインクルード方法が違うと考えてよいのでしょうか

確かに、ソケットで独自の TCP ヘッダ とか IP ヘッダを生成する場合は
#define __FAVOR_BSD

付けたりしてコンパイルしますね。
あきら
会議室デビュー日: 2005/05/06
投稿数: 2
投稿日時: 2005-05-06 16:05
もうかなり古いスレッドなので、どなたも見ていないかもしれませんが、
当方も全く同じ状況で非常に困った事態です。
探して、ここにたどり着きました。
ともこさんと同じくgoogle で探しましたが、それらしきpatchを発見することが
できていません。
#MH errno のキーだけだと 45000hit以上で1000以上は調べたのですが、検索キーも
 変えてみましたが・・・なかなか見つからない

#include <errno.h>
の入れ込みも行ってみましたが、dup2の undefined は消えましたが、ますます状況悪化
しています。もし現時点でのpatchへのポインタをご存じの方いらっしゃいましたら、
是非教えて頂けると幸いです。
しんぺい
会議室デビュー日: 2005/05/10
投稿数: 1
投稿日時: 2005-05-10 09:01
以下のURLのpatchはいかがでしょうか。。。
自分のところでは、一応コンパイルはできました。

http://developer.momonga-linux.org/viewcvs/trunk/pkgs/mh/mh-6.8.4-JP-3.05-errno.patch?rev=3&view=auto
あきら
会議室デビュー日: 2005/05/06
投稿数: 2
投稿日時: 2005-05-11 18:16
しんぺい様ありがとうございました。
教えて頂いたpatchは効きました。
まだ全部のエラーが取れた分けではないのですが、とりあえず、後1つ直せばよい状態にまで改善されました。最初のともこさんの環境は、RH enterprise でしたが、当方は
RH V9 と、他何か関係しているかもしれません。現在少々輻輳しているため、後日結果報告させて頂きます。まずは御礼まで
1

スキルアップ/キャリアアップ(JOB@IT)