From: IWAMURO Motonori Date: 2002-01-25T15:31:00+09:00 Subject: [ruby-list:33517] [BUG] Can't compile ruby on Solaris2.6 --Multipart_Fri_Jan_25_15:31:32_2002-1 Content-Type: text/plain; charset=ISO-2022-JP 岩室です。 久々にCVSから持ってきたrubyをコンパイルしてみたところ、以下の環境下で、 添付のエラーが発生してコンパイルが失敗しました。 Solaris2.6(Sparc) + gcc-2.95.3 configureオプション: --enable-shared 調べてみたところ、ruby-1.6.5ではコンパイル可、1.6.6では不可という結果 になっており、その差は --- configure.in-1.6.5 Fri Jan 25 15:12:39 2002 +++ configure.in-1.6.6 Fri Jan 25 15:13:04 2002 <略> @@ -528,7 +523,7 @@ LDFLAGS="-Wl,-E" rb_cv_dlopen=yes;; solaris*) if test "$GCC" = yes; then - LDSHARED='$(CC) -Wl,-G' + LDSHARED='$(CC) -Wl,-G -shared' `$CC --print-prog-name=ld` -v 2>&1 | grep "GNU ld" > /dev/null && LDFLAGS="-Wl,-E" else LDSHARED='ld -G' という部分にあるようです。試しにMakefileのLDSHAREDから-sharedを削除し てみるとコンパイルが通りました。(が、ext配下のコンパイルでまたコケてい るので他のところも調べる必要があるようです) -sharedが追加された経緯はよくわからないのですが、どう修正すべきなので しょう? -- 岩室元典 [E-Mail: vmi@kw.netlaputa.ne.jp / iwa@mmp.fujitsu.co.jp] 「しあわせでしたーーーーーーーーーーーーーーーーーーーーーーーーっ!!」 (「イリヤの空、UFOの夏 その2」秋山瑞人/電撃文庫) --Multipart_Fri_Jan_25_15:31:32_2002-1 Content-Type: text/plain; charset=ISO-2022-JP gcc -Wl,-G -shared array.o bignum.o class.o compar.o dir.o dln.o enum.o error.o eval.o file.o gc.o hash.o inits.o io.o marshal.o math.o numeric.o object.o pack.o parse.o process.o prec.o random.o range.o re.o regex.o ruby.o signal.o sprintf.o st.o string.o struct.o time.o util.o variable.o version.o flock.o isinf.o dmyext.o -ldl -lcrypt -lm -o libruby.so.1.6.6 Text relocation remains referenced against symbol offset in file _des_setkey 0x4 /usr/lib/libcrypt.a(crypt.o) _des_encrypt 0x10 /usr/lib/libcrypt.a(crypt.o) 0x4 /usr/lib/libcrypt.a(des_crypt.o) <中略> 0x1c /usr/lib/libcrypt.a(des_crypt.o) ___errno 0x1e4 /usr/lib/libcrypt.a(des_crypt.o) _thr_getspecific 0x2a8 /usr/lib/libcrypt.a(des_crypt.o) _thr_keycreate 0x2c4 /usr/lib/libcrypt.a(des_crypt.o) _thr_setspecific 0x2fc /usr/lib/libcrypt.a(des_crypt.o) _mutex_unlock 0x538 /usr/lib/libcrypt.a(des_crypt.o) _mutex_unlock 0x294 /usr/lib/libcrypt.a(des_crypt.o) _mutex_unlock 0x1cc /usr/lib/libcrypt.a(des_crypt.o) free 0x320 /usr/lib/libcrypt.a(des_crypt.o) free 0x2c0 /usr/lib/libcrypt.a(des_crypt.o) free 0x2bc /usr/lib/libcrypt.a(des_crypt.o) _des_encrypt1 0x264 /usr/lib/libcrypt.a(des_crypt.o) _mutex_lock 0x280 /usr/lib/libcrypt.a(des_crypt.o) _mutex_lock 0x35c /usr/lib/libcrypt.a(des_crypt.o) _mutex_lock 0x1bc /usr/lib/libcrypt.a(des_crypt.o) _des_crypt 0x1c /usr/lib/libcrypt.a(crypt.o) malloc 0x2ec /usr/lib/libcrypt.a(des_crypt.o) ld: fatal: relocations remain against allocatable but non-writable sections collect2: ld returned 1 exit status make: *** [libruby.so.1.6.6] Error 1 --Multipart_Fri_Jan_25_15:31:32_2002-1--