メインの使用バージョンは、FreeBSD-6.2-PRERELEASE。
最近、ports/multimedia/mplayer のコンパイルが通りません。
mplayer-0.99.10
この点に関して、改善の見通しはあるでしょうか。
以前のバージョン、mplayer-0.99.8_5 をインストールしてあるので、
そちらを使用しています。
同じエラーは、5-STABLE、4-STABLE でも同じ箇所で出ます。
# 1行が長すぎるため、cc の行だけ改行を付加。
> cc -Wdeclaration-after-statement -fno-PIC -O -pipe -march=pentium2
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-I/usr/local/include/freetype2 -I/usr/local/include -I/usr/X11R6/include
-I/usr/local/include/SDL -I/usr/local/include -D_GNU_SOURCE=1
-D_REENTRANT -D_REENTRANT -I/usr/local/include
-I/usr/local/include/freetype2 -I/usr/local/include
-I/usr/X11R6/include -I/usr/local/live/liveMedia/include
-I/usr/local/live/UsageEnvironment/include
-I/usr/local/live/BasicUsageEnvironment/include
-I/usr/local/live/groupsock/include -DXTHREADS -DXUSE_MTSAFE_API
-I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/include
-I/usr/local/include/atk-1.0 -I/usr/local/include/cairo
-I/usr/local/include/pango-1.0 -I/usr/local/include/glib-2.0
-I/usr/local/lib/glib-2.0/include -I/usr/X11R6/include
-I/usr/local/include/freetype2 -I/usr/local/include -I.
-I./libavutil -I./libavcodec -DHAVE_AV_CONFIG_H
-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE -I.. -I..
-I../libavutil -Wdeclaration-after-statement -fno-PIC -O -pipe
-march=pentium2 -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -I/usr/local/include/freetype2 -I/usr/local/include
-I/usr/X11R6/include -I/usr/local/include/SDL -I/usr/local/include
-D_GNU_SOURCE=1 -D_REENTRANT -D_REENTRANT -I/usr/local/include
-I/usr/local/include/freetype2 -I/usr/local/include -I/usr/X11R6/include
-I/usr/local/live/liveMedia/include
-I/usr/local/live/UsageEnvironment/include
-I/usr/local/live/BasicUsageEnvironment/include
-I/usr/local/live/groupsock/include -DXTHREADS -DXUSE_MTSAFE_API
-I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/include
-I/usr/local/include/atk-1.0 -I/usr/local/include/cairo
-I/usr/local/include/pango-1.0 -I/usr/local/include/glib-2.0
-I/usr/local/lib/glib-2.0/include -I/usr/X11R6/include
-I/usr/local/include/freetype2 -I/usr/local/include -c -o cabac.o cabac.c
> In file included from cabac.c:32:
> cabac.h: In function `get_cabac_noinline':
> cabac.h:513: error: can't find a register in class `GENERAL_REGS' while reloading `asm'
> gmake[1]: *** [cabac.o] Error 1
> gmake[1]: Leaving directory `/x2/tmp/x2/ports/multimedia/mplayer/work/MPlayer-1.0rc1/libavcodec'
> gmake: *** [libavcodec/libavcodec.a] Error 2
> *** Error code 2
>
> Stop in /x2/ports/multimedia/mplayer.
---
李成一 /@ 千葉県 椎柴
In article <em8vmr$ul9$1...@news-est.ocn.ad.jp>, S.<LEE>Kimura <spbz...@utopia.ocn.ne.jp> writes
> > cc -Wdeclaration-after-statement -fno-PIC -O -pipe -march=pentium2
^^^^^^^^^^^
このあたりが問題なんじゃないですか? いったい、どのCPU使って
いるんだろう?
> > cabac.h: In function `get_cabac_noinline':
> > cabac.h:513: error: can't find a register in class `GENERAL_REGS' while reloading `asm'
> > gmake[1]: *** [cabac.o] Error 1
たぶん、もうSSE2でないものでは動かないコードになっているんじ
ゃなかろうか。
---
Shinji KONO @ Information Engineering, University of the Ryukyus
河野真治 @ 琉球大学工学部情報工学科
ko...@ie.u-ryukyu.ac.jp (Shinji KONO) さん wrote:
> > > cc -Wdeclaration-after-statement -fno-PIC -O -pipe -march=pentium2
> ^^^^^^^^^^^
>
> このあたりが問題なんじゃないですか? いったい、どのCPU使って
> いるんだろう?
Celeron 400 MHz です。機械は DELL の OptiPlex GX100 という名称で、
いわゆる Windows NT/98 マシンに当たります。
FreeBSD-6.2-PRERELEASE の dmesg から。
| CPU: Pentium II/Pentium II Xeon/Celeron (398.79-MHz 686-class CPU)
| Origin = "GenuineIntel" Id = 0x665 Stepping = 5
| Features=0x183f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR>
ko...@ie.u-ryukyu.ac.jp (Shinji KONO) さん wrote:
> たぶん、もうSSE2でないものでは動かないコードになっているんじ
> ゃなかろうか。
見られる通り、確かに SSE2 は(愚か SSE も)存在していません。
一般ユーザーですので、ソースを読めず、専門知識も低いのですが、
SSE2 が必要という根拠がなにかあるのでしょうか。
make config の RTCPU を無効にした上で、
ports の Makefile に以下を追加して再度コンパイルしてみました。
WITHOUT_3DNOW=yes
WITHOUT_DSP=yes
WITHOUT_SSE=yes
結果は、以前と同じで、エラー終了します。
わが家には、SSE 付きのマシンが 1 台あり、SSE2 付きはありません。
当分のあいだ、コンパイルが通り、mp3 のストリーミングなら実際に使
用できる旧バージョン (mplayer-0.99.8_5) を使うしか私に選択肢はな
さそうです。
上記旧版の雛型(スケルトン)は、7.0-CURRENT-200611-i386-disc1.iso
などから入手可能です。
---
リ・ソンイル(李成一) /@ 千葉県 椎柴
えーっと、FreeBSD-6.2-PRERELEASE 上の mplayer ですが、
22日の昼に cvsup した版でビルドできました。
オプションは、規定のまま。
| # $FreeBSD: ports/multimedia/mplayer/Makefile,v 1.149 2006/12/22 01:07:53 rafan Exp $
ところが、作業としては、その前に、portupgrade をインスト
ールし、mplayer-0.99.8_5 をビルドしました。
さらに、後で実験してみると、質問した時点の版もデフォール
トでコンパイルできます。エラーは出ません。
| # $FreeBSD: ports/multimedia/mplayer/Makefile,v 1.148 2006/12/11 16:48:43 rafan Exp $
さて、エラー終了していた理由が不明になりました。
A. make config のオプションに不適切な項目があった?
B. 依存する ports に古いものが混じっていた?
のいずれかが考えられますが、私は今 A. を疑っています。
いずれ、他のマシンで、他のバージョンでコンパイルしてみる
予定です。
お騒がせ致しました。
動作確認は、mp3 音声のストリーミングのみです。
先に質問した時点では、以下に示すとおり、大目のオプショ
ンを指定しています。
===> mplayer-0.99.10 depends on file: /usr/local/modules/rtc.ko - found
===> mplayer-0.99.10 depends on executable in : realplay - found
===> mplayer-0.99.10 depends on file: /usr/local/live/liveMedia/libliveMedia.a - found
===> mplayer-0.99.10 depends on file: /usr/local/lib/libdts.a - found
===> mplayer-0.99.10 depends on executable in : xanim - found
===> mplayer-0.99.10 depends on executable in : gmake - found
===> mplayer-0.99.10 depends on file: /usr/local/bin/sdl-config - found
===> mplayer-0.99.10 depends on file: /usr/local/bin/intltool-extract - found
===> mplayer-0.99.10 depends on executable in : pkg-config - found
===> mplayer-0.99.10 depends on shared library: png.5 - found
===> mplayer-0.99.10 depends on shared library: ungif.5 - found
===> mplayer-0.99.10 depends on shared library: mad.2 - found
===> mplayer-0.99.10 depends on shared library: vga.1 - found
===> mplayer-0.99.10 depends on shared library: aa.1 - found
===> mplayer-0.99.10 depends on shared library: theora.2 - found
===> mplayer-0.99.10 depends on shared library: polyp-0.7.0 - found
===> mplayer-0.99.10 depends on shared library: vorbis.3 - found
===> mplayer-0.99.10 depends on shared library: xvidcore.4 - found
===> mplayer-0.99.10 depends on shared library: xmms.4 - found
===> mplayer-0.99.10 depends on shared library: speex.3 - found
===> mplayer-0.99.10 depends on shared library: freetype.9 - found
===> mplayer-0.99.10 depends on shared library: iconv.3 - found
===> mplayer-0.99.10 depends on shared library: SDL.11 - found
===> mplayer-0.99.10 depends on shared library: atk-1.0.0 - found
===> mplayer-0.99.10 depends on shared library: glib-2.0.0 - found
===> mplayer-0.99.10 depends on shared library: gtk-x11-2.0.0 - found
===> mplayer-0.99.10 depends on shared library: pango-1.0.0 - found
===> mplayer-0.99.10 depends on shared library: X11.6 - found
---
李成一 /@ 千葉県
fj.os.bsd.freebsd の <eme8ji$ii5$1...@news-est.ocn.ad.jp> の記事において
2006-12-22(金) 00:18頃、LEEさんは書きました。
> > > > cc -Wdeclaration-after-statement -fno-PIC -O -pipe -march=pentium2
> > ^^^^^^^^^^^
> >
> > このあたりが問題なんじゃないですか? いったい、どのCPU使って
> > いるんだろう?
>
> Celeron 400 MHz です。機械は DELL の OptiPlex GX100 という名称で、
> いわゆる Windows NT/98 マシンに当たります。
Google で検索したところ、今のコードは -fomit-frame-pointer を
つけないとコンパイルできないみたいです。
make config で "Use optimized compiler flags" にチェックを入れ
ればコンパイルできるようです。デフォルトで有効になっているはずで
すが…。
make rmconfig してやり直したほうがよいかもしれません。
--
sarumaru