問題タブ [uclibc]
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.
c++ - uclibc Linux でブーストを使用できますか?
uclibc ベースのシステムでブースト ライブラリを使用する C++ アプリケーションを実行した経験のある人はいますか? それは可能ですか?どの C++ 標準ライブラリを使用しますか? uclibc++ はブーストで使用できますか?
linux - uclibc のバックトレースの利用可能な移植はありますか?
ARM 9 で uclibc Linux を実行しています。問題は、uclibc がバックトレースをサポートしていないことです。コア ダンプが発生すると、コール スタックを取得できません。
誰かがそれに対する良い解決策を持っていますか?
たとえば、uclibc のバックトレースの既存の移植、またはコア ダンプが発生したときにコール スタックを取得するための適切な方法 (uclibc + ARM + Linux) はありますか?
multithreading - ucLibc の malloc スレッドは安全ですか?
ucLibc の malloc スレッドは安全ですか?
c - 1 つのシステムで Glibc と uClibc を並べて表示
glibcとuClibcベースのアプリケーションを 1 つのシステムで並行して実行することはできますか?
背景: uClibc とリンクするように構成されたバイナリ gcc ベースのクロスコンパイラがあります。glibc をクロスコンパイルしました。ここで、uClibc ではなく glibc とリンクするようにいくつかのアプリケーションを構築したいと考えています。コンパイラを再構築したくありません。
c - math.h 関数の純粋な c バージョンを探しています (コプロセッサのサポートなし)
Cソースで静的に動作する(半)自動検証ソフトウェア(CBMC (リンク) )を使用する必要があります。浮動小数点はサポートされていますが、すべての数学関数の定義はありません。それを使って数値計算ソフトウェアをチェックできるかどうかをチェックしようとしています。
だから私はこれらの機能が必要です。コプロセッサを使用しない定義を探していmath.h
ます(例: sqrt
、pow
、剰余、tan
; int
/ float
/ double
)。
いくつかの Linux ディストリビューション (おそらく今は eglibc) に同梱されている libc でそれを探したとき、たとえばハードウェアの sqrt 関数を意味するプロセッサ組み込み関数がいくつかあるポイントに常に到達しました。
パート 1: ソフトウェア実装の検索
私が必要としているのは、次の特性を持つ数学関数をサポートするライブラリです。
- IEEE 浮動小数点がサポートされていますが、純粋に整数で動作するライブラリも素晴らしいでしょう。
- 正確さは重要な要素です。(一部の情報源に隠されている特殊なケースの既知のバグはそれほどクールではありません)。結果は、IEEE-754 に関しても正しいはずです (例: sqrt のルール)。
- コプロセッサ呼び出しを使用しません。純粋なソフトウェア。C が推奨されますが、asm でもかまいません。
これまで、さまざまな libc 実装、特に組み込みシステムに関するものを少し探してきました。これらのライブラリのほとんどは、コンパイルされたプログラムの移植性とサイズをターゲットにしていると思いますが、プロセッサ固有の命令を使用しているかどうかを判断するのは困難です。
- ** fdlibmは、一見、純粋なソフトウェア定義をいくつか持っているように見えます。これをさらに検査します。ただし、ソースにはいくつかのバグが記載されています (コードは標準ではありません)。
- ** newlibは同じ定義を持っているようです (Sun Microsystems のコードに基づく)。しかし、これらのソフトウェア バージョンが常に使用されているかどうかは、現時点でははっきりとは言えません。そのため、現時点では見られないコプロセッサ コールがいくつかある可能性があります (パート 2 を参照)。
- ** uClibcは newlibと特徴を共有しているようです。
パート 2: これらの実装の構造を理解する
これらの数学ライブラリの構造を簡単に紹介してくれませんか。さまざまなバージョン (特定のコプロセッサなど) はどのようにディスパッチされますか?
そして、ファイル名のこれらの異なる接頭辞の意味は何ですか.
e_sqrt.c
、k_sin
、s_sin
?
私にとって有用なライブラリについて教えていただければ幸いです。私はライブラリをそのまま使用することを好みますが、必要な場合は、いくつかの単一関数の実装を探して、小さなライブラリを構築することもできます。math.h で定義されているすべての関数を使用するわけではありません。
thisおよびthis SO-posts は、Java Math 実装がfdlibmに基づいている/だったと言っています。これは、このライブラリが進むべき道であるように聞こえます。私が知っておくべきこのライブラリについてもっと情報を持っている人はいますか?
次の2つを含む多くの可能性があるようです:
- glibc を使用し、ソフトウェア モードでコンパイルします。問題は、(configure で) 自動システム チェック ツールを使用できないことです。すべての情報を手動で提供する必要があります。fp コプロセッサーの使用を禁止し、simd 操作を禁止するフラグはありますか? fp-without から始める必要があり、コンパイルするとソフトフロートも使用されます。コンパイルプロセスは、多かれ少なかれホストの特定の決定に依存していると思います(アームなど)。
- fdlibm を使用します(現時点では推奨)。問題: プログラムをリンクするにはどうすればよいですか? assert のような非 libm 関数が必要ですが、インストールされている system-libm ではなく、私の fdlibm に対してリンクしたい (したがって、-nodefaultlibs は assert の使用を禁止します)。
linux - x86 からの MIPS ルーターのクロスコンパイル
私の最終的な目標は、古い Actiontec モデム/ルーター用のワイヤレス ツールをコンパイルして、ワイヤレスからイーサネットへのブリッジとして構成できるようにすることです。現在、ワイヤレス機能は、ほとんどの Web インターフェイスを管理する同じバイナリによって (一見) 制御されていますが、少なくとも一部の機能については、ワイヤレス ツールが内部で使用するライブラリを使用しているようです。
これまで別の CPU アーキテクチャ用にクロス コンパイルしたことがなく、何をする必要があるかを完全に特定する方法がわかりません。システムの残りの部分で使用されているように見えるので、uClibc を使用しようとしていますが、モデム環境用に buildroot を構成する方法がわかりません。以下の proc からの情報に基づいて構成がどうあるべきかについて最善の推測をしましたが、それでコンパイルされた 0 のみを返す単純な C アプリケーションは正しく実行されないため、何かが間違っています。
glibc - glibc でコンパイルされたプログラムは、uClibc を使用して Linux で実行できますか?
glibc を使用してコンパイルされたプログラムがあり、uClibc を使用して Openwrt ファームウェアを備えた MIPS ターゲットで実行する必要があります。これは可能ですか?プログラムを Openwrt に入れましたが、実行しようとすると、結果は見つかりませんでした。
何が問題ですか?
ありがとうございました。
gcc - uClibc 静的コンパイルに関する質問
ARM ベースのシングル ボード コンピューター用にクロス コンパイルしようとしています。ボード用に設計された uClibc ツールチェーンを使用しています。私は ROM サイズに関して非常にスペースが限られているので、バイナリ サイズを念頭に置いてコンパイルしようとしています。(メモリフットプリントは問題ではありません)
現在、次のようなコマンドを使用してコンパイルしています。
現在、埋め込みターゲットに保存されていないいくつかのライブラリを静的にリンクする必要があります。ただし、ボード上には、プログラムが動的にリンクできる共有ライブラリ ld-uClibc.so.0 が 1 つあります。
私が理解しようとしているのは、ld-uClibc.so.0 を動的にリンクし、必要な残りのライブラリを静的にリンクする方法です。