問題タブ [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.

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

c - DNSサーバーを選択できるgethostbynameの代わりに?

アプリケーションからいくつかのホスト名を解決する必要があります。gethostbynameの代わりに、リゾルバーとして使用する独自のDNSサーバーをパラメーターとして指定できるものはありますか?

私はすでに自分の関数をコーディングしましたが、私が知らない関数があるかもしれないと思いました。

Linux/C言語を使用しています。私のlibcはuclibcです。しかし、GNULibCについても興味があります。

ありがとう。

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

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 リポジトリの現在のヘッドが失敗します。

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

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 のコンパイル試行によって生成される出力例を次に示します。

http://pastebin.com/MPMwirhg

どうしたの ?まだ何か設定する必要がありますか? 問題を解決するには?

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

c - リアルタイムのLinuxアプリケーションプログラミングのためのuClibcとglibc

Linux(Kernel 3.0)上で実行されるユーザースペースオーディオアプリケーションを作成していますが、リアルタイムの動作が必要です。glibcまたはuClibCを使用する必要がありますか?uClibCとglibcは、リアルタイムの動作に関してどのように比較されますか?

(編集:私のものはnandフラッシュを備えた組み込みシステムです。glibcを備えた外部gccツールチェーンでbuildrootを使用します。必要に応じてuClibcでbuildroot内部ツールチェーンを使用することもできます)

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

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

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

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?

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

gcc - カスタム MIPS ツールチェーンと abicall に関する問題

私は、MIPS32 アーキテクチャ (リトル エンディアン) に焦点を当てたプロジェクトに取り組んでいます。ベンダーは、組み込み Linux バージョンを対象とする私のプロジェクトをコンパイルするための GNU ツールチェーンを提供してくれました。すべて問題なく動作します。GCC+Linux+uClibc ツールチェーンです。

ただし、最近、uClibc ビルドにいくつかの機能を追加する必要があったため、ベンダーのツールチェーンを自分のボックスで複製しようとしました。

crosstool-ng の助けを借りてすべてが正常に機能しましたが、プロジェクトをコンパイルしようとすると、あちこちで奇妙なリンカ警告が表示されます。

私が調査したところ、これらはかなり重大な警告です。オブジェクト ファイルを readelf で分析すると、ほぼ同じ出力が得られます。これらのファイルのどこにも .abicall セクションはありません。これは、プロジェクトのオブジェクト ファイルとツールチェーンのオブジェクト ファイルの両方に当てはまります。

ここで何が問題なのですか?これのデバッグをどこから開始すればよいかさえわかりません。

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

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 でこの命令を使用しないようにするにはどうすればよいですか?

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

x86 - クロスコンパイルされた Valgrind は明らかなリークを検出しません

Valgrind を openwrt x86 プラットフォームにクロスコンパイルしました。ターゲットで実行している場合、リークは検出されません。Ubuntu では問題なく動作します。

私のテストプログラムは簡単です

関連するコンパイル手順

静的にリンクされていません。objdump はそれを確認します

ターゲットの x86 ボードでの valgrind の出力は次のとおりです。