問題タブ [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 - DNSサーバーを選択できるgethostbynameの代わりに?
アプリケーションからいくつかのホスト名を解決する必要があります。gethostbynameの代わりに、リゾルバーとして使用する独自のDNSサーバーをパラメーターとして指定できるものはありますか?
私はすでに自分の関数をコーディングしましたが、私が知らない関数があるかもしれないと思いました。
Linux/C言語を使用しています。私のlibcはuclibcです。しかし、GNULibCについても興味があります。
ありがとう。
haskell - GHC は uclibc (デフォルトで OpenWrt で使用される) などの libc 実装に対してバイナリをリンクできますか?
Debian/MIPS+QEMU を使用して、PortFusion (TCP トンネリング ソリューション) の MIPS ポートを構築しています。結果のバイナリは、GNU libc に対してリンクされます。したがって、 eglibc (GNU libc とバイナリ互換性があるようです)の代わりにuclibcに同梱されているバニラの OpenWrt でそれらをコピーして使用することはできません。
eglibcの代わりにuclibcに対して Debian/MIPS 上の Haskell/GHC バイナリをリンクする方法はありますか?
OpenWrt がuclibcを使用していることが、Debian からコピーされた PortFusion バイナリの実行に失敗する本当の理由でしょ
-ash: binary not found
うか?それとも、このメッセージはまったく別の理由によるものでしょうか?
Linux カーネルと CPU エミュレーションが使用される詳細については、https://github.com/corsis/PortFusion/wiki/MIPS-Buildsを参照してください。haskell-platform
代わりにeglibcmake
を使用するカスタム OpenWrt イメージをビルドしようとすると、OpenWrt の GIT リポジトリの現在のヘッドが失敗します。
gcc - MIPS-I バージョン 1 用のクロスコンパイラのセットアップ
MIPS-I バージョン 1 ターゲット用にコンパイルするクロス コンパイラを探していたところ、次のものが見つかりました。
ftp://ftp.dd-wrt.com/others/sourcecode/toolchains/current-toolchains.tar.bz2
アーカイブの抽出後、「toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1」フォルダーを /opt/ にコピーし、次のように PATH を /root/.profile ファイルに追加しました。
PATH="/opt/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin:${PATH}" export PATH
その後、ログアウトしてログインし、すべて問題ないと思っていましたが、そうではありませんでした。
単純なアプリをコンパイルすることさえできません。dhcp-3.x のコンパイル試行によって生成される出力例を次に示します。
どうしたの ?まだ何か設定する必要がありますか? 問題を解決するには?
c - リアルタイムのLinuxアプリケーションプログラミングのためのuClibcとglibc
Linux(Kernel 3.0)上で実行されるユーザースペースオーディオアプリケーションを作成していますが、リアルタイムの動作が必要です。glibcまたはuClibCを使用する必要がありますか?uClibCとglibcは、リアルタイムの動作に関してどのように比較されますか?
(編集:私のものはnandフラッシュを備えた組み込みシステムです。glibcを備えた外部gccツールチェーンでbuildrootを使用します。必要に応じてuClibcでbuildroot内部ツールチェーンを使用することもできます)
c++ - buildrootファイルシステムとクロスコンパイル:動的にリンクされたアプリケーションは失敗しますが、静的には問題ありません。uClibcに対してリンクする方法
buildrootで作成されたファイルシステムがあり、lighttpdサーバーでcコードを実行しようとしています。
数行のhtmlを出力するだけの単純なCモジュールを作成しました。コードは次のようになります。
Ubuntuリポジトリのコンパイラを使用してコンパイルしていarm-linux-gnueabi-gcc -o test.cgi test.c
ます。フラグを付けてコンパイルすると-static
、問題なく実行され、表示されたhtmlを確認できます。しかし、静的フラグなしでコンパイルすると、実行は次のように失敗します。
理由が間違っているのかどうか疑問に思っています。c-libraryです。buildrootによってコンパイルされたuClibcに対してリンクする必要があります。私のbuildrootフォルダーoutput/host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/lib
には、次のファイルがあります。
libuClibc-0.9.33.2.so
私が探しているファイルはありますか?アプリケーションをそれに対してリンクするにはどうすればよいですか?
私のターゲットボードでは、これを見ることができます/usr/lib
c - st_mtimensec not available in struct stat
I'm trying to compile Evas for the host mipsel-linux-uclibc. I'm using an old binary toolchain from my company to do it. It was compiled around 2008 and I'm kinda stuck with it right now. Looks like this toolchain is missing the following field in the struct stat of stat.h:
The closest thing that I have is:
Looks like this is related to uclibc. Is there an easy way out of this?
gcc - カスタム MIPS ツールチェーンと abicall に関する問題
私は、MIPS32 アーキテクチャ (リトル エンディアン) に焦点を当てたプロジェクトに取り組んでいます。ベンダーは、組み込み Linux バージョンを対象とする私のプロジェクトをコンパイルするための GNU ツールチェーンを提供してくれました。すべて問題なく動作します。GCC+Linux+uClibc ツールチェーンです。
ただし、最近、uClibc ビルドにいくつかの機能を追加する必要があったため、ベンダーのツールチェーンを自分のボックスで複製しようとしました。
crosstool-ng の助けを借りてすべてが正常に機能しましたが、プロジェクトをコンパイルしようとすると、あちこちで奇妙なリンカ警告が表示されます。
私が調査したところ、これらはかなり重大な警告です。オブジェクト ファイルを readelf で分析すると、ほぼ同じ出力が得られます。これらのファイルのどこにも .abicall セクションはありません。これは、プロジェクトのオブジェクト ファイルとツールチェーンのオブジェクト ファイルの両方に当てはまります。
ここで何が問題なのですか?これのデバッグをどこから開始すればよいかさえわかりません。
linux - SVC ARM 命令 (gcc、ulibc、buildroot) を無効にする方法は?
ビルドルートを使用しています。コンパイルは正常に機能しますが、ターゲット システムのバイナリには「不正な命令」と表示されます
私はstraceを使用しました:
execve("/opt/busybox", ["/opt/busybox"], [/* 8 変数 */]) = 0 brk(0)
= 0 --- SIGILL {si_signo=SIGILL, si_code=ILL_ILLTRP, si_addr= 0xa3f20} --- +++ SIGILL によって強制終了 +++ 不正な命令
次にIDA。
その理由は SVC 命令です (si_addr は、私が試したすべてのバイナリでそれを指していました)
GCC でこの命令を使用しないようにするにはどうすればよいですか?
x86 - クロスコンパイルされた Valgrind は明らかなリークを検出しません
Valgrind を openwrt x86 プラットフォームにクロスコンパイルしました。ターゲットで実行している場合、リークは検出されません。Ubuntu では問題なく動作します。
私のテストプログラムは簡単です
関連するコンパイル手順
静的にリンクされていません。objdump はそれを確認します
ターゲットの x86 ボードでの valgrind の出力は次のとおりです。