私はOpenWebOSをビルドしようとしており、build-webosGitHubREADMEに示されている計画に従っています。新しい32ビットUbuntu12.10インストールを使用しています。物事は少しでこぼこです。
しかし、あちこちで微調整を行うことで、エラーが発生する前に、2500または(またはその他)のうちステップ350に到達することができました。問題はglibcの構築の依存関係であり、それは不平を言っています
(...)/sysdeps/i386/start.S:107: undefined reference to `__libc_csu_fini'
(...)/sysdeps/i386/start.S:108: undefined reference to `__libc_csu_init'
Webを検索すると、glibc自体を構築していないときにこれが発生するさまざまなケースが明らかになります。
ldの不満:関数 "_start"で、"__libc_csu_fini"および"__libc_csu_init"への未定義の参照
Cプログラムをldに直接リンクすると、`__libc_csu_fini`への未定義の参照で失敗します
ただし、これはカスタムEmbedded LIBCのビルド中です:eglibc。ですから、それは少し異なり、私が見つけることができる最も近いケースは、OpenEmbeddedリストのこの2009年のスレッドです。紛らわしいほど奇妙なWebOSビルド構造の紛らわしい「bakefile」を含むユニバースでパッチを実行する方法がわかりません。
失敗しているコマンドラインのモンスター私は少し以下に「単純化」します:
gcc -m32 -march = i586 --sysroot = / home / webos / build-webos / BUILD-qemux86 / sysroots / qemux86-tcbootstrap -nostdlib -nostartfiles -o iconv / iconvconfig -Wl、-dynamic-linker = / lib / ld -linux.so.2 -Wl、-z、combreloc -Wl、-z、relro -Wl、--hash-style = both csu / crt1.o csu / crti.o `gcc -m32 -march = i586- sysroot = / home / hostilefork / Projects / webos / build-webos / BUILD-qemux86 / sysroots / qemux86-tcbootstrap --print-file-name = crtbegin.o` iconv / iconvconfig.o iconv / strtab.o iconv/xmalloc。 o iconv / hash-string.o -Wl、-rpath-link = / home / webos / build-webos / BUILD-qemux86 / work / i586-webos-linux / eglibc-2.16-r15 + svnr20393 / build-i586-webos -linux:math:elf:dlfcn:nss:nis:rt:resolv:crypt:nptl libc.so.6 libc_nonshared.a -Wl、--必要に応じてelf / ld.so -Wl、--no-as-needed -lgcc `gcc -m32 -march = i586 --sysroot = / home / webos / build-webos / BUILD-qemux86 / sysroots / qemux86-tcbootstrap --print-file-name = crtend.o `csu / crtn.o
ディレクトリにlibc.aファイルとlibc_nonshared.aファイルがあります。非共有バージョンについての言及はありません__libc_csu_init
が__libc_csu_fini
、通常のlibc.aにあります。これは、人々が真実であるかのように振る舞うように見えることから逆に思えます/usr/lib/i386-linux-gnu
が、Ubuntuに付属しているものを調べると、共有バージョンと非共有バージョンの両方がそれについて言及しています。うーん。
誰かがこれを読んで「ねえ、何が起こっているのか知っているに違いない!」それは気の利いたでしょう。:-)