トップ «前の日記(2010-12-27) 最新 次の日記(2010-12-29)» 編集

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|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|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|

ToDo:


2010-12-28

_ addend について考える会

gcc -m32 -fPIC

 12:   8d 83 00 00 00 00       lea    0x0(%ebx),%eax
                       14: R_386_GOTOFF        .LC0
 18:   89 04 24                mov    %eax,(%esp)
 1b:   e8 fc ff ff ff          call   1c <gcc+0x1c>
                       1c: R_386_PLT32 puts

gcc -m32

  6:   c7 04 24 00 00 00 00    movl   $0x0,(%esp)
                       9: R_386_32     .rodata.str1.1
  d:   e8 fc ff ff ff          call   e <gcc+0xe>
                       e: R_386_PC32   puts

gcc -fPIC

  4:   48 8d 3d 00 00 00 00    lea    0x0(%rip),%rdi        # b <gcc+0xb>
                       7: R_X86_64_PC32        .LC0+0xfffffffffffffffc
  b:   e8 00 00 00 00          callq  10 <gcc+0x10>
                       c: R_X86_64_PLT32       puts+0xfffffffffffffffc

ここで addend は両方とも -4

gcc

  4:   bf 00 00 00 00          mov    $0x0,%edi
                       5: R_X86_64_32  .rodata.str1.1
  9:   e8 00 00 00 00          callq  e <gcc+0xe>
                       a: R_X86_64_PC32        puts+0xfffffffffffffffc

addend は後者だけ -4

tcc

  b:   48 8d 05 fc ff ff ff    lea    -0x4(%rip),%rax        # e <gcc+0xe>
                       e: R_X86_64_PC32        L.22
 12:   48 89 c7                mov    %rax,%rdi
 15:   b8 00 00 00 00          mov    $0x0,%eax
 1a:   e8 fc ff ff ff          callq  1b <gcc+0x1b>
                       1b: R_X86_64_PC32       puts

さて!

とか書いてるうちに気付いたが、 PLT 作った場合に rel->r_addend を足してないってだけの話だこれわ

(16:14)

_ とりあえず

  • gcc -c でビルドしたバイナリが tcc でロードできない問題
  • stdarg で struct 渡せない問題
  • struct 渡す時の alignment が 8 じゃない問題

あたりを修正。 副産物として raw_write.h とかいうのができた

WebKit roll は今日はやたら平和

shinh.org はなんもしてない

27c3 とかいうのでゴルフ場使うよって話でいくつか対応

あと twitter/mircbot が止まってるのは twitter API が変わったとかなんとか

chrome extension は engoogle とかは user data を適当に廃棄したらインストールできるようになった。

chrome key config は任意 JS 書けないってことで、 shortcut manager にしようと思ったのだけど、 しかし chromekey が動いた時点でやる気が失せた

chromeswitchproxy は chrome のコードを見た結果、 gconf 経由で設定すれば gconftool-2 コマンドで 適当に動的に変えれる気がしたので、 それのラッパ書いてお茶を濁せば良いのではないかと思った。

(20:21)

お名前:
E-mail:
コメント:
人生、宇宙、すべての答え
本日のリンク元

2010年
12月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
1.egtra(2010-12-23 02:00)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h