〜2005年4月下旬〜
どうもg++ 3.3.xのgcovオプションは-sharedと相性が悪い。
% cat main.c #include <stdio.h> #include <dlfcn.h> main() { void *handle = dlopen("./foo.so", RTLD_LAZY|RTLD_GLOBAL); if (!handle) { printf("%s\n", dlerror()); exit(1); } ((void (*)())dlsym(handle, "foo"))(); } % cat foo.cc #include <stdio.h> extern "C" void foo() { printf("foo\n"); } % gcc33 main.c -ldl % g++33 -fprofile-arcs -ftest-coverage -shared -o foo.so foo.cc % ./a.out ./foo.so: undefined symbol: __bb_init_func % g++33 -fprofile-arcs -ftest-coverage -shared -o foo.so foo.cc -lgcc % ./a.out foo
つまりg++ -sharedだと-lgccがリンクされないんだな。 gcc -sharedのときはちゃんとlinkされる。
3.4.xの場合は-sharedの有無にかかわらず-lgcovがリンクされるので問題ない。 g++ 3.3.xのバグと言える。
ごめん。[EVALUATION]系を除けば増えてないような気がする。 しかし この人 は延々と2ヶ月以上もこんなことを続けているわけだけど、 いったい何が楽しいんだろう?
例によって取ってくるのはgcc-coreとgcc-g++だけ。 最初からprogram suffixを指定することにした。
% tar xfv gcc-core-4.0.0.tar.bz2 --bz % tar xfv gcc-g++-4.0.0.tar.bz2 --bz % mkdir gcc-4.0.0/linux; cd gcc-4.0.0/linux % CFLAGS=-Os CXXFLAGS=-Os CC=/usr/bin/gcc ../configure \ --enable-languages=c++ --with-system-zlib \ --enable-sjlj-exceptions --enable-threads \ --disable-version-specific-runtime-libs --disable-nls \ --without-included-gettext --without-catgets \ --program-suffix=-4.0.0 % make CFLAGS=-Os LIBCFLAGS=-Os LIBCXXFLAGS=-Os \ STAGE1_CFLAGS=-Os BOOT_CFLAGS=-Os bootstrap
試しにRuby 1.9をmakeしてみると警告が結構出る。 多くが以下のタイプ。
% cat signedness.c void foo(char *s) { } main() { unsigned char *p = 0; foo(p); } % gcc-3.4.3 -c signedness.c % gcc-4.0.0 -c signedness.c sign.c: In function 'main': sign.c:8: warning: pointer targets in passing argument 1 of 'foo' differ in signedness
のようにちょっと厳しくなってる。
報道ステーションを見てたら今の花粉はほとんどがヒノキだと言ってた。 ということはおいらの場合はスギよりもヒノキのほうなのか?
例のgitは kernel.orgに移行したようだ。 高速だけが売りらしい。 しかし、いまいちremoteとのやりとりというか使い方がわからない。 rsync serverを立てなくても、 RSYNC_FLAGに'-e ssh'を設定すればssh経由でいけそうではあるけど。
git helpの結果:
The GIT scripted toolkit git-pasky-0.6.3 () Usage: git COMMAND [ARG]... Available commands: add FILE... addremote RNAME RSYNC_URL apply < patch on stdin cancel ci, commit [FILE]... < log message on stdin diff [-p] [-r FROM_ID[:TO_ID]] [FILE]... export DESTDIR [TREE_ID] fork BNAME BRANCH_DIR [COMMIT_ID] help init RSYNC_URL log [COMMIT_ID | COMMIT_ID:COMMIT_ID] ls [TREE_ID] lsobj [OBJTYPE] lsremote merge [-c] [-b BASE_ID] FROM_ID patch [COMMIT_ID | COMMIT_ID:COMMIT_ID] pull [RNAME] rm FILE... seek [COMMIT_ID] status tag TNAME [COMMIT_ID] track [RNAME] version Note that these expressions can be used interchangably as "ID"s: empty string (current HEAD) remote name (as registered with git addremote) tag name (as registered with git tag) shortcut hash (shorted unambiguous hash lead) commit object hash (as returned by commit-id) tree object hash (accepted only by some commands)
ぐぐってみたら git: Linux Kernelのためのバージョン管理システム(VCS) を発見。後で読もう。
Last.FMのポップアッププレーヤを表示したままFirefoxを終了するととても困ったことになる。 SessionSaverが前回の終了時の状態にしてしまうから。 プレーヤだけになるとツールバーやらなになら何もないもんだから、 にっちもさっちもどうにもならない。 F1押したらヘルプがでてきて、リリースノートのリンク発見。 やっと脱出できた。
Last.FMもなあ、ポップアッププレーヤだけにしなくてもいいじゃん。
ウッチャンがやってたなんだからわからん番組のほうがまだマシだったような。 いや、そっちもまともに見たことはないんだけど。
どう考えても主人公は市原隼人ではなく神木隆之介だと思う「あいくるしい」に出てくる小栗旬の役名が矢口淳一なのは皮肉だ。 それともわざと?
256MBのUSBフラッシュメモリを買ったはいいが、これってLinuxで使えるんだっけ? 調べてから買えというか、 今時のLinuxならそのくらい問題ないだろうという目論みはあったわけだが、 実際のところ
% mount /media/usbdisk
もしくは
% mount /dev/sda1
で使える。/etc/fstabに勝手に追加されるらしい。やるな、FC3。
mountするのが面倒な場合はmtoolsの設定をする。
% cat ~/.mtoolsrc drive m: file="/dev/sda1"
適当にmドライブとして割り当ててみた。
% sudo mdir m: Volume in drive M has no label Volume Serial Number is 3287-3882 Directory for M:/ DATA <DIR> 2005-04-25 22:27 data 1 file 0 bytes 261 578 752 bytes free
グループdiskに自分自身を追加しておけばsudoの必要もない。
% mcopy -s /boot/vmlinuz-2.6.11-1.14_FC3 m: % mdir m: Volume in drive M has no label Volume Serial Number is 3287-3882 Directory for M:/ DATA <DIR> 2005-04-25 22:27 data VMLINU~1 14_ 1658853 2005-04-26 1:00 vmlinuz-2.6.11-1.14_FC3 2 files 1 658 853 bytes 259 919 872 bytes free % mdel m:vmlinuz-2.6.11-1.14_FC3
おお、zshってmdelでも補完が効くのか。やるな、zsh。
GreasemonkeyのユーザスクリプトをFirefoxの拡張に変換。 この スクリプト のほうが興味深い。
感想。リモコンでかっ。ボタン多すぎ。 追っかけ再生中に録画予約できないとか、なんか変な制約があるのがいやだな。 あとすでに始まった録画予約を中止するには本体の停止ボタンを2回押す必要があることになかなか気づかなかった。 これは変な仕様だ。2回押すならリモコンでできてもいいよねえ。
まあ、それはそれとしてやっぱPCから操作できるのは楽だ。 メールで録画予約するんだったら、専用のアドレスを用意したほうがよさそうだな。
単にhttp://rd-h1/@@@@@@をprefixさせれば、各iEPGサイトで予約ができる。 ということはbookmarkletかgreasemonkeyでリンクを書き換えてしまう手が使えそうだ。 取説通りだとやっぱ遅いしなあ。
チャンネルコード設定が肝。 これはネットdeナビの「本体設定」「チャンネル名設定」で設定する。 よく見るとONTV CHコードと書いてある。 しかしこのページのインタフェースは使いにくいな。
ONTV形式だと
open keyword tv SC0041 0600 0625 0429 イタリア語会話
のように次の行に予約名も入れられるようだ。 RD-Styleの形式でもいけるのかと試してみたらいけた。 よくよく調べてみると、取説を見たら書いてあった。
お知らせ
- 改行して2行目に予約名が入れられます。
ちゃんと読まないとだめだな。機能が多いし。
Webで提供してる各テレビ番組表サイトは野球が延長になったら、それ以降の番組はちゃんとずれるんだろうか。 今日は予定通りに終わったらしくわからなかった。明日確認してみる。
清原が500号を打ったらしいが、今の彼を見るとどうしちゃったんだその頭はとツッコミを入れたくなる。 こわいよ。 ってのはどうでもよくて、野球中継が延長してもWebの番組表は特に更新されることはなくそのままだった。
テレビ王国 のiEPGはExtend: 30というフィールドがあった。 でもRDのほうが対応してなくて、予約してみても番組説明のほうに含まれてしまった。 惜しい。
ネットdeナビの番組情報サイトの登録で
tv.infoseek.co.jp/
としてしまうと、なんか表示が変になる。
tv.infoseek.co.jp/?
のようになにか存在しないとだめみたいだ。 どうもドメインだけだとそうなる感じ。
sudoして設定(受信方法)の137/udpをbindする(Windows9x系)をチェックすると、とりあえずダビングできた。 そのbindのためにsudoが必要になる。
でも、二度目がうまくいかなかったりで、うーむ。 あ、$xml$status.xmlや$netdubbing$dubbinginfo.xmlが必要なのか。 二度目はvrd.exeを別の場所に移動していたんだけど、xmlファイルを移動するのを忘れてた。
展開してみるとconfigre.in.inやMakefile.am.inしかないってあたりがなんかすげーというか、ここからどうするのか忘れちまってるので試せない。 っていうか、configure.in.inってなんだ? まずはKDEの作法を学ばないとだめか。