質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

QEMU

QEMU(キューエミュ)は、Fabrice Bellardが中心となって開発しているオープンソースのプロセッサエミュレータ

解決済

Linux kernel を -O0 でコンパイルするとアセンブラでエラーになる

kenz_san
kenz_san

総合スコア33

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

QEMU

QEMU(キューエミュ)は、Fabrice Bellardが中心となって開発しているオープンソースのプロセッサエミュレータ

1回答

1評価

1クリップ

4961閲覧

投稿2016/07/24 05:21

編集2016/08/05 06:51

raspberry pi 向けの qemu の開発をしており、一部機能の不具合対応(ext4 でマウントエラーが発生)のため kernel を最適化なし(-O0)でコンパイルしたいのですが、コンパイルエラーが発生してしまっています。(-O1や-O2ではコンパイルできます)

解決策を探しているのですが、見つかっていません。どなたか情報を持っていないでしょうか?(「 -O0 はサポートしていないよ」とか)

../include/linux/compiler-gcc4.h:77:38: error: impossible constraint in ‘asm’ #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0) ^ ... In file included from ../include/linux/linkage.h:4:0, from ../include/linux/fs.h:5, from ../fs/ext4/ext4_jbd2.h:18, from ../fs/ext4/mballoc.c:24: In function ‘__list_add_rcu’, inlined from ‘list_add_tail_rcu’ at ../include/linux/rculist.h:102:16, inlined from ‘ext4_mb_add_n_trim’ at ../fs/ext4/mballoc.c:4301:21: ../include/linux/compiler.h:412:20: error: call to ‘__compiletime_assert_54’ declared with attribute error: Need native word sized stores/loads for atomicity. prefix ## suffix(); \ ^

他にも、以下のような note や warning が出ていますが、関連がわかっていません。

../arch/arm/include/asm/jump_label.h: In function ‘ext4_mb_init_cache’: ../include/linux/compiler-gcc4.h:77:38: warning: asm operand 0 probably doesn’t match constraints [enabled by default] #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0) ^ ../arch/arm/include/asm/jump_label.h:18:2: note: in expansion of macro ‘asm_volatile_goto’ asm_volatile_goto("1:\n\t" ^ ../include/linux/compiler-gcc4.h:77:38: warning: asm operand 0 probably doesn’t match constraints [enabled by default] #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0) ^ ../arch/arm/include/asm/jump_label.h:18:2: note: in expansion of macro ‘asm_volatile_goto’ asm_volatile_goto("1:\n\t" ^ ... ../include/linux/compiler.h:417:2: note: in expansion of macro ‘__compiletime_assert’ __compiletime_assert(condition, msg, prefix, suffix) ^ ... ../arch/arm/include/asm/barrier.h:68:2: note: in expansion of macro ‘compiletime_assert_atomic_type’ compiletime_assert_atomic_type(*p); \ ^

開発環境は以下のような感じです。

項目内容
kernel4.1.21
gcc4.8.3
hostlinux mint 17.3 64bit
コンパイルmake -j8 CFLAGS_mballoc.o="-O0"

よろしくお願いします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

yohhoy

2016/07/30 06:46

コンパイル時assert「Need native word sized stores/loads for atomicity.」が出ていますが、-O0以外ではコンパイルで来ているのでしょうか?
kenz_san

2016/08/06 03:29

本文に追記しました。 -O1 や -O2 ではコンパイルできています。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

QEMU

QEMU(キューエミュ)は、Fabrice Bellardが中心となって開発しているオープンソースのプロセッサエミュレータ