• 締切済み

BIND-9.6.1-P1でコンパイルエラー

先日、BINDでセキュリティの脆弱性が発見されたため、バージョンアップを行おうと、BIND-9.6.1-P1のsourceをISCからDownloadしてきました。で、展開後に./configure、makeとしたところ、lib/dns/genを作成するところで、Segmentation違反(signal 11)でエラーが発生し、コンパイルが完了できませんでした。 以前、正しくコンパイルされたはずのBIND-9.5.0-P1を改めてコンパイルしてみたところ、こちらも同じ場所でエラーになります。調べてみたところ、コンパイルだけなら問題なく実行されるのですが、ldを使用してリンクする箇所にくると、エラーとなってしまうようです。(gen moduleを以前、コンパイルしたもので置いて強制的に先に進めたところ、次のリンクで同様にエラー・・・) ldが壊れたのかと思い、Hello,C world!をコンパイルしてみたところ、問題なく実行moduleが生成されます。じゃあ、ライブラリが壊れているのかと思い、rpm -qsコマンドで、以下のパッケージを検査しましたが、問題ない(通常)と返って来ます。 rpm -qs binutils-2.15.92.0.2-5vl2 rpm -qs glibc-2.3.4-2vl3 環境はVineLinux4.2、カーネル版数は2.6.16-0vl68を使用しています。これ以上、調べる対象が思いつかず、なにかヒントだけでも頂けないでしょうか。(ちなみに、BINDの脆弱性は、仕方なく対処版のrpmを持ってきてインストール。問題なく動作しています)

みんなの回答

  • dora0822
  • ベストアンサー率66% (2/3)
回答No.1

こんばんは。 セグメンテーション違反とのことですから、なんらかのライブラリを利用する際に落ちているような感じですね。 気になるのは、OpenSSLのモジュールです。 私は、CentOSやRHELで環境を作る際には、OpenSSLをソースからコンパイルしてインストール後、bindをconfigureをする際に、「--with-openssl=/usr/local/ssl」というのを入れています。(OpenSSLを/usr/local/sslに入れている場合) これで、試してみるとどうなりますでしょうか?

wild-rain
質問者

お礼

色々と試していたのですが、どれもいまひとつうまくいかず、straceでリンクプロセスを追っていたところ、なんだか/tmpにファイルを書き出そうとするところで失敗して、落ちていることが分かりました。 で、また調べたのですが結局原因は分からず、メモリ周りでおかしくなっているのかと思い、OSごと再起動してみたところ、なぜかうまくいってしまいました。ちょっと腑に落ちませんが、とりあえず問題は解決と言うことで。 アドバイス、ありがとうございました。

関連するQ&A

  • bindのアップデートについて

    お世話になります。 初心者で、自分なりに調べてみたのですが分からず困っております。 何か大事な過程が抜けている気がするのですが… あまりに初歩的な質問かと思いますが、ご教示頂ければ幸いです。 ------------------------------------------------------------ 【目的】 DNS脆弱性対策パッチを当てるため、 以下環境でbindのアップデートを行いたい。 【環境】 利用OS:CentOS4.6 現在のbind ver:9.2.4 当てたいbind ver:9.5.0 【実行した手順】 (1)wget http://ftp.isc.org/isc/bind9/9.5.0-P2/bind-9.5.0-P2.tar.gz (2)tar zxf bind-9.5.0-P2.tar.gz (3)cd bind-9.5.0-P2 (4)./configure (5)make (6)make instal (7)/etc/rc.d/init.d/named restart 【補足】 ・友人にちらっと相談したところ、bind上書きされてないんじゃない?と言われましたが、その手順はわかりませんでした。 ・一点気になるのは、(4)./configure終了後、最後の行あたりにwarningに囲まれた文字列があったことです。configureが正常終了しなかったのでしょうか? ・その他エラーなどは出ておりません。 ------------------------------------------------------------ あからさまな素人質問かとは思いますが、どうかよろしくお願いいたします。

  • エラーでg95のコンパイルが出来ません.

    仮想PC上にUbuntu(Ubuntu 14.04)をインストールして,fortran(g95)を使用したいのですが以下のようなエラーが出てしまいコンパイルできません. ld: crt1.o が見つかりません: そのようなファイルやディレクトリはありません ld: crti.o が見つかりません: そのようなファイルやディレクトリはありません libc6-devは最新版をインストールしてあります. crt1.o・crti.oにシンボリックリンクを張ればよいのかと思い,Ubuntu内を探したのですが見つけることが出来ませんでした. インストールしたバージョンは Ubuntu 14.04 の64bit版 g95-x86_64-64-linux です. どなたかわかる方がいらっしゃいましたらよろしくお願いいたします.

  • eclipseのコンパイルエラーについて

    現在、Eclipse+borlandでdirectxのプログラムを作成しています。 しかし、eclipseでコンパイルをするとコンソールに ”プログラムが大きすぎてメモリに入りません”とエラーが 表示されます。 borlandでコンパイルをすると問題なく実行ファイルが生成されます。 eclipseでコンパイルする場合は、設定が必要なのでしょうか?

  • エクセルマクロのCallとコンパイルエラー

    エクセルマクロのCallとコンパイルエラー よく、教えていただくのですが作ったマクロを呼び出すのに、 ・Call 作成したマクロ とか教えてもらいますが 標準モジュールのツリーには ・Module1 ・Module2 ・オートオープン ・リセット とかがあって ・Call リセット とかにして実行すると ・コンパイルエラー (モジュールではなく、変数またはプロシージャを指定してください) となってしまいます。 Callの後にはどういう風にすればいいのでしょうか? -------------- Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$5" And Len(Range("B5").Value) > 1 Then Call 印刷←印刷はModule2です。 End If End Sub ------------- で印刷のマクロの一部に Call リセット をつけたたしたらなりました。 よろしくお願いします。

  • Linux 6.2 でパッケージインストール RPM コマンドを使用した時にエラーがでる

    OS Linux6.2 で rpm コマンドを使用した時にエラーになる # rpm -Uvh bind-8.2.2_P7-1.i386.rpm をすると以下のエラーが出る メジャー番号<=3のパッケージのみこのバージョンのRPMはサポートされています エラー:bind-8.2.2_P7-1.i386.rpm cannot be installed 以上のメッセージが出てパッケージをインストールできないので 教えてください

  • word 2010でコンパイルエラー

     word 2010でコンパイルエラーが発生します。ヘルプには次のメッセージが出ます。対処方法教えてください。 非表示モジュール <モジュール名> 内でコンパイルエラーが発生しました。 アプリケーション情報 保護されているモジュールにコンパイル エラーがあります。このエラーは、保護されているモジュール内にあるため、表示できません。 このエラーは一般に、実行中のアプリケーションのバージョンまたはアーキテクチャにコードが対応していない場合に発生します (32 ビット版の Microsoft Office アプリケーションを対象としているドキュメント内のコードを 64 ビット版の Office で実行しようとした場合など)。 このエラーの原因と解決方法は次のとおりです。 エラーの原因: このエラーは、VBA コード中の保護されている (非表示) モジュール内にコンパイル エラーがある場合に発生します。該当モジュールが保護されているため、問題となっているコンパイル エラー自体は明示されません。 解決策: ドキュメントまたはプロジェクト内の VBA コードにアクセスできる場合は、該当するモジュールの保護を解除してコードを再実行し、問題となっているエラーを確認します。 ドキュメント内の VBA コードにアクセスできない場合は、ドキュメントの作成者に問い合わせ、非表示モジュール内のコードを更新するように依頼してください。

  • LINUXでコンパイルができません

    RedHat6.2と7.0をつかっているのですが、tar.gz形式のソフトをダウンロードして、解凍するところまでは出来るのですが、makeコマンドを使ってコンパイルしようとすると、始めは、makeなんてない!って言われてこりゃいかんと思い、インストールディスクに入ってたmakeのRPMパッケージをインストールしてやってみたところ、今度はgccがないぞ!と言われて、「へ?それもいるの?」という感じで、パッケージを探したところ、入ってなくて仕方なくネット上を捜し歩いたら、rpmパッケージを発見したので、それをインストールしたのですが、それで実行すると、最後の最後で、エラーが出て、結局コンパイルできませんでした。これではなんにもソフトがインストールできません。どなたかアドバイスをお願いします。因みに今は、自宅ではないのでエラーメッセージがわかりません。帰ってからコメントしておきます。

  • CのDLLをVC++でコンパイルしたいのですが、エラーになってしまいます。

    c言語の初心者なのですが、質問させて下さい。 javaからCのDLLを呼び出したく、 (下記のソースを書いたのですが、VC++でコンパイルすると LIBCD.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です Debug/HelloWorld.exe : fatal error LNK1120: 外部参照 1 が未解決です。 と出てしまいます。 過去ログ等を見て、作成しているプロジェクトが悪いのかなと思い、 MFC appWizark(dll) win32 Application win32 Console Application win32 Dynamic-Link Library 等を作ってみてコンパイルしてみたのですが、駄目でした。 ちなみにDOSプロンプトで cl -IC:\j2sdk1.4.2_10\include\win32 -LD HelloWorl d.c -o HelloWorld.dll と実行するときちんとコンパイルできて、正常に実行も出来ました。 VC++でどうやればコンパイルできるのでしょうか? #include "HelloWorld.h" JNIEXPORT void JNICALL Java_HelloWorld_printMessage (JNIEnv *env, jobject me) { printf("Helo World!!!\n"); return; }

  • Xcodeでのcのコンパイルエラーについて。

    Xcodeでc言語のコンパイル #include <stdio.h> int main(void) { printf("%d", 15 + 37); return(0); } をコンパイルすると ld: 2 duplicate symbols for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) となります。 いろいろ検索してみたのですが、こんな簡単なプログラムのエラーはのっていませんでした。 なにが問題なのでしょうか。 あと use -v ってのもどうやって使うのでしょうか。 よろしくおねがいします。

  • コンパイル時のエラー

    UNIXでサーバー、クライアントのCプログラミングをテキストどおりに書いてコンパイルしたのですが、以下のエラーが出ます。gcc, ccでコンパイルすると以下のようになるのですが、これはどういうことなのでしょうか?何が原因なのでしょうか?よろしくお願いいたします。 gcc unix_server.c /var/tmp/ccvpay1f1.o: In function `main': /var/tmp/ccvpay1f1.o(.text+0x8c): undefined reference to `socket' /var/tmp/ccvpay1f1.o(.text+0x104): undefined reference to `unllnk' /var/tmp/ccvpay1f1.o(.text+0x118): undefined reference to `bind' /var/tmp/ccvpay1f1.o(.text+0x150): undefined reference to `listen' /var/tmp/ccvpay1f1.o(.text+0x1a8): undefined reference to `accept' cc unix_server.c ld: /usr/lib/cmplrs/cc/crtn.o: Error: Unresolved: rindex socket bzero bcopy unllnk bind listen accept