トップ 最新 追記

毎日が反省会

rss
2007|04|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|10|11|12|
2012|01|02|03|06|07|08|09|10|11|12|
2013|02|03|04|

2010-01-06

_ [Debian][SuperH] openjdk sh4サポート

openjdk-6 を sh4 でサポートした。まだUpstreamには入ってないけど。これで、default-jdk-builddep がサポートされるようになって、dbパッケージや GNU R もろもろでopenjdkサポートができるようになる。cacao はどうするべか。


2010-01-07

_ [Debian][SuperH] gcc multi-arch の対応

Debian/sh4 の gcc はまだ multi-archに対応していないので、libffiに依存するパッケージのビルドができませんでした。(multi-arch対応になるとヘッダファイルのサーチパスに/usr/include/ARCH-linux-gnuが追加され、ここにアーキテクチャ固有のヘッダファイルがインストールされるようになる。ちなみに今のところ、libffi だけっぽい)。今までできなかった理由は、sh4 では m4 と m4-nofpu の mutilib にしているので、どこを修正すればよいのかわからなかったので放置していただけだったりします。BTS していたら、 gcc メンテの一人であるaloiretに「アーキテクチャのマッピング情報が足りないじゃね?」コメントをもらったのでパッチを書いてビルドしてみた。んで、結果。
multi-arch対応前:
iwamatsu@$ cpp -v 
Using built-in specs.
Target: sh4-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.2-6+sh4' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --with-multilib-list=m4,m4-nofpu --with-cpu=sh4 --enable-checking=release --build=sh4-linux-gnu --host=sh4-linux-gnu --target=sh4-linux-gnu
Thread model: posix
gcc version 4.4.2 (Debian 4.4.2-6+sh4) 
COLLECT_GCC_OPTIONS='-E' '-v'
 /usr/lib/gcc/sh4-linux-gnu/4.4.2/cc1 -E -quiet -v -
ignoring nonexistent directory "/usr/lib/gcc/sh4-linux-gnu/4.4.2/../../../../sh4-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /usr/lib/gcc/sh4-linux-gnu/4.4.2/include
 /usr/lib/gcc/sh4-linux-gnu/4.4.2/include-fixed
 /usr/include
End of search list.
multi-arch対応後:
iwamatsu@$ cpp -v 
Using built-in specs.
Target: sh4-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.2-8+sh4.1' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --with-multilib-list=m4,m4-nofpu --with-cpu=sh4 --enable-checking=release --build=sh4-linux-gnu --host=sh4-linux-gnu --target=sh4-linux-gnu
Thread model: posix
gcc version 4.4.2 (Debian 4.4.2-8+sh4.1) 
COLLECT_GCC_OPTIONS='-E' '-v'
 /usr/lib/gcc/sh4-linux-gnu/4.4.2/cc1 -E -quiet -v -
ignoring nonexistent directory "/usr/local/include/sh4-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/sh4-linux-gnu/4.4.2/../../../../sh4-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /usr/lib/gcc/sh4-linux-gnu/4.4.2/include
 /usr/lib/gcc/sh4-linux-gnu/4.4.2/include-fixed
 /usr/include/sh4-linux-gnu
 /usr/include
End of search list.
/usr/include/sh4-linux-gnu がサーチパスに入っていることがわかります。 ちなみに -m4-nofpu をつけると
iwamatsu@$ cpp -v -m4-nofpu
Using built-in specs.
Target: sh4-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.2-8+sh4.1' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --with-multilib-list=m4,m4-nofpu --with-cpu=sh4 --enable-checking=release --build=sh4-linux-gnu --host=sh4-linux-gnu --target=sh4-linux-gnu
Thread model: posix
gcc version 4.4.2 (Debian 4.4.2-8+sh4.1) 
COLLECT_GCC_OPTIONS='-E' '-v' '-m4-nofpu'
 /usr/lib/gcc/sh4-linux-gnu/4.4.2/cc1 -E -quiet -v -imultilib m4-nofpu - -m4-nofpu
ignoring nonexistent directory "/usr/local/include/sh4_nofpu-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/sh4-linux-gnu/4.4.2/../../../../sh4-linux-gnu/include"
ignoring nonexistent directory "/usr/include/sh4_nofpu-linux-gnu"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /usr/lib/gcc/sh4-linux-gnu/4.4.2/include
 /usr/lib/gcc/sh4-linux-gnu/4.4.2/include-fixed
 /usr/include
End of search list.
となります。m4-nofpu はカーネルコンパイルのためだけに入れているので、 /usr/include/sh4_nofpu-linux-gnu はいらないのです。
本日のツッコミ(全1件) [ツッコミを入れる]

_ free adult sites [dvf, vgvjg ze ylsxogpq c lrfcw. djoc vcescazt c aj w! zhs ..]


2010-01-10

_ [Debian][SuperH] Debian/SH4 シンクロ率 90%

やっと90% 行ったぜ!自分の書いた適当プログラムの結果によると、あとはghc6とlibgnustep-guiがおおきな壁のようです。前者はブートストラップしないといけないので、ぼちぼちと。後者はFTBFSで止まっています。


2010-01-11

_ ニトリ

久々に二トリに行った。二トリはよいよいよいよい。

新しいシーツを買った。二トリの近くにびっくりドンキーあって、いつか帰れま10をやりたいと思った。


2010-01-12

_ [子供] 予防接種

今日は予防接種の日。うちの子は注射には強いみたい。全然泣かないらしい。しかし鼻水を吸い取られるのは嫌いなようで、いつも暴れて泣く。

鼻がすっきりして気持ちいいのにね。

本日のツッコミ(全2件) [ツッコミを入れる]

_ aya [これから泣くよ!お医者さんか聴診器見ただけで泣くよ〜щ( ̄∀ ̄)ш ヶヶヶ. 後、予防接種受けるならヒブワクチンも..]

_ iwamatsu [ビブワクチン受けたよ。3回。あと1回あるみたい。]


2010-01-13

_ [Debian] ITA bluez, bluez-hcidump and obexd

filippoがOしちゃったので、ITAした。ついでに alioth のアカウントの更新依頼もした。

_ [Debian] ghc6 6.12.1-1

ghc6 6.12.1 が experimental に入った。これで sh4 にもポーティングしやすくなるはず。たぶん。

_ [Debian][SuperH] openjdk

dokoが交渉してくれて、 1.7 ブランチに突っ込んでくれたようだ。


2010-01-14

_ バーガーキング

今年初のバーガーキング。

バーボンワッパーなんてあるのね。


2010-01-15

_ [Debian][SuperH] undefined reference to `__set_fpscr(unsigned long)'

今日のハメ。
テストソースコード:
$ cat f.c
#include 
int main(void)
{
        _FPU_SETCW(0);
        return 0;
}
gcc の場合。これは良いパターン。
$ gcc -o f f.c -Wl,-t
/usr/bin/ld: mode shlelf_linux
/usr/lib/gcc/sh4-linux-gnu/4.4.2/../../../crt1.o
/usr/lib/gcc/sh4-linux-gnu/4.4.2/../../../crti.o
/usr/lib/gcc/sh4-linux-gnu/4.4.2/crtbegin.o
/tmp/ccQQKhOh.o
(/usr/lib/gcc/sh4-linux-gnu/4.4.2/libgcc.a)_set_fpscr.o
libgcc_s.so.1 (/usr/lib/gcc/sh4-linux-gnu/4.4.2/libgcc_s.so.1)
/lib/libc.so.6
(/usr/lib/libc_nonshared.a)elf-init.oS
/lib/ld-linux.so.2
libgcc_s.so.1 (/usr/lib/gcc/sh4-linux-gnu/4.4.2/libgcc_s.so.1)
/usr/lib/gcc/sh4-linux-gnu/4.4.2/crtend.o
/usr/lib/gcc/sh4-linux-gnu/4.4.2/../../../crtn.o
g++ の場合。
g++ -o f f.c -Wl,-t
/usr/bin/ld: mode shlelf_linux
/usr/lib/gcc/sh4-linux-gnu/4.4.2/../../../crt1.o
/usr/lib/gcc/sh4-linux-gnu/4.4.2/../../../crti.o
/usr/lib/gcc/sh4-linux-gnu/4.4.2/crtbegin.o
/tmp/ccZX5ufD.o
-lstdc++ (/usr/lib/gcc/sh4-linux-gnu/4.4.2/libstdc++.so)
-lm (/usr/lib/gcc/sh4-linux-gnu/4.4.2/../../../libm.so)
libgcc_s.so.1 (/usr/lib/gcc/sh4-linux-gnu/4.4.2/libgcc_s.so.1)
/lib/libc.so.6
(/usr/lib/libc_nonshared.a)elf-init.oS
/lib/ld-linux.so.2
libgcc_s.so.1 (/usr/lib/gcc/sh4-linux-gnu/4.4.2/libgcc_s.so.1)
/usr/lib/gcc/sh4-linux-gnu/4.4.2/crtend.o
/usr/lib/gcc/sh4-linux-gnu/4.4.2/../../../crtn.o
/tmp/ccZX5ufD.o: In function `main':
f.c:(.text+0x24): undefined reference to `__set_fpscr(unsigned long)'
/usr/bin/ld: link errors found, deleting executable `f'
collect2: ld returned 1 exit status
g++ の場合はlibgcc.a を見ないで、libgcc_s.so.1を見に行っている。うーむ。
/usr/include/fpu_control.h はこんなん。
[....]
/* Macros for accessing the hardware control word.  */
#define _FPU_GETCW(cw) __asm__ ("sts fpscr,%0" : "=r" (cw))
 
#if defined __GNUC__
extern void __set_fpscr(unsigned long);
#define _FPU_SETCW(cw) __set_fpscr ((cw))
#else
#define _FPU_SETCW(cw) __asm__ ("lds %0,fpscr" : : "r" (cw))
#endif
[....]
んで、悩む。C++ のコードからCの関数を呼んでいることに気がつく。 すぐに気がつけよ。<俺
--- a/sysdeps/sh/sh4/fpu/fpu_control.h  2006-08-17 10:18:26.000000000 +0900
+++ b/sysdeps/sh/sh4/fpu/fpu_control.h  2010-01-15 15:31:04.000000000 +0900
@@ -45,6 +45,14 @@
 #define _FPU_GETCW(cw) __asm__ ("sts fpscr,%0" : "=r" (cw))
 
 #if defined __GNUC__
+/* Allow the use in C++ code.  */
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern void __set_fpscr(unsigned long);
+#ifdef __cplusplus
+}
+#endif  /* C++ */
 #define _FPU_SETCW(cw) __set_fpscr ((cw))
 #else
 #define _FPU_SETCW(cw) __asm__ ("lds %0,fpscr" : : "r" (cw))
こんな感じで。glibcで提供されるヘッダファイル内でextern "C"を使うのはどうかと思ったけど、regex.h でもやっているからいいよね。

2010-01-19

_ UQ WiMax 端末を借りてみる

今週末に行われる Debian BSP のために Try WiMaxサービスを利用してみることにした。

ビックカメラ等の店頭でも申し込みができるとのこと。ちょうど立川に用事があったのでビックカメラ立川店に行って申し込みをした。

後日郵送なのかな?と思ったらそのまま実機を渡された。ちょっとびっくり。あと、使い方とかも聞かれなかった。そういうもんなのかな。今住んでいるところではWiMaxサポートエリアではない(笑のでまだどんなもんなのか試してない。あと、借りている端末はまだLinuxのドライバがないようだ。


2010-01-25

_ [Debian] DELAYED Upload したパッケージを削除する

Debian では NMU などで DELAYED Upload をする場合があるのですが、アップロードしたものを削除したいという場合があります。このような場合には 以下のようなcommandsファイルを作成して、gpg でクリアサインした後に dcut の -U オプションでcommandsファイルを指定してアップロードします。
$ cat hoge.commands
Uploader: Nobuhiro Iwamatsu 
Commands:
  cancel hoge-0.0.0-1_i386.changes
詳細は UploadQueue/READMEに書いてあります。 ちなみにDELAYED Uploadされたパッケージはhttp://ftp-master.debian.org/deferred/にあります。