コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2006年12月30日 >>> 2006年12月17日
link もっと後

2006年12月30日

同窓会

高校時代のクラスメートが一同に集まる同窓会がありました。
30人近く集まったのが驚愕だったのに、二次会に一次会の参加者がほぼ全員来るという奇跡。幹事のT氏とT氏の力ですね。

同窓会では、卒業以来会ってない懐かしい面々がたくさん。

三次会の途中で終電が行っちゃったので、そのあとは友達の家になだれ込んで朝まで話し込みました。
話しているうちに高校時代の記憶が結構よみがえりました。

高校時代

あんなに楽しかったのに全然覚えてなくてショックでしたが、良く考えたらもう6年も前なんですね。詳細に覚えてないのも当然のことです。

まじめに通ってたつもりだったんですけど、話しているうちに色々思い出しました。学生って先生をかなりなめてた気がします。
つまらん授業で寝るためのクッション買って持ってくるとか、廊下でテニス(体育館あるのに)とか先生からしたら相当むかつくだろうなあ。

さすがに不良校じゃないし、僕らも馬鹿じゃなかったので、法に触れるような愚かなこと(窓割ったり(器物破損)車壊したり)はなかったけどね…。

編集者:すずき(2006/12/31 17:28)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2006年12月29日

映画大奥

家族で映画「大奥」を見に行きました。
妹曰く、ドラマは、世継ぎ争いに端を発した女同士のどろどろした争いが面白かったとのことです。

しかし映画は妙に色恋沙汰を強調しすぎて、全然面白くなかったです。せっかくの超豪華キャストが…泣いてますよ。

ドラマ大奥

ドラマ(今日放送していたスペシャルのこと)の方も見たのですが、何これ、びっくりするほど面白くねえ。最後のほうなんか完全に映画の番宣への繋ぎじゃん。
よっぽどのものでない限り駄作なんて思わないのですが、これは駄作だ!

映画、ドラマ(映画の番宣)の順で見てしまったのも大失敗でした。ただでさえつまらないのにもう最悪です。

編集者:すずき(2006/12/30 03:15)

コメント一覧

  • おおしたさん(2006/12/30 16:16)
    大奥の面白さは江戸城(内部調度品)のセットと
    女の人の衣装だと思っています。
    といっても大奥ちょびっとしか見たこと無いですけど。
  • すずきさん(2006/12/31 17:10)
    映画とこの日のスペシャルドラマを見る限り、そのとおりだと思います。
    映画では、女優一人一人にスタイリストが付くくらい、頻繁に変わります。
open/close この記事にコメントする



2006年12月28日

買い物

コートと、こっちで着る服と、靴を買いました。

ついにダッフルとお別れです。

編集者:すずき(2006/12/29 01:09)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2006年12月27日

帰省

北海道に帰省しました。16:00の便(13:40のTXに乗らないと厳しい)なのに、起きたのは13:00でした。しかもご飯が保温にしっぱなし、台所には洗い物が残ってる。

さすがに2週間放置したら絶対カビ生えて液化する!って思ったので、超スピードで洗ってダッシュで出かけました。
で、アパートの駐輪場に下りたら、ぬおぉぉおお、自転車がねえー!

…って、昨日いけじに送ってもらったので自転車は研究棟だった。仕方ないから平砂のバス停まで歩きました。
飛行機には間に合いました。

とにかくバタバタしすぎな一日でした。

in北海道

なぜか深夜アニメで武装練金やってるよ。ムーンフェイスなつかしー!

編集者:すずき(2006/12/28 01:42)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2006年12月26日

大雨

雨強すぎる。なんで今日だけ?出かける気が失せるよ。

ゼミ

研究室では冬休みとかそんなのは関係ありません。今日は今年最後のゼミがありました。
雨さえ、この雨さえなければ清々しく参加できるのにねえ。

眠い

いけじ達と小の村にご飯食べに行きました。
途中で眠くなって寝てしまった。すんません。やっぱ徹夜は良くないね。

編集者:すずき(2006/12/28 01:19)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2006年12月25日

おもろい

ちょっと誰でも良いからガンダム撮ってYO!!!!

久々に爆笑した。

ブラウザかエージェントか

カウンタの集計機能で、ブラウザなどが渡してくるUser-Agentの値を「ブラウザ」って呼んだり「エージェント」って呼んだり、表記が適当なまま放置しておりました。

何を今更って感じですが、今日hdk氏にツッコまれて思い出したので、直しときました。
修正の内容ですが、サイトを見に来るのはブラウザばかりではないなと思ったので、エージェントって方に統一しておきました。

編集者:すずき(2006/12/26 00:09)

コメント一覧

  • みっきぃさん(2006/12/26 05:26)
    おもしろいよね〜。
    ねずみさんの研究室内で爆笑さ!
    >ガンダム撮って
open/close この記事にコメントする



2006年12月24日

クリスマス

大下さんからマフラーと手袋をいただきました。
手袋はちょうど買おうと思っていたところだったので非常にありがたいです。

あとはコートだな。

編集者:すずき(2006/12/25 15:49)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2006年12月23日

ジョーと愉快な(略

日付的には昨日ですが、時間的には今日なのでこっちに書きます。

再就職の決まった(?)じょーを迎えて北脇邸で飲み会をしました。
ストーブが壊れているとかで寒い寒い。つくばの夜ってなんでこんな冷えるんですかね。家の中が寒いのはうちも同じですけどね…。

じょーからドイツワインのうんちくが聞けてためになった。じょーいわく、フランスは産地しか書いて無くて素人には理解不能ですが、ドイツワインはラベルに情報が書いてあって、分類も割とすっきりしているからわかりやすいみたいです。

もうすぐクリスマス

加藤先生のお宅での歓迎会、兼クリスマスパーティに参加しました。
毎年そうなんだけど、料理うめー!!種類が豊富すぎて全部食えんかったのが残念です。

福島からはるばる小磯氏も来てくれてすげーと思った。

解散後、加藤先生のお宅の前で縄跳びしたんですが、先生の娘さんが超うまかった。それだけでなく加藤先生も二重跳びを軽くこなしていました。縄跳び得意なんでしょうかね?

二次会

Cybex STEPで卓球しました。2時間くらいやったら足が痛くなってきたので、カラオケ組と合流して、4時間遊びきりました。

11人という大人数で押しかけて、カード作るとか作らないとか、お買い得なパック料金を使う使わない、をごちゃごちゃに混ぜて注文したのがまず間違いの始まりでした。

遊ぶ物を変更するときは伝票をカウンターに持って行くんですが、誰か言いに行かなかったみたいで、伝票が余ってしまいました。そのせいで店の人がかなり混乱していました。

20分くらいすったもんだしたあげく、我々に「パックのお客様は何人でしたか?」とか聞いたりと、かなり混乱していたようです。最後はめんどくさくなったのか、会計金額だけ合ってる内容めちゃくちゃな伝票を切って解決(?)していました。いい加減な人だなw

編集者:すずき(2006/12/24 05:17)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2006年12月22日

まねきTV

東京のTV番組をネット経由で視聴できるサービスまねきTVが勝訴したそうです。

おわ、いつのまにネット配信OKになった??って一瞬びっくりしたんですが、違いました。まぎらわしい書き方すると誤解を招きますよ朝日新聞さん。

要は「自分で買った」ソニーのロケーションフリーテレビの片割れ(ベースステーションの方)を、まねきTVのビルに置くだけです。東京に借りた部屋にロケーションフリーのベースステーション置いて、実家からアクセスするのとなんら変わりません。

マスゴミ各社は、ネット配信によって今まで築いてきた電波の牙城が崩れる、と恐れるあまり、反応過剰になってるんでしょうか。

気になるのは

それよりこの投げやりなサービス、別の点の方が気になります。
NHKの料金はどうなるの?って話です。規約には会社では払わねーから、お前ら勝手に払え、って書いてあります。

NHKって会社と世帯間で契約するものだった気がするんですが、規約にある書き方だと、家族がばらばらに住んでいる場合は、地元NHKと契約するときと同じように、各世帯で払うのかな?その辺工夫できたらもっと良さそうなのになあ。

編集者:すずき(2006/12/22 22:24)

コメント一覧

  • @ふふっ。さん(2006/12/24 00:53)
    NHKの受信料は、支払いの口座が同一であれば、別居の家族の受信料が割引になる制度があります。
  • すずきさん(2006/12/24 04:32)
    なんとそんな制度が…知らないで6年間払っちゃったよ。
open/close この記事にコメントする



2006年12月21日

早起きは

偶然早起きしたので、たまには早目に研究室に行くか、って思って行ったら、ちょうどゼミの時間だったらしい。知らなかった。これが三文の得という奴か。

ブラウザアップデート

ブラウザをSeaMonkey 1.1bにアップデートしました。サムネイル機能が良い感じです。


タブをポイントするとサムネイルが出る

あと個人的にはブックマークメニューで右クリックすると、編集メニューが出るようになったのが、かなりGood です。


右クリックで編集できる

Visual Studioアップデート

Visual Studio 2005 SP1が出ていたので適用しました。なんと441MBもあるんですね。ほとんど入れ替えてるんじゃないか?ってくらいの容量です。
ノートPCにインストールしたら、HDDが遅すぎなせいか2時間もかかりました。

一番腹立ったのは「残り時間0秒」って出てから、10分以上待たされたことですね…。嘘もいいところだ。

編集者:すずき(2006/12/21 22:04)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2006年12月20日

らいてふ

Thunderbird様にバージョンアップしたから入れ替えろや、ゴルァ!って脅され、言われるがままに入れ替えたら起動しなくなりました。

A previous install did not complete correctly. Finishing install.

何度起動しても、これが出るばかり。
そこで私の取った手順は、まず設定ファイルをバックアップして、Thunderbirdのバイナリがあるディレクトリを葬ってから再インストールしました。起動を確認したら、一旦終了させて、バックアップから設定を書き戻してやります。これで元通りです。

で、結局この現象はなんだったのか調べたら、mozdev.orgのFAQ に書いてありました。それによればThunderbirdのインストールディレクトリにあるxpicleanup.datを消せばいいらしいです。

FAQは親切で結構ですが、エラーメッセージは典型的な意味不明のダメメッセージですね。まあ、人のこと言えませんけどね。

また修正

コメントで \ を打つと出力される文がおかしくなっていたので、直しました。

編集者:すずき(2006/12/20 21:16)

コメント一覧

  • すずきさん(2006/12/20 21:17)
    コメント修正されたかな?
    \n\r
    テストです。
open/close この記事にコメントする



2006年12月19日

Linux kernel 2.4 for ARMがクロスコンパイルできない

目次: Linux

クロスコンパイルが楽そうなLinux kernelですが、2.4.33.5がコンパイルできない。

$ make bzImage
(...snip...)
make[1]: Entering directory `/home/katsuhiro/share/tmp/cross/build/linux-2.4.33.5/drivers'
make -C block
make[2]: Entering directory `/home/katsuhiro/share/tmp/cross/build/linux-2.4.33.5/drivers/block'
make all_targets
make[3]: Entering directory `/home/katsuhiro/share/tmp/cross/build/linux-2.4.33.5/drivers/block'

arm-linux-gcc-3.4.4 -D__KERNEL__ -I/home/katsuhiro/share/tmp/cross/build/linux-2.4.33.5/include \
-Wall -Wstrict-prototypes -Wno-trigraphs -Os -fno-strict-aliasing \
-fno-common -Uarm -fno-common -pipe -mapcs-32 -D__LINUX_ARM_ARCH__=4 \
-march=armv4 -mtune=arm9tdmi -malignment-traps -msoft-float -Uarm \
-nostdinc -iwithprefix include -DKBUILD_BASENAME=blkpg  -c -o blkpg.o blkpg.c

blkpg.c: In function `blk_ioctl':
blkpg.c:252: error: asm-specifier for variable `__r1' conflicts with asm clobber list
blkpg.c:252: 前のエラーにより混乱していますので、脱出します
(...snip...)

put_userと、u64の組み合わせがまずいのか、put_userを使っている各所でこのエラーが出ます。


if (cmd == BLKGETSIZE)
  return put_user((unsigned long)ullval, (unsigned long *)arg);
else
  return put_user(ullval << 9, (u64 *)arg);

gcc-3.3.5がダメなのかと思って、gcc-3.4.4でコンパイルしてみた(3.4では-mshort-load-bytesを -malignment-trapsに変えないと別のエラーになる)ものの、やはり同じ。いっそ立ち戻って2.95とか、新しい4系でやるべきでしょうか。

つーか、ARM用のカーネルって世の中にいっぱいあると思うんだが、誰がどうやってコンパイルしてるんだよ?

原因?

ちなみにgccに文句を言われるput_userは以下のようなマクロです。行末の継続記号は省いています。
こんなに長いのにマクロなのはinline展開に比べて何か良いことがあるからでしょう。たぶん。


#define put_user(x,p) (
{
 const register typeof(*(p)) __r1 asm("r1") = (x);
 const register typeof(*(p)) *__p asm("r0") = (p);
 register int __e asm("r0");
 
 switch (sizeof(*(p))) {
 case 1:
  __put_user_x(__r1, __p, __e, 1, "r2", "lr");
  break;
 case 2:
  __put_user_x(__r1, __p, __e, 2, "r2", "lr");
  break;
 case 4:
  __put_user_x(__r1, __p, __e, 4, "r2", "lr");
  break;
 case 8:
  __put_user_x(__r1, __p, __e, 8, "ip", "lr");
  break;
 default:
  __e = __put_user_bad();
  break;
 }
 __e;
})

#define __put_user_x(__r1,__p,__e,__s,__i...) 
 __asm__ __volatile__ (
    "bl __put_user_" #__s 
    : "=&r" (__e) 
    : "0" (__p), "r" (__r1) 
    : __i
 )

put_userが呼んでいる __put_user_xの前半を見ると、サイズ(1, 2, 4, 8)に応じて __put_user_1とか __put_user_2などを呼ぶ(blはブランチ命令)関数みたいです。
gccのインラインアセンブラが理解できないので、後半がイマイチわからないんですが…。誰か読めませんか?これ。

どうでもいいけど、これ見ていたら、gccってマクロの引数を可変にできることに気づきました。
gcc専用のコードになってしまうのが難点だけど、メチャクチャ便利だな。

駄目な日

ドコモとのミーティングをなぜか明日だと思っていてすっぽかしてしまった。やってしまった。

さらに今日、停電になるのを忘れていて、リモートからの作業中にマシンが落ちた。
研究室に行って、電源投入してきた。

昨日、今日と研究室に行ったせいか、のどが痛い。研究室は暖かくて良いんですけど、猛烈にのどと目が痛くなる。
hdk氏にそれは登校拒否だって言われた。否定できないよ、うわぁぁヽ(`Д´)ノぁぁーん!

編集者:すずき(2023/04/29 21:52)

コメント一覧

  • ち。さん(2006/12/20 20:02)
    1: __asm__ __volatile__ (
    2: "bl __put_user_" #__S
    3: : "=&r" (__e)
    4: : "0" (__p), "r" (__r1)
    5: : __i
    6: )

    で説明すると
    1:は__volatile__なので最適化不可のインラインアセンブラ定義
    2:は""でくくられた部分はそのまま埋め込まれて、#以降はコメントです。

    3:以降はちょっとややこしいのですが、アセンブラ埋め込みの前後の処理を書いています。
    いわゆる拡張インラインアセンブラの部分です。それぞれの処理がコロンで区切られていて
    3:が出力レジスタ
    4:が入力レジスタ
    5:が使用するレジスタが指定されています。

    3:は`=`がWrite-onlyで書き込まれるレジスタ、`&`がearlyclobber operandとなっていて
    インラインアセンブラ内で読んで書き込まれた後に再び読まれるレジスタをあらわします(たぶん)。
    `r`は汎用レジスタであることを示しています。カッコ内は変数を指定しています。
    これらの指定によって、埋め込むアセンブラの後にレジスタの値を変数へ書き込むコードが挿入されます。

    4:の`0`は0番目のconstrain、つまり"=&r" (__e)を指します。3:と同様、カッコ内は変数です。
    これらの指定によって、埋め込むアセンブラの前に変数の値をレジスタに書き込むコードが挿入されます。

    5:は使用されるレジスタが記述されます。埋め込むアセンブラ内で使用するレジスタをここに書くことで
    埋め込むコードの前後にこれらのレジスタを退避・復帰するコードが挿入されます。

    で、3:と4:で指定した変数をレジスタとみなして%0,%1,%2みたいな形でアセンブラを書けるんですが
    ("add %1,%0"みたいな記述ができるようになる)このソースには含まれてないですね。

    詳細はGCCのドキュメント"Using the GNU Compiler Collection"に書かれていますので
    やる気があったらがんばって読んでみてください。
  • すずきさん(2006/12/20 20:09)
    アセンブラの神が降臨していただいたおかげで、勉強になります。
    #ってコメントか。文字連結じゃないんですね。

    だとすると本文が間違ってる予感が…直さねば。
  • すずきさん(2006/12/20 20:26)
    間違えた。#はパラメータ展開、文字列連結は##でした。

    #define の中なので、たぶん
    __put_user_x(__r1, __p, __e, 8, "ip", "lr");
    と渡すと、__S は 8 になって、
    "bl __put_user_" #__S

    "bl __put_user_" "8"
    に展開され
    "bl __put_user_8"
    と連結されます。

    $ cat a.c
    #define hoge(a) printf("hoge_" #a "\n");
    int main()
    int a = 1;
    hoge(0);
    hoge(a);
    hoge("fuga");

    return 0;
    とすると

    $ gcc a.c; ./a.out
    hoge_0
    hoge_a
    hoge_"fuga"
    こんな感じになります。
  • ち。さん(2006/12/21 15:24)
    うは。まちがってたw
    コメントはセミコロン`;`でした。
    大変失礼しましたm(_ _)m
  • hdkさん(2006/12/23 00:48)
    ; は複数の命令を一行にまとめて書くときに使う区切り文字です。# がコメントであってます。
  • すずきさん(2006/12/24 04:34)
    えーと、まとめると。

    1: __asm__ __volatile__ (
    2: "bl __put_user_ #__S"
    って書いたら、__S はコメントで、

    今回の奴は
    1: __asm__ __volatile__ (
    2: "bl __put_user_" #__S
    となっていてこれは #define の定義なので、#の後ろにあるパラメータは展開されて文字列として連結される。

    ってことで理解合ってます?>お二方
open/close この記事にコメントする



2006年12月18日

glibcお前もビルドできないのか - その2

目次: C言語とlibc

glibcは最適化を外すとコンパイルできないことを昨日お伝えしました。
これじゃあるオプション(-fno-omit-frame-pointer:フレームポインタの省略を行わない)つけたいのにできないよ、って思ったんですが、試しに -O2 --fno-omit-frame-pointerって同時に指定したらコンパイルできました。

でも確か -O1くらいの最適化をかけると、アーキテクチャによってはフレームポインタが省略されるはずです。それを考えると -O2と -fno-omit-frame-pointerは矛盾した指定に思えますが…?

gccが、オプションを見ているふりをしている可能性も疑って、生成されたlibc-2.3.2.soを逆アセンブルして確認しましたが、フレームポインタの省略はないようです。

というわけで、最適化とこのオプションは排他ではないことがわかりました。うーん、便利ナリ。

-fなんちゃらのオプションってビットフラグみたいな感じなのでしょうか。-O1とか -O2ってのは、それらをまとめて立てたり倒したりするだけかな。

前途多難

とりあえずglibcはうまくいきました。割とすんなりできたのは、glibcがクロスコンパイルのことを考えて作られているからでしょう。

ところが、みんながみんなクロスコンパイルが容易にできるわけじゃないんですよね。

ncursesはautomake/autoconf使ってる(ほんとか?)っぽいのにtarget=arm-linuxって指定しても完全に無視だった。他のライブラリはまだ試してないけど、ずっとこんな調子だったら泣けてしまうよ。

かーねる

あと、以前からつまづいていたのは、Linux kernel 2.4でのmake menuconfigですね。make configはできるから、そっちでやりゃいいんですけど、さすがにmenuconfigすらできないのは悲しすぎです。


ARCH=arm
CROSS_COMPILE=arm-linux-

まず、以上の変数を指定して、make menuconfigすると、こんな事言われます。

$ make menuconfig

Menuconfig has encountered a possible error in one of the kernel's
configuration files and is unable to continue.  Here is the error
report:

 Q> scripts/Menuconfig: line 831: MCmenu0: command not found

Please report this to the maintainer <mec@shout.net>.  You may also
send a problem report to <linux-kernel@vger.kernel.org>.

Please indicate the kernel version you are trying to configure and
which menu you were trying to enter when this error occurred.

make: *** [menuconfig]  1

MCmenu0ってファイルが悪いそうですが、このファイルは自動的に生成される上に、クリーンナップでご丁寧にも消されるので残ってません。というわけでscripts/Menuconfigを追って調べたら、arch/arm/config.inで、drivers/ssi/Config.inというファイルを指定しているところが怪しそう。

わざわざコメントで、ssiだよ、scsiのスペルエラーじゃないよ!なんて書いてありますが、現在のカーネルだとそもそもdrivers/ssi/Config.inと言うファイルがありません。昔はあったのでしょうね。

そのせいでifブロックの中が空のシェルスクリプトが生成され、shが怒っていたのです。
下のような感じでコメントアウトすると良いみたいです。


$ diff -u linux-2.4.33.5/arch/arm/config.in.orig linux-2.4.33.5/arch/arm/config.in
--- linux-2.4.33.5/arch/arm/config.in.orig      2006-12-15 01:29:03.000000000 +0900
+++ linux-2.4.33.5/arch/arm/config.in   2006-12-19 03:33:31.000000000 +0900
@@ -599,10 +599,10 @@
 fi
 endmenu
 
-if [ "$CONFIG_ARCH_CLPS711X" = "y" ]; then
-   # This is _meant_ to be ssi _not_ scsi.  It is not a spelling error.
-   source drivers/ssi/Config.in
-fi
+#if [ "$CONFIG_ARCH_CLPS711X" = "y" ]; then
+#   # This is _meant_ to be ssi _not_ scsi.  It is not a spelling error.
+#   source drivers/ssi/Config.in
+#fi
 
 source drivers/ieee1394/Config.in

って書いた後で、既に指摘されていたことがわかったりすると、ほんとガッカリだよ(´・ω・`)ネー。
しかし、私にはmakeの出すエラーメッセージとarch/arm/config.inがおかしい、って事はパッと結びつかなくて、検索もできませんでしたよ…。宇宙人ですか?この人は。

ちなみに、arm以外にも影響あるっぽいので、カーネルクロスコンパイルしちゃうぜ、って奇特な方は参考にどうぞ。

まあ、俺の思いつく事なんてたいがい、どっかのすげー人がやったことの二番煎じなのさ。それならそれでいいのだ。

編集者:すずき(2023/04/29 21:47)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2006年12月17日

glibcお前もビルドできないのか

目次: C言語とlibc

昨日の日記の繰り返しになりますが、私がやりたいのは、変なオプション付けてglibcをビルドすることです。
いきなりやると大抵うまくいかないので、初めに何も付けずにビルドしました。簡単な修正が必要ですが、特に問題なく成功しました。

あとはオプション変えるだけだと思ったら、やっぱダメでした。下のメッセージのように、最適化を外すなって怒られます。

$ make
(...snip...)
/tmp/build/glibc-2.3.2/config.h:3:3: #error "glibc cannot be compiled without optimization"

そういえば以前、hdk氏より「Linuxカーネル(12/18訂正:カーネル -> Linuxカーネル)は最適化をoffにするとコンパイルできない」と教えてもらたっけなあ。
今日になって同じような現象に出会うとは、夢にも思いませんでしたよ。

ビルドメモ

まずapt-get source glibcとして、取ってきたglibc_2.3.2.ds1.orig.tar.gzを展開すると、glibc-2.3.2.tar.bz2とglibc-linuxthreads-2.3.2.tar.bz2が出てくるので、それらを展開します。

そして、Zaurus Cross さんにあるglibc-2.3.2向けのバグフィクスパッチを当てます。
こういう素晴らしいお仕事してくれる方がいるから、ほんと助かります…。


# ソース取ってくる
$ apt-get source glibc
$ tar -xzvf glibc_2.3.2.ds1.orig.tar.gz

# 展開、linuxthreadsアドオンだっけ?それも展開
$ tar -xjvf glibc-2.3.2.tar.bz2
$ cd glibc-2.3.2
$ cp ../glibc-linuxthreads-2.3.2.tar.bz2 ./
$ tar -xjvf glibc-linuxthreads-2.3.2.tar.bz2

# パッチ当て
$ patch -p1 < glibc-2.3.2-arm.patch

# さらに修正必要、修正内容については後ろの方に載ってます
(修正)

# ビルド用のディレクトリに移動
$ cd ../
$ mkdir build
$ cd build

# こんふぃぎゃー
# カーネルヘッダは適したものを使ってください
$ ../glibc-2.3.2/configure --prefix=/home/username/usr/local/arm --target=arm-linux \
--enable-shared --enable-add-ons --enable-kernel=2.4.x \
--host=arm-linux --with-headers=/home/username/usr/src/linux-2.4.x/include

# ビルド、インストール
$ make
$ make install

ちなみにglibcのコンパイルも含めて、Zaurus Crossさんが超くわしいので、そちら見た方がためになります。

修正箇所

コンパイル通らないと困るので晒しておきます。
初めはglibc-2.3.2/include/libc-symbols.hの @nobitsを削ってたんですが、ググったら %nobitsにすればいいよ、ってのがあったので直しました。


--- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.orig       2003-02-21 07:22:24.000000000 +0900
+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c    2006-12-17 23:21:42.000000000 +0900
@@ -47,6 +47,8 @@
 #include <asm/page.h>
 #include <sys/sysctl.h>
 
+#include <linux/input.h>
+
 #define PATH_ARM_SYSTYPE       "/etc/arm_systype"
 #define PATH_CPUINFO           "/proc/cpuinfo"
--- glibc-2.3.2/include/libc-symbols.h.orig     2003-01-04 08:21:03.000000000 +0900
+++ glibc-2.3.2/include/libc-symbols.h  2006-12-17 23:21:01.000000000 +0900
@@ -247,7 +247,7 @@
     __attribute__ ((unused, section (".gnu.warning." #symbol __sec_comment))) \r     = msg;
 #  define libc_freeres_ptr(decl) \r-  __make_section_unallocated ("__libc_freeres_ptrs, "aw", @nobits") \r+  __make_section_unallocated ("__libc_freeres_ptrs, "aw", %nobits") \r   decl __attribute__ ((section ("__libc_freeres_ptrs" __sec_comment)))
 #  define __libc_freeres_fn_section \r   __attribute__ ((section ("__libc_freeres_fn")))
編集者:すずき(2023/04/29 21:46)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2006年12月30日 >>> 2006年12月17日
link もっと後

管理用メニュー

link 記事を新規作成

<2006>
<<<12>>>
-----12
3456789
10111213141516
17181920212223
24252627282930
31------

最近のコメント5件

  • link 21年3月13日
    すずきさん (03/05 15:13)
    「あー、このプログラムがまずいんですね。ご...」
  • link 21年3月13日
    emkさん (03/05 12:44)
    「キャストでvolatileを外してアクセ...」
  • link 24年1月24日
    すずきさん (02/19 18:37)
    「簡単にできる方法はPowerShellの...」
  • link 24年1月24日
    KKKさん (02/19 02:30)
    「追伸です。\nネットで調べたらマイクロソ...」
  • link 24年1月24日
    KKKさん (02/19 02:25)
    「私もエラーで困ってます\n手動での回復パ...」

最近の記事3件

  • link 24年3月25日
    すずき (03/26 03:20)
    「[Might and Magic Book One TASのその後] 目次: Might and Magicファミコン版以前(...」
  • link 21年10月4日
    すずき (03/26 03:14)
    「[Might and Magicファミコン版 - まとめリンク] 目次: Might and Magicファミコン版TASに挑...」
  • link 24年3月19日
    すずき (03/20 02:52)
    「[モジュラージャックの規格] 古くは電話線で、今だとEthernetで良く見かけるモジュラージャックというコネクタとレセプタク...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 03/26 03:20