1 名前:login:Penguin [03/12/12 08:45 ID:tRHVcB2u] 組み込み系エンジニア(初級〜プロ級 どなたでも)集まれー。 組込Linuxのディストリビューション、カーネル、BSP、 ドライバ、ツール、クロス開発環境、他OSとの比較など、 Embeddedな題材についての紹介、評価、質問、風評、何でもござれ。 2〜9あたりで、関連スレ、ディストリ、参考文献を紹介。
610 名前:login:Penguin mailto:sage [2008/04/20(日) 08:29:06 ID:Sca1RWs1] >>609 Kernel2.4系ではD02HW(huawei e220)は動かないですよ。 2.6系からoptionドライバをbackportする必要があります。 さらに、モデムを有効にするためにusb-storageに手を入れないといけません。 CFでWLANですが、最近売っている11g対応のものはchipsetがmarvellなので Linuxでは動作しません(仕様・ドライバ非公開、marvellはクソ) 11bのprism系が必要ですが、入手困難です。 USBのWLAN(ZyDASなど)も使用できますが、APとして使用するとWEPしか 使えないのでおすすめできないです。
611 名前:login:Penguin mailto:sage [2008/04/20(日) 10:22:50 ID:TsnJvirp] >>610 あいたたた。2.6系が吉でしたか。というか、それ以外だと困難ですか。 はまる前に指摘いただいて助かります。
612 名前:login:Penguin [2008/04/20(日) 10:39:07 ID:c0frTkzz] USBも2.6.10以降とかじゃないと結構とらぶるよ。
613 名前:login:Penguin mailto:sage [2008/04/26(土) 07:34:23 ID:rBQZYKvH] 誰かxulrunnerをsh4にポートした人はいませんか? mozilla/xpcom/reflect/xptcall/src/md/unix/ になくてコンパイルが出来ません。
614 名前:login:Penguin mailto:sage [2008/05/27(火) 09:00:58 ID:VykLsyr7] USL-5Pをdebian26化して使っています。 カーネルをアップデートしようととりあえず手元にあった2.6.24.3を クロス(gcc-sh-3.3)でコンパイルして入れてみたのですが起動しません。 defconfig_landiskを使いました。 どなたか、これは動くというバージョンと.configを教えて いただけませんか。シリアルコンソール化していないので、 何が起こっているかさっぱり....
615 名前:login:Penguin mailto:sage [2008/06/05(木) 10:27:01 ID:VxPsxRuG] ここにもいたのね。 まずシリアルつければ?
616 名前:login:Penguin mailto:sage [2008/06/05(木) 10:31:27 ID:NpIMDqCZ] ども、すみません。 ハードウェア板に動きましたの報告しました。 ttp://pc11.2ch.net/test/read.cgi/hard/1201258478/529
617 名前:login:Penguin mailto:sage [2008/06/18(水) 11:00:04 ID:FGerXNJj] ボードコンピュータに付いてきたカーネルのソースを 見ているんだけど、なんでこんなにあちこちにパッチ が当たっててupstreamからかけ離れてるの? ボード初期化の部分は独自でいいとしても、それ以外の アーキテクチャ固有のドライバまわりとか、汎用のmmやドライバまで。 中には昔のパッチをフォワードポートして upstream で 変更のあったものがrevertされているようなものまで。 当然個々のパッチにドキュメントなんて無いから、 なぜそのような変更が必要なのか全く不明。 組み込み系ってこういうのが普通なんですか?それとも日本だけ特殊? 先細り感をひしひしと感じるのですが。
618 名前:login:Penguin mailto:sage [2008/06/18(水) 12:19:08 ID:hXQufezZ] 日本に限らんと思うけどねえ。 表に出しにくい事情があるんじゃないかい。 俺は手を入れたらできるだけ上流に投げてるが、 仕事じゃないから出来てることだからなあ。
619 名前:login:Penguin mailto:sage [2008/06/18(水) 14:50:27 ID:FGerXNJj] 表と言うか、誰でもダウンロードは出来るようには なっている。ボード持ってないと意味ないけどね。 そのカーネル、ちょっと使うだけでSIGBUSやVM segv.とか吐くし、 何も言わずに固まるってことも。再現性のあるものはテストケース 作って直してってメーカーに言えるけど、そうじゃないから とりあえず新しいカーネルをと思っても謎パッチだらけで、 ボードの初期化部分だけ移植しても起動すらしない。 本当に特定の環境、用途でしかテストしてないって感じで、 PCユーザからしたらありえない。 まぁメーカからしたら金にならんから仕方ないとは思うけど、 Linux使っててTakeだけというのはどうかと思う。
620 名前:login:Penguin mailto:sage [2008/06/18(水) 15:36:08 ID:b44BTw9+] 組み込み向けというか、開発者が少ないLinuxカーネルはどこもそんなもんでしょ。
621 名前:login:Penguin mailto:sage [2008/06/22(日) 09:04:25 ID:q5aaKaRI] すみません。どうしても調べがつかないので教えて下さい。FONをDD-WRT化しようと色々調べたんですが、細かい説明がみつからず首をひねっています。 一番分からないのが、FLASHとRAMの関係です。 RedBoot> version とすると、 RAM: 0x80000000-0x81000000, [0x80040290-0x80fe1000] available FLASH: 0xa8000000 - 0xa87f0000, 128 blocks of 0x00010000 bytes each. と出ます。 まあ奇異なところはあるけど、概ね RAM: 0x80000000-0x81000000 で(なんで0x80fffffffでないのか?)、 FLASH: 0xa8000000 - 0xa87f0000, 128 blocks of 0x00010000 bytes each. とあり、64KBのブロックが128個あるように見える。 っで、 RedBoot> fis list とやると、 Name FLASH addr Mem addr Length Entry point (以下略) が出ます。 ここで疑問なのはFLASH addrとMem addr。 内容物により両方同じ値で0xA8で始まっているものはたぶんFLASH内のデータであろうと推測される。しかし、異っているものがあり、それはFLASH addrは0xA8で始まるFLASH領域、Mem addrは0x8で始まるRAM領域に見えます。 これらはいったい何を表しているのでしょう?
622 名前:login:Penguin mailto:sage [2008/06/22(日) 11:04:57 ID:m4CFYIHK] >>621 FLASH addr - FLASHに書いてあるアドレス。 Mem addr - fis loadでアドレス指定しないとそこに読まれる。 fis helpに説明なかったっけ?
623 名前:login:Penguin mailto:sage [2008/06/22(日) 19:11:30 ID:q5aaKaRI] >>622 ご回答ありがとうございます。 なんとなく分かりました。 fis helpというのは調べたんですけど分かりませんでした。 代わりにhelp fisというのはあったんですが、 極簡単に Display contents of FLASH Image System [FIS] fis list [-c] [-d] としか出ませんでした。
624 名前:login:Penguin mailto:sage [2008/06/23(月) 12:59:00 ID:5Jn7Hh0X] uClinuxのサイトが重くてソースのダウンロードにまで至れないんですけど何か方法ありませんか
625 名前:login:Penguin mailto:sage [2008/06/23(月) 13:01:27 ID:6cx8X/B+] >>624 速い回線を買う
626 名前:login:Penguin mailto:sage [2008/06/23(月) 23:08:34 ID:8B+4/yXv] >>624 速い回線を寄付する。 どこぞにミラーがあったような気がするが、そこも そんなに速くなかったような気がする。 sf.jpのは全然更新してねえから古すぎてなあ。
627 名前:624 mailto:sage [2008/06/24(火) 00:55:57 ID:Gc6g3P3H] タイムアウトばかりだったのがやっと繋がってくれてなんとか落とせました ありがとうございました
628 名前:login:Penguin mailto:sage [2008/06/26(木) 10:16:47 ID:iON5D/Wq] SH archでの質問です。 プログラムをコンパイルすると、アセンブラのオプションに as -little と渡っているように見えるのですが、ヘルプをみると as --little でなくてはならないように思えるのですが、どうなんでしょう。 一応コンパイルできて動いているみたいなのですが、 -littleだと別の副作用がでて困っているのです。
629 名前:login:Penguin mailto:sage [2008/06/26(木) 15:41:37 ID:iON5D/Wq] sh版のasが--little「も」受け付けるようになったのが 2005年の終わり頃だけど、gccはbinutils-2.11.2以降を 要求していて、これが2001年中頃のリリースだから gccの方を変えるわけにはいかないのか。
630 名前:login:Penguin [2008/07/05(土) 01:12:27 ID:ouwQp4GB] まだqemu-sh4まったく動かないのでおじゃる 麻呂はどうすればよいのでおじゃるか?
631 名前:login:Penguin [2008/07/10(木) 19:47:51 ID:Gx2wFgQz] 接続されている特定のUSBデバイス、あるいは全てのUSBデバイスを 再認識させる方法ってあるでしょうか? 認識したデバイスの順序によって、うまく動かない場合があるので。 認識順序を決められれば多分一番良いのですが。 再認識はWindowsで言うとデバイスマネージャから デバイスの無効→有効と切り替えるような操作です。
632 名前:login:Penguin mailto:sage [2008/07/15(火) 09:50:05 ID:aGrgqLIL] udevとかhotplugに頼らないで、 自分でドライバロードすればいいんじゃない?
633 名前:login:Penguin [2008/07/15(火) 23:55:21 ID:KX30zKI5] 接続するものがわかってるなら、ソースいじっちゃえば。 libusbである程度できるけど。
634 名前:login:Penguin mailto:sage [2008/07/17(木) 23:28:52 ID:7XYJXfvu] shで自力unwindしてーけど レジスタの意味解らん オワタ
635 名前:login:Penguin mailto:sage [2008/07/20(日) 00:33:35 ID:4yJEnmn0] USL-5PってCF何倍速まで認識しますかね
636 名前:login:Penguin mailto:sage [2008/07/20(日) 01:37:45 ID:9Ts8razw] ソフト的な見え方は全部同じなので、コントローラにヘンな癖が なけりゃ大丈夫でないかと。
637 名前:login:Penguin mailto:sage [2008/07/30(水) 01:15:02 ID:guBfzXCP] sh向けのgccとgdbビルドするときに注意するべき ことってどっかにのってませんかね?
638 名前:login:Penguin mailto:sage [2008/07/30(水) 23:06:37 ID:1LL5RXNn] これは? ymorin.is-a-geek.org/dokuwiki/projects/crosstool
639 名前:login:Penguin mailto:sage [2008/07/30(水) 23:45:13 ID:YYInvdod] >>637 4.1.1は使うな。
640 名前:login:Penguin mailto:sage [2008/07/31(木) 00:36:14 ID:FWoObshL] >>638 、639 どもです。もう1つ質問してしまいますが sh4ってIPLにgdbのシンボル入ってないと gdbって使えないものでしょうか?
641 名前:login:Penguin mailto:sage [2008/07/31(木) 02:41:39 ID:em4+rAlj] >>610 uClinuxも2.6系があるらしいですが、 uClinuxでoptionドライバやWLANでAP(インフラストラクチャモード)は動きますか?
642 名前:login:Penguin mailto:sage [2008/07/31(木) 08:24:44 ID:9za86z+H] >>640 使い方による。 まあ今はkgdb使えるからipl-gの方でgdbに対応する必要はあまりないと思う。 >>641 今のところuClinuxだからつう理由で動かなかったドライバは見たことない。 それよりもCPUの違いで苦労します。 x86の事しか考えてねえドライバの多いこと…
643 名前:login:Penguin mailto:sage [2008/07/31(木) 10:13:55 ID:hbf3MQnx] >>642 ドライバの開発者にボードと開発環境送れば良いんじゃね?
644 名前:login:Penguin mailto:sage [2008/08/01(金) 00:04:05 ID:lRhZErSR] sh4カーネルのビルド辺りからユーザ空間作るところまで 自分で全部作る方法どこかに載ってないですかね?
645 名前:login:Penguin mailto:sage [2008/08/01(金) 04:12:23 ID:gu1YuAnu] >>643 自分で直した方が早い。 俺も借りてる方なので他の人に送っちゃうと 自分の方が止まっちまうつう事もあるが。
646 名前:login:Penguin mailto:sage [2008/08/01(金) 10:00:13 ID:Vn5THG1R] >>645 そういうことを言ってるんじゃないが。まあいいか。
647 名前:login:Penguin mailto:sage [2008/08/03(日) 14:21:04 ID:cQ/ip75L] /* * since we're only adjusting minutes and seconds, * don't interfere with hour overflow. This avoids * messing with unknown time zones but requires your * RTC not to be off by more than 15 minutes */ どうればいいんじゃーーー
648 名前:login:Penguin mailto:sage [2008/08/04(月) 11:21:23 ID:6zndNqJ3] landiskのconfigで2.6.25.9をnfs-rootで動かしているんだけど、 BUG: scheduling while atomic: sh/11916/0x10000002 というメッセージがよく出るんだけど これはlinux-shに報告した方がいいのかな。 linux-shってパッチしか流れてなくて、時々流れる それ以外のメッセージにはちっともレスがつかない から躊躇するのだけど。
649 名前:login:Penguin mailto:sage [2008/08/04(月) 14:21:14 ID:s3cZBMva] その後ろにどばどば出ているダンプ付きで投げれば話くらいは 聞いてもらえると思う。 もっと新しいのを使えと言われるだけかもしれんが。
650 名前:login:Penguin mailto:sage [2008/08/04(月) 15:54:08 ID:6zndNqJ3] >>649 もっと新しいの言われても 2.6.25.9->15でarch/shに対する パッチって出てないし、2.6.26はまだ.1しかでてないから x86だって使うのには抵抗ありますよ。 確か2.6.26rc5あたりを試したときは、25.9よりもっと 頻繁にエラー出てたと思う。 なんかみんなパッチは書いてるけどロードテストをまともにしてない という雰囲気を感じる。
651 名前:login:Penguin mailto:sage [2008/08/04(月) 22:21:11 ID:t0GxlSUz] 今更だけど 2.4.26を手ビルドしたいだれか書籍とか なんかおせーてsh3か4でやる予定なの
652 名前:login:Penguin mailto:sage [2008/08/05(火) 01:22:38 ID:wN4xAmfK] >>650 主要開発者でlandisk使って開発している人はいないと思う。 # こじませんせいは使ってたかなあ。 ので、landisk固有の問題であれば誰も気がついていない 可能性はあります。 つうことで2.6.27-rc1でCONFIG_PREEMPT=yにしたらどうなるよ? >>650 ttp://www.si-linux.co.jp/wiki/cat/ あたりに一通り書いてあると思う。
653 名前:login:Penguin mailto:sage [2008/08/05(火) 04:36:13 ID:nwX9luFr] SH4 vanilla 2.6.24/2.6.25でカーネルパラメータip=onで起動したとき IP-Config: Failed to open eth0 とか言われてNICが見えないんだけど何がいけないんですかね? ルネサスの評価ボードでNICはRTL8139です。
654 名前:login:Penguin mailto:sage [2008/08/05(火) 10:49:46 ID:ndc1pKBx] >>652 >つうことで2.6.27-rc1でCONFIG_PREEMPT=yにしたらどうなるよ? 使ってるクロスコンパイラが3.4.6なので コンパイルすらできませんよ。 ttp://lkml.org/lkml/2008/7/29/48
655 名前:login:Penguin mailto:sage [2008/08/05(火) 11:49:10 ID:rYf6YNyL] >>651 CPU次第かもだけど、2.6.19以降の方が簡単な可能性も まっ、余計なお世話だな
656 名前:login:Penguin mailto:sage [2008/08/05(火) 12:55:27 ID:ndc1pKBx] すみません。教えてください。 sh4のgcc-4.1.2ネイティブコンパイラで #include <math.h> #include <stdio.h> int main() { long double a = 0.1L; long double b = fabsl(a); printf("%Lg\n", b); return 0; } このコードをgccでコンパイルするとコンパイルできるのですが、 g++でコンパイルすると、 error: 'fabsl' was not declared in this scope とコンパイルできません。この場合どうするのが正しいのでしょうか?
657 名前:login:Penguin mailto:sage [2008/08/05(火) 13:43:03 ID:U2kvFOrk] fabslをthis scopeの場所で定義してやればいい。 abs自体重要な関数でもないし自分で適当に定義して問題ない。
658 名前:login:Penguin mailto:sage [2008/08/05(火) 13:48:42 ID:ndc1pKBx] >>657 ありがとう。調べてみるとlong double系の関数は fabslに限らずダメみたいですね。 さらに、sh4に限らずhppaとかでもlong double系の関数は c++ではエラーになるみたいで、configureスクリプト内で long double系の数学関数が存在するかチェックして、 なければdoubleで自分で定義しなおすのが通例のようでした。
659 名前:login:Penguin mailto:sage [2008/08/05(火) 18:00:02 ID:ndc1pKBx] すみません。やっぱり疑問です。 なぜgccではよくてg++ではだめなのでしょうか? fabsl ではありませんが、例えば polw は $ objdump -T /usr/lib/libm.so |grep powl 0002e8a0 w DF .text 0000006c GLIBC_2.2 cpowl 0002b040 w DF .text 00000274 GLIBC_2.2 powl $ objdump -T /usr/lib/libstdc++.so.6 |grep powl 000c4e00 g DF .text 00000028 GLIBCXX_3.4 powl なのに、やはりg++では error: 'powl' was not declared in this scope と言われてしまいます。
660 名前:login:Penguin [2008/08/05(火) 18:47:43 ID:v1bU+MY+] >>659 うちのシステムでは問題無く見えてるが。 どうでもいいけどfabslはbuilt-in関数ジャマイカ?
661 名前:login:Penguin mailto:sage [2008/08/05(火) 18:55:51 ID:ndc1pKBx] >>660 見えてるというのは、例えば int main() { long double a = 0.1L, b=0.2L; long double c = powl(a,b); printf("%Lg\n", c); } こんなコードを g++ a.c でコンパイルできるということでしょうか? どんな環境でしょうか?こちらは gcc-4.1.2/glibc-2.6と gcc-4.3.0/glibc-2.8ともsh4ネイティブ環境で、どちらもだめです。 >どうでもいいけどfabslはbuilt-in関数ジャマイカ? 確かにobjdumpしたら展開されてました。
662 名前:login:Penguin mailto:sage [2008/08/05(火) 23:46:57 ID:M5dmdWit] するとデフォルトのnamespaceの問題なのかな。 呼び方をpowl()ではなく::powl()にしてみては。
663 名前:login:Penguin mailto:sage [2008/08/05(火) 23:54:25 ID:BTkT9hjP] >>662 上のソースでpowlを::powlに、でしょうか? やったけど変わりません。 すみません、C++よく分からなくて。
664 名前:login:Penguin mailto:sage [2008/08/06(水) 02:48:40 ID:ObK2LsR5] #include <iostream> #include <cmath> using namespace std; int main() { long double a = 0.1L; long double b = abs(a); cout << b; return 0; }
665 名前:login:Penguin mailto:sage [2008/08/06(水) 05:41:13 ID:90ScjHi6] >>664 つまりどういう事?
666 名前:login:Penguin [2008/08/06(水) 10:52:09 ID:5rbVEHAI] .hはC言語のヘッダファイルで C++では.hをつけないんだけどね。
667 名前:login:Penguin mailto:sage [2008/08/06(水) 11:20:35 ID:AkO0dpZk] >>666 ここでは、そんなC++の一般知識を確かめているわけではないのだが...
668 名前:login:Penguin mailto:sage [2008/08/06(水) 11:32:51 ID:DuvSdRRq] >>662-663 の受け答えを見るか切りではそんな一般知識も不足してそうだけどな。
669 名前:login:Penguin mailto:sage [2008/08/06(水) 11:39:45 ID:AkO0dpZk] >>688 では>>662 はどのようにすればいいの?
670 名前:login:Penguin mailto:sage [2008/08/06(水) 11:55:13 ID:DuvSdRRq] >>669 math.hの関数はnamespaceを使ってない。 cmath使うなら::pow()になる。 末尾のlとかはつかん。
671 名前:login:Penguin mailto:sage [2008/08/06(水) 12:01:41 ID:AkO0dpZk] >>670 いや、だからC++でpowlを使いたいんだけど、libstdc++には定義があるようだし どうすればいいのという話です。 libstdc++にあるのは偽者?
672 名前:login:Penguin mailto:sage [2008/08/06(水) 12:38:29 ID:MrWK8qGv] gcc の -m* オプションじゃまいか? -mlとか、SH4なら -m4とか。よくシランが。
673 名前:f27e582e9c462b mailto:小雪さんを放せ! [2008/08/06(水) 13:05:51 ID:8eTBydbW] >>1 >>>2 ch:net>>>2 ch.net>>>ip.tosp.co.jp/i.asp?I=f27e582e9c462b >
674 名前:f27e582e9c462b mailto:小雪さんを放せ! [2008/08/06(水) 13:06:58 ID:8eTBydbW] >>1 >>>2 ch:net>>>2 ch.net>>>ip.tosp.co.jp/i.asp?I=f27e582e9c462b >
675 名前:login:Penguin mailto:sage [2008/08/06(水) 14:03:51 ID:mCPIcfm+] >>671 なんで long double が必要なの? そっちの理由が知りたい
676 名前:login:Penguin mailto:sage [2008/08/06(水) 14:41:13 ID:AkO0dpZk] >>675 そこにソースがあってコンパイルしたいから、ではダメですかね。例えば ttp://www.debian.org/ports/ これらの取り組みを否定するものではないでしょ?
677 名前:login:Penguin mailto:sage [2008/08/06(水) 14:44:45 ID:AkO0dpZk] あとは、すでに回避方法は >>658 で挙げてあるけど、 なぜ CとC++でコンパイルできたり出来なかったりする のかという疑問に答えを出したい。
678 名前:login:Penguin mailto:sage [2008/08/07(木) 00:23:53 ID:YsvtngAO] >>677 多分前提が違う。 最初思い込みで既存の動いていたコードの話なのかと思ったけど、 >>656 は一度でもg++で通ったと言ってるわけではない。 members.aon.at/hstraub/linux/newscache/porting-howto.html 4.4.1. New headers replacing C-headers www.linuxforums.org/forum/linux-programming-scripting/125526-c-gcc-math-h-lm.html
679 名前:login:Penguin mailto:sage [2008/08/07(木) 01:06:49 ID:XTerfC5k] gcc-3.4で arch/sh/kernel/entry.Sをビルドすると asm違うぞボケと怒られる /* * NOTE!! This doesn't have to be exact - we just have * to make sure we have _enough_ of the "sys_ni_syscall" * entries. Don't panic if you notice that this hasn't * been shrunk every time we add a new system call. */ .rept NR_syscalls-(.-sys_call_table)/4 .long SYMBOL_NAME(sys_ni_syscall) ここが違うって怒られるってことは、NR_syscallsが無いと思うけど これってどうすればいいのですかね
680 名前:login:Penguin mailto:sage [2008/08/07(木) 02:12:27 ID:AwAlKngr] >>671 テンプレート
681 名前:login:Penguin mailto:sage [2008/08/07(木) 13:57:02 ID:g6GIIrvN] >>678 貼られたリンクが何を言いたいのか分からない。 g++でコンパイルすると-lmが自動的につくと言いたい? >>680 libstdc++内のがテンプレートだとしても、g++でコンパイルすれば 自動的に-lmが付加されて、libm内のpowlが参照されると思うから コンパイルできるはずなんですが、何か違いますか。 再度書きますが、sh4で long doubleの数学関数を含むソースが gccでコンパイルできてg++でコンパイルできない。 i386ではgcc,g++どちらもコンパイルできる。 sh4でlong double系の数学関数が未実装だというのなら、 なぜgccだけコンパイルできるのか。
682 名前:login:Penguin mailto:sage [2008/08/07(木) 14:24:49 ID:jPayqA+W] >>681 SH3のgccが手近にあったんで>>656 をコピペでビルドしてみた。 拡張子.cpp : g++でもgccでもダメ 拡張子.c : g++はダメだがgccなら通った gcc バージョン 3.2.1。 ダメの内容は、 test.cpp: function 内の `int main()': test.cpp:5: `fabsl' undeclared (first use this function) test.cpp:5: (未宣言変数については、それが関数内で最初に現われた時だけ報告されます。) 関係ないと思うけど、ビッグエンディアン。 で、やはりi386では全部通るね。gcc version 2.96。
683 名前:login:Penguin mailto:sage [2008/08/07(木) 14:26:39 ID:g6GIIrvN] >>拡張子.cpp : g++でもgccでもダメ gccはフロントエンドだから拡張子をみるんでしょ。 cppだからg++を読んでる。
684 名前:login:Penguin mailto:sage [2008/08/07(木) 14:32:26 ID:jPayqA+W] 要するにCじゃなきゃ通んないってことね?SHではなぜか。
685 名前:login:Penguin mailto:sage [2008/08/07(木) 16:19:08 ID:AwAlKngr] なんだ、よく読んだら人の話を聞かない頭でっかちさんかw >>668 , 670 を心して読め。 >>664 はコンパイル通ってるのか? ひょっとして、同じソースコードが CとC++のコンパイラで コンパイル出来る事を期待しているのか? 会社のプロジェクトだったら悲惨だな。 まぁ、人並みにがんがれ。w
686 名前:login:Penguin mailto:sage [2008/08/07(木) 16:24:20 ID:AwAlKngr] でも >>667 を見ると基礎はありそうな事を書いてはいるね。 こんなのが上司だったら即転職だなw
687 名前:login:Penguin mailto:sage [2008/08/07(木) 16:24:52 ID:g6GIIrvN] >>685 >ひょっとして、同じソースコードが CとC++のコンパイラで >コンパイル出来る事を期待しているのか? そうだよ。示したテストケースは簡略化したものだけど、 実際にはc++で書かれ<math.h>をincludeしてlong doubleの数学関数 を呼び出しているソースをコンパイルしたいのであって、 cmathを使え、long double は使うなというのはここで問題に している話題ではない。
688 名前:login:Penguin mailto:sage [2008/08/07(木) 16:41:58 ID:g6GIIrvN] ちなみに #include <cmath> にしても i386 は powlとかの long double数学関数を呼べるし、 sh4ではコンパイルエラーになる。 なぜか?
689 名前:login:Penguin mailto:sage [2008/08/07(木) 16:49:25 ID:jPayqA+W] >>688 cmathの中で結局math.h読んでるからじゃない?
690 名前:login:Penguin mailto:sage [2008/08/07(木) 16:50:35 ID:jPayqA+W] あ、いや、忘れてくれ。
691 名前:login:Penguin mailto:sage [2008/08/07(木) 16:52:28 ID:KvEAlGj2] そもそも-mは何を指定してるんだ?
692 名前:login:Penguin mailto:sage [2008/08/07(木) 16:53:40 ID:g6GIIrvN] >long double は使うなというのはここで問題に すみません。ここは取り消します。理解できました。
693 名前:login:Penguin mailto:sage [2008/08/07(木) 16:54:14 ID:g6GIIrvN] >>691 なにも。 何を指定すれば良いの?
694 名前:login:Penguin mailto:sage [2008/08/07(木) 16:56:24 ID:KvEAlGj2] >>693 何もってgccのビルド時に指定してないのか? コンパイルオプション見ろよ。
695 名前:login:Penguin mailto:sage [2008/08/07(木) 16:58:14 ID:WjgH/Ftv] >>693 つ ヒント:32と64 manくらい見てから人に聞こうな
696 名前:login:Penguin mailto:sage [2008/08/07(木) 17:03:48 ID:g6GIIrvN] >>695 全然わかりません。SH特有のオプションに-m32とか-m64とかないですが。 >>694 sh4ネイティブ環境でコンパイルしたので、sh4ネイティブ用の デフォルト値です。
697 名前:login:Penguin mailto:sage [2008/08/07(木) 17:06:11 ID:jPayqA+W] SH の-mに-mb -ml -m2,3とか以外の指定ってあったっけ?
698 名前:login:Penguin mailto:sage [2008/08/07(木) 17:08:16 ID:3ZyKP7zl] >>697 無いと思う きっと>>695 は勘違いしてるはず
699 名前:login:Penguin mailto:sage [2008/08/07(木) 17:10:07 ID:3ZyKP7zl] >>696 オプションはデフォルトではなく、環境にあわせて指定した方が良いですよ
700 名前:login:Penguin mailto:sage [2008/08/07(木) 17:11:36 ID:g6GIIrvN] 私の無知もあったので問題を再整理します。 C++で<math.h>をincludeしてlong double系の数学関数(たとえばpowl)を 呼び出しているソースがあります。これをi386でコンパイルすると コンパイルできるのですが、sh4でコンパイルするとコンパイルできません。 回避方法として、powlをdoubleのpowで#defineする方法があります。 解決方法として、<cmath>にしてpowのテンプレートを使う方法があります。 疑問点として、なぜsh4でpowlがc++から呼び出せないのでしょうか。 です。
701 名前:login:Penguin mailto:sage [2008/08/07(木) 17:19:20 ID:g6GIIrvN] >>699 例えば ttp://sh-linux.org/ ここのパッケージはspecファイルに何も書いていないので、 デフォルト値が採用されているのですが何かまずいですか? 私の場合トイ用途なので、特定のCPUに追い込んだ設定は必要無いのです。
702 名前:login:Penguin mailto:sage [2008/08/07(木) 17:50:49 ID:EN5PuvqY] gnu系の知識はないが、 SH4って安物以外はFPU内蔵で、FPU命令かソフトで実現か選ぶ必要があるとか?
703 名前:login:Penguin mailto:sage [2008/08/07(木) 19:22:03 ID:AwAlKngr] math関数は target依存じゃなかったかな?(多分...) この場合(テンプレート未使用時)、C++ から C関数を使う事になるのか? とすると extern "C" か...
704 名前:login:Penguin mailto:sage [2008/08/07(木) 19:28:55 ID:g6GIIrvN] >>703 後出しと言われるかもしれませんが、extern "C" {} で囲むのは 最初にやってだめでした。
705 名前:login:Penguin mailto:sage [2008/08/07(木) 20:02:21 ID:g6GIIrvN] 一方sh4のCからのpowlの呼び出しの方も、 warning: incompatible implicit declaration of built-in function ‘powl’ と警告がでます。でもlibmにはpowlの定義があるのでリンクできてしまいます。 確かに、math.h(から読み込まれるbits/mathcalls.h)にはpowlの 定義はありません。 もしかして意図していない関数をリンクしているという事なのでしょうか。
706 名前:login:Penguin mailto:sage [2008/08/07(木) 20:12:32 ID:g6GIIrvN] >>705 i386も同様にpowlは見つかりませんね。 build-inといってるからgccの中なのかな。 ./gcc/builtins.def これか。でもtarget依存のようには見えないけど。
707 名前:login:Penguin mailto:sage [2008/08/07(木) 22:04:56 ID:AwAlKngr] 環境が違うみたいだから、さいなら... うちは gcc-3.4.5 の x86_64-pc-linux-gnu クロス環境。 glibc-2.3.5。 >>703 でコンパイル & リンク確認。
708 名前:login:Penguin mailto:sage [2008/08/07(木) 22:14:35 ID:KvEAlGj2] >>698 >>702 も言ってるがm4とm4-nofpuの指定があるとおもったけど、なくなったの?
709 名前:login:Penguin mailto:sage [2008/08/07(木) 22:34:16 ID:AwAlKngr] >>708 あるよ。 ほかにも色々。
710 名前:login:Penguin mailto:sage [2008/08/07(木) 22:45:20 ID:g6GIIrvN] >>708 あるけど、-m4でしかコンパイルしていない。 cc1plus: error: command line option ‘-m4-nofpu’ is not supported by this configuration こうなる。