[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:23219] AMD-K6 cannot execute Plamo 4.0's static linked glibc-2.3.2-i386-P4.tgz:lib/mv



はじめまして. 西松と申します.

AMDの古いCPUのK6で
$ ROOT=/somewhere installpkg /cdrom/plamo/a/aaa_base.tgz
などとROOTを指定してPlamo 4.0をインストールしていた時に
遭遇した問題2点について報告します.

(1) glibc-2.3.2-i386-P4.tgz の中に静的にリンクされた
lib/mv が入っています. このmvを下記の実行例のように
K6で実行すると,「不正な命令です」と言われてしまいます.
K6などに非対応のlibcがリンクされてしまっているようです.
IntelのCeleronでは動きました.

CD-ROMやFDからブートする普通の初期インストールでない
場合, この mv は install/doinst.sh から次のように
呼び出されることがあります(libcの更新をアトミックに
やりたいため?).
$ head -12 doinst.sh 
if [ -s /linuxrc -a -x /bin/busybox ]; then
  MV=/bin/mv
else
  MV=./mv
fi
( cd lib
  $MV new/* .
  ldconfig
  rmdir new
  rm mv
)
( cd lib ; rm -rf ld-linux.so.2 )


(2) /sbin/installpkg の中のldconfigがROOTを指定した
場合に対応していないようです. このメールの最後につけ
ましたパッチで直ります. まあ, ROOTを指定するインス
トールの場合,最後の最後に /sbin/ldconfig -r $ROOT
とすればよいので, 特に修正する必要はないかもしれません.

重箱のスミをつつくような報告で申し訳ありません.
また, 既知の問題でしたらごめんなさい.
よろしくお願いします.


実行例:
$ cat /proc/cpuinfo 
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 5
model           : 6
model name      : AMD-K6tm w/ multimedia extensions
stepping        : 2
cpu MHz         : 199.433
cache size      : 64 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr mce cx8 mmx
bogomips        : 398.13

$ ROOT=/somewhere installpkg /cdrom/plamo/a/aaa_base.tgz 
aaa_base ([required]) のインストール中
PACKAGE DESCRIPTION:
aaa_base: Linux の基本的なファイルシステムパッケージ
aaa_base: 
aaa_base: 基本的なディレクトリ構造を作成して、root のメールボックス
aaa_base: に Linux 歓迎メールを追加します。:-) このパッケージは、
aaa_base: 一番最初にインストールされ、決してアンインストールしては
aaa_base: いけません。
aaa_base: 
/sbin/ldconfig: Can't create temporary cache file /etc/ld.so.cache~: Permission denied
aaa_base のインストールスクリプトを実行中

$ ROOT=/somewhere installpkg /cdrom/plamo/a/glibc-2.3.2-i386-P4.tgz 
glibc-2.3.2-i386-P4 ([required]) のインストール中
PACKAGE DESCRIPTION:
glibc: GNU C ライブラリ 2.3
glibc: 
glibc: GNU C ライブラリのバージョン 2.3.2 です.
glibc: 
glibc: Glibc2 はマルチプラットフォーム,マルチスレッド,国際化に対応
glibc: した Linux の標準 C ライブラリです.
glibc: 
/sbin/ldconfig: Can't create temporary cache file /etc/ld.so.cache~: Permission denied
glibc-2.3.2-i386-P4 のインストールスクリプトを実行中
sh: line 11:  9680 不正な命令です          $MV new/* .
ldconfig: Can't create temporary cache file /etc/ld.so.cache~: Permission denied
rmdir: `new': ディレクトリは空ではありません

$ 

パッチ:
--- /sbin/installpkg.orig    2004-04-29 10:38:18.000000000 +0900
+++ /sbin/installpkg       2004-07-19 20:26:26.000000000 +0900
@@ -469,7 +469,11 @@
   rm -f $TMP/$packagebase
 
   if [ -x /sbin/ldconfig ]; then
-    /sbin/ldconfig
+    if [ -n "$ROOT" ]; then
+      /sbin/ldconfig -r $ROOT
+    else
+      /sbin/ldconfig
+    fi
   fi
   if [ -f $ROOT/install/doinst.sh ]; then
     if [ "$MODE" = "install" ]; then

-- 
 love && peace && free_software
 西松タケシ

Follow-Ups
[plamo:23229] Re: AMD-K6 cannot execute Plamo 4.0's static linkedglibc-2.3.2-i386-P4.tgz:lib/mv, KOJIMA Mitsuhiro

[検索ページ] [メール一覧]
Plamo ML 公開システム