6488985 ランダム
 ホーム | 日記 | プロフィール 【フォローする】 【ログイン】

ふるた技工所(てっこうしょ)

ふるた技工所(てっこうしょ)

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

キーワードサーチ

▼キーワード検索

プロフィール

Aちゃん22

Aちゃん22

フリーページ

2016.11.30
XML
カテゴリ:ソフト開発日誌
scankeylx を Raspberry Pi 3 (ARMv7) アーキテクチャ上でコンパイルして動かしてみることにした。/dev/sda や /dev/sdb を開こうとして "Not a directory" (ENOTDIR) エラーになった。

うん、確かに /dev/sda は directory ではない。何で分ったようなエラーになるんだ?他のツール dd だって open 出来ているし。暫く悩んでいた。また変なメモリ破壊とか...

色々と悩んで、strace で様子を見ることにした。open() system call のトレースに O_DIRECTORY が付いていた。え?ソース書き間違えた?ソースは O_DIRECT と書かれている。何かが違う。Free Pascal の RTL (RunTime Library) ソースコードを見ても、変な再定義は無し。

x86 上の fcntl.h, ARM 上の fchtl.h, ARM64 上の fcntl.h を見比べてみる。O_DIRECT と O_DIRECTORY の値が違っている。x86 上の O_DIRECT の値 040000 を使うと ARM 上では O_DIRECTROY になる。

最も良い解決は Free Pascal の RTL source を修正することなんだよな、きっと...

O_DIRECT を再定義する定数を用意して、解決するか試してみる。あー、PowerPC とか SPARC も違いがあるのか。対応するコードは書いてみたけれど、試すことができない。ARM 上の動作は意図したとおりになった。

アーキテクチャ毎に Linux kernel system call の定数が変るなんて有るんだ。

うぅ、まだ動かないねぇ。





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2016.12.01 20:17:40
コメント(0) | コメントを書く
[ソフト開発日誌] カテゴリの最新記事


カレンダー

カテゴリ

サイド自由欄

コメント新着

ご無沙汰してます@ Re[4]:ようやく転職エージェントに会うも - 3 分で終了(04/01) Aちゃん22さんへ かなり昔のことですが、…
Aちゃん22@ Re[3]:ようやく転職エージェントに会うも - 3 分で終了(04/01) ご無沙汰してますさんへ、こんにちは、 N …
ご無沙汰してます@ Re[2]:ようやく転職エージェントに会うも - 3 分で終了(04/01) Aちゃん22さんへ ご返信ありがとうござい…
Aちゃん22@ Re[1]:ようやく転職エージェントに会うも - 3 分で終了(04/01) ご無沙汰してますさん、こんにちは。 たま…
ご無沙汰してます@ Re:ようやく転職エージェントに会うも - 3 分で終了(04/01) 更新を楽しみにしてました。個人事業主に…

ニューストピックス


© Rakuten Group, Inc.