問題タブ [sparc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
5471 参照

c - SPARCアセンブリ引数のprintfフォーマット指定子?

この C に相当するものを SPARC アセンブリで取得するにはどうすればよいですか。

関数プロトタイプの使用:

ここで、msg は「こんにちは、私の名前は %s です。\n」です。

最初の引数 msg を使用せずに .asciz を使用してデータ セグメントで "Hello, my name is %s.\n" を定義できることはわかっていますが、% を持つアセンブリ関数に文字列を渡す方法はありますか?その中の識別子?char* はフォーマット識別子を取り込めますか? 以下を試しましたが、コアダンプが発生します。

C での関数呼び出し:

組み立て:

関数プロトタイプに正しくアプローチしていないのでしょうか?

0 投票する
1 に答える
2141 参照

gcc - libiconv solaris-sparc/opteron 64 ビット

私は 64 ビットの solaris - sparc と opteron システムを持っています。/usr/local/lib の下に、両方のシステムの libiconv.so が表示されます。libiconv.so で file コマンドを実行すると、次の出力が得られます。

sparc と opteron の両方のシステムで、既存の 32 ビットに影響を与えずに 64 ビットの libiconv をビルドするにはどうすればよいですか? その理由は、libiconv の既存のバージョンを認識していないからです。

0 投票する
2 に答える
614 参照

gcc - x86 上の SPARC v8 用にコンパイルされたベンチマークのプロファイリング

私は学術的な演習のために leon3 プロセッサ (命令セットは SPARC v8) に (小さな) 改良を加えようとしています。何を改善するかを決める前に、改善を調整したいいくつかのベンチマーク プログラムのプロファイルを作成したいと思います。

SPARC v8 マシンにアクセスできません。

現在、機能レベルでプロファイリングを行う 'tsim' (leon3 シミュレーター) の評価版を使用しています。これは実際にはそれほど役に立ちません。

ループのアンロールを有効にしてコンパイルし、アセンブリ コード内の興味深い命令をカウントするなどの奇妙なことを試しましたが、gcc はループのアンロールを拒否しました。

理想的には、私が探しているのは、ベンチマークを実行し、それを命令レベルでプロファイリングする SPARC v8 シミュレーターです (「smul」が x 回実行されたようなもの)。もちろん、プロファイラーでなくてもこれを行うことができる他の方法があれば、気にしません。

何か案は?

0 投票する
3 に答える
373 参照

intel - Intel 上の OpenSolaris で SPARC 実行可能構造を調べるには

elf、SPARC、PA-RISCの実行ファイル構造を調べて比較したい。

調査を実行するために、Intel マシン (Core2Duo) に OpenSolaris をインストールしたいと考えています。しかし、私はそれがまったく機能するのかという基本的な疑問を持っていますか?

SPARCには独自のアセンブリがあることを知っています-それが機能するか、またはまったく有効な考えであるかどうか疑問に思っています。

私はそれらを逆アセンブルするいくつかのプログラムを作成し、ツールの助けを借りてファイル構造を研究することを目指していました。

HP-UX (PA-RISC) でこれらすべてを実行する方法がわかりません。PA-RISC 用のフリー OS を知りません。

0 投票する
1 に答える
687 参照

erlang - Solaris Sparcのコアダンプでerlangビルドが失敗するのはなぜですか?

(私はすでにこれに対する答えを持っています。私が学んだことを共有し、将来この問題を他の誰かを救うことができるように、私は自分の質問に答えるつもりです)

Solaris 10 Sparcv9でErlangをビルドしようとすると、ビルドが途中で失敗します。

これはなぜですか?Erlangビルドを完了するために何ができますか?

0 投票する
1 に答える
280 参照

compiler-construction - OpenSPARC T1 プラットフォーム用のクロスコンパイラ?

Linux または Win7 を実行する x86 プロセッサで作業しています。OpenSPARC T1 プラットフォームでいくつかのスタンドアロン アプリケーションを動作させようとしています。説明書には次のように書かれています。

「C サンプル プログラムを簡単に再コンパイルできるように、make スクリプトが含まれています。make は、SunStudio コンパイラを搭載した SPARC マシンで実行する必要があります。」

SunStudio コンパイラが必要なのは理にかなっていますが、これを x86 マシンでも動作させることは可能ですか? それとも、SunStudio コンパイラは SPARC アーキテクチャでのみ動作しますか?

どうもありがとう、マイク

0 投票する
2 に答える
2199 参照

solaris - solaris sparc 9/10 libstdc++ の互換性の問題 (64 ビット)

sparc9 および sparc10 システムに gcc 3.4.6 をインストールしました。sparc10 で共有オブジェクト (sparc9 でビルド) を使用しようとすると、非互換性の問題が発生します。sparc9 システムで同じ共有オブジェクトを使用しても問題はありません。メイクファイルからのスニペット:-

sparc10で次のようになりました:-

上記の出力では、正常に見える他の依存関係をスキップしました。

次に、上記の参照されていないシンボルについて、/usr/local/lib/sparcv9 の libstdc++.so.6 に対して「nm」を実行したところ、次の結論が得られました。

注意深く見ると、sparc9 と sparc10 の修飾名シンボルの違いがわかります... "ExSt12" v/s "ElSt12"。

同様に、sparc10 で myapi.so をビルドすると、V9 と V10 のシンボルの不一致が原因で、sparc9 で失敗します。

私が何かを見逃しているかどうかについて、誰かが私に役立つヒントを教えてもらえますか? または、V9 にパッケージをインストールする必要がありますか。V9 で構築された共有オブジェクトは V10 で動作するはずです。

V9 の libstdc++.so.6 のサイズが V10 と異なることを付け加えておきます。V9 には SMCgcc があり、V10 には SUNWgccruntime と SMCgcc の両方があります。

0 投票する
2 に答える
814 参照

linker - Sun Solaris Studios 12.2 のリンカー (ld) はどこにありますか?

現在、リンクの目的で、SPARC マシンの次のディレクトリにプリインストールされているリンカーを使用しています。

アプリケーションを Sun Studios Compiler 12.2 でコンパイルしたいので、このパッケージに付属しているリンカーも使用したいと考えています。ただし、Sun Studios の bin ディレクトリを確認すると、ac コンパイラ (cc) だけが見つかりますが、ld (リンカー) は見つかりません。これがどこに行ったのか、どうすればそれを呼び出すことができるのか誰にも分かりませんか?

どうもありがとう、マイク

0 投票する
3 に答える
4653 参照

c - 「未定義シンボル_memset」

私は同様の質問をしましたが、本当に混乱している更新があります。基本的に、次のようにリンカーを使用して多数のオブジェクト ファイルをリンクしたいと考えています。

次のエラーが表示されます。

興味深いのは、memset が reconf.c で参照されておらず、ディレクトリ全体も grep しましたが、他のどのファイルにも _memset への参照がないことです。したがって、ソース コードのどこにも _memset が実際に使用されていないのに、なぜリンカからこのエラー メッセージが表示されるのか不思議に思っています。ここで何が起こっているのか誰にもわかりませんか?

どうもありがとう、このエラーは私たちを精神的に駆り立てています!

編集:

memset のライブラリへのパスを追加して -lc にリンクし、詳細モードで実行しようとしました。

次に、次のエラーが表示されます: ld: 致命的: ライブラリ -lc: 見つかりません ld: 致命的: ファイル処理エラー。q に出力が書き込まれません

そしてこれ libc.so は明らかに /usr/lib にありますが...

紛らわしい

編集II:

ここで読むことができるように、さらに調査を行うと、Solaris 10 では静的リンクが消えたようです。

http://blogs.oracle.com/rie/entry/static_linking_where_did_it

おそらくこれは私の問題です。この問題を回避するためにリンカー コマンドを書き直す方法を知っている人はいますか?

どうもありがとう!

0 投票する
0 に答える
99 参照

linux-kernel - OpenBoot クライアントプログラムのロードアドレスと

Web をブラウジングして OpenBoot と SPARCv9 プロセッサに関する情報を探していると、クライアント プログラムが OpenBoot によって 0x4000[1] にロードされていることがわかりました。このアドレスが使用される理由。また、実際の sparc マシンでダンプを実行しようとすると、メモリの最初の 8kb 程度 (0x0 から 0x2000 まで) で高速データ アクセス MMU ミスが発生するため、これはメモリ マップド IO 程度であると推測されますが、その (0x2000 ~ 0x4000) はゼロで埋められます。したがって、OPB が格納されている場所があるという答えはあり得ないと思います (実際には、このマシンでは 0xf0055310 にあります)。

そして、私がまだこの主題について話している間。Linux Kernel for SPARC が、以前に SILO によって 0x4000 から 0x40004000 に再配置された後、別のアドレスに再配置されるのはなぜですか? Linux/その他のクライアントプログラムのロード中のSILOおよびOBP出力を除いて、これはどこにも見つかりませんでした。

[1] http://wiki.osdev.org/UltraSPARC