Solaris10にpostgres9.0.5をインストールしようとしています。
Solarisには現時点での最新パッチが当たっている状態です(詳細はちょっと不明)
以下のオプションでconfigureを行うと、エラーになります。
./configure --prefix=/usr/local/postgres --without-readline --enable-thread-safety
以下エラー
---------------------------------------------------------------
checking thread safety of required library functions... no
configure: error: thread test program failed
This platform is not thread-safe. Check the file 'config.log' or compile
and run src/test/thread/thread_test for the exact reason.
Use --disable-thread-safety to disable thread safety.
---------------------------------------------------------------
config.logの中のエラーの内容
---------------------------------------------------------------
configure:28765: checking thread safety of required library functions
configure:28798: gcc -m64 -o conftest -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wend
if-labels -fno-strict-aliasing -fwrapv -pthreads -pthreads -D_REENTRANT -D_THREAD_SAFE -D_POSIX_PTHREAD_SEMANTICS -D
IN_CONFIGURE conftest.c -lz -lnsl -lsocket -lm -lpthread -lpthread >&5
Undefined first referenced
symbol in file
sched_yield /var/tmp//ccVp73Io.o
collect2: ld returned 1 exit status
ld: fatal: symbol referencing errors. No output written to conftest
configure:28802: $? = 1
configure: program exited with status 1
---------------------------------------------------------------
thread-safetyを無効にすれば正常にインストールできます。
このエラーを回避するにはどうすればよいでしょうか?
あまり参考にはならない情報かもしれませんが、9.0.4/9.1.1でも同様のエラーが出ます。
No.1ベストアンサー
- 回答日時:
> Undefined first referenced
> symbol in file
> sched_yield /var/tmp//ccVp73Io.o
sched_yieldが見つからないと言っています。
それは、Solarisではsched_yieldがlibc.soにもlibpthread.soにも含まれていないからです。
では、それがどこにあるのか? librt.soにあります。
なので、LIBSに-lrtを設定してconfigureしてみては如何でしょうか?
$ LIBS=-lrt ./configure --prefix=/usr/local/postgres --without-readline --enable-thread-safety
ところで、configureで失敗したテストプログラムは以下ですが、
$(srcdir)/src/test/thread/thread_test.c
222行目の問題箇所を見ると、/* if this is a portability problem, remove it */
と書いてあるので、以下の2行を消してconfigureしてもOKかもしれません。
while (thread1_done == 0 || thread2_done == 0)
sched_yield();
あと、余談ですが、psqlを使用することがあるなら、--without-readlineはあまりお勧めしません。
ご回答ありがとうございました。
LIBSに-lrtを設定したら、configureからコンパイル、インストールまでうまくいきました。
今のところ動作も問題なくいっている模様です。
助かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PostgreSQL PostgreSQL14.6のSSL対応について 1 2023/01/05 15:42
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- その他(プログラミング・Web制作) python fbprophetについて 1 2022/09/29 19:44
- その他(プログラミング・Web制作) mariadbでのエラー 1 2022/11/15 12:31
- その他(SNS・コミュニケーションサービス) 自分のpcがハッキングされたようなメールが来たのですがどうすればいいですか? 4 2022/10/02 16:14
- 英語 Once upon a time, cash was king and credit cards, 3 2022/07/15 23:31
- オープンソース Vue+Laravelのデザインテンプレートのサンプルが起動できない 1 2022/05/18 21:52
- サーバー WindowsでApache が起動しない 1 2022/11/29 12:21
- TOEFL・TOEIC・英語検定 英検準1級英作文の添削をお願いします。 ポイントはCurriculumとGlobalizationを 4 2023/05/29 11:33
- Gmail 【お助け!】サーバーからのメール送信でGmailに送信されない問題について 1 2023/06/20 22:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
#1062 - '0' は索引 'PRIMARY' ...
-
「1004:アプリケーション定義...
-
DocuWorksでの印刷
-
UPDATEを使ったSQL文にて
-
VBを使って値が入らない
-
Access2010実行時エラー-21473525
-
ACCESSでエラー時に再起動する方法
-
空白はダメというエラーの表示...
-
「巡回冗長エラー」とは何です...
-
Access2007について
-
SQL文で既定値の記述
-
(素人の質問) SQL Server エ...
-
DB2の SQLSTATE (エラーコード...
-
パイソンのエラー
-
psqlの文字コードエラー
-
アクセスでエラー このフィー...
-
共有フォルダに誰が何にアクセ...
-
拡張子が「cda」のファイルを聞...
-
【Excel】[Expression.Error] ...
-
アクセスクエリ(複数)→マクロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
#1062 - '0' は索引 'PRIMARY' ...
-
空白はダメというエラーの表示...
-
列名に変数を使うことはできな...
-
アクセスでエラー このフィー...
-
オラクル(PL/SQL)のエラー
-
Access2010実行時エラー-21473525
-
AccessVBA 実行時エラー'2766'...
-
「1004:アプリケーション定義...
-
SQLserver2005 nvarchar を flo...
-
SQL文長の制限
-
エラーについて
-
DocuWorksでの印刷
-
PL/SQL ORA-06502エラーに関し...
-
SQL エラー コードの一覧 につ...
-
オラクルでisnumeric?
-
(素人の質問) SQL Server エ...
-
DLLが正しく呼び出せません (ToT)
-
UPDATEを使ったSQL文にて
-
SQLCODE=-420とはどういうエラ...
-
『ORA-00936: 式がありません。...
おすすめ情報