- PR -

qmailのコンパイルでエラー

1
投稿者投稿内容
ちゃー
会議室デビュー日: 2004/11/18
投稿数: 7
投稿日時: 2004-11-18 11:59
お初に投稿させて頂きます。宜しくお願い致します。
前任者から引き継いだmailサーバーにトラブルが発生し、再構築をしているところなのですが、qmailをmake(make setup)を行うと以下のエラーが発生し、先に進めません。

./compile qmail-local.c
qmail-local.c: 関数 `main' 内:
qmail-local.c:450: 警告: `main' の戻り値の型が `int' ではありません
./compile auto-str.c
auto-str.c: 関数 `main' 内:
auto-str.c:17: 警告: `main' の戻り値の型が `int' ではありません

付加条件としましては、このサーバーは、内部・外部DNSからのMXの飛び先で、このサーバー自身にはDNSの設定はしていません。
qmail-date-localtimeパッチは適用済。
qmailディレクトリ(/var/qmail)は作成済。
ユーザー・グループ登録済。
と言った状況です。

こちらの「qmailによるSMTPサーバー構築」の「qmailのインストール」で書かれているconf-ccとconf-ldをgccに変更しても同様な結果になります。
当方Linuxについては、余り詳しくないので、基本的な問題なのかもしれませんが、宜しくご指導のほど宜しくお願い致します。
kalze
ぬし
会議室デビュー日: 2003/10/23
投稿数: 406
お住まい・勤務地: 東京・東京
投稿日時: 2004-11-18 12:04
引用:

./compile qmail-local.c
qmail-local.c: 関数 `main' 内:
qmail-local.c:450: 警告: `main' の戻り値の型が `int' ではありません
./compile auto-str.c
auto-str.c: 関数 `main' 内:
auto-str.c:17: 警告: `main' の戻り値の型が `int' ではありません



書かれている部分には、警告(warning)だけで、エラーはでていないようですが。
警告だけならば生成されているはずですけど。
_________________
ちゃー
会議室デビュー日: 2004/11/18
投稿数: 7
投稿日時: 2004-11-18 12:16
失礼しました。一番大事な部分を書き忘れました。

./load auto-str substdio.a error.a str.a
substdio.a(substdo.o)(.text+0x43): In function `allwrite':
: undefined reference to `errno'
collect2: ld はステータス 1 で終了しました
make: *** [auto-str] エラー 1

上記メッセージがmake setupの終了間際に出ます。この状態でmake checkを行うと上記と同じメッセージが出てきます。
kazumix
会議室デビュー日: 2004/11/18
投稿数: 4
投稿日時: 2004-11-18 12:27
エラーの発生しているソースに
#include <errno.h>
を追加してみたらどうなります?
藍空
常連さん
会議室デビュー日: 2003/06/24
投稿数: 49
投稿日時: 2004-11-18 13:45
だいぶ前に書いたような気がしますが、glibcのバージョンアップ
により元々のソースのerrorに関する部分の修正が必要です。

patchもありますが、kazumixさんが書かれているように直接変更し
てしまう方が早いかもしれません。
確か、

 extern int errno;

をコメントアウトして、

 #include <errno.h>

をインサートするのが基本的な修正パターンだったと思います。

ちなみに、patch類は以下のURLなどにもあります。
http://djbware.csi.hu/patches/
qmail本家にも説明があったと思います。
ちゃー
会議室デビュー日: 2004/11/18
投稿数: 7
投稿日時: 2004-11-18 17:27
皆さんありがとうございました。
qmail本体の方は直接変更で対応しました。(モグラたたきのように後から後から引っかかるソースが変わりましたが...)
tcpserverは教えて頂いたURLからパッチをダウンロードして無事にコンパイルできました。
ありがとうございました。
1

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