新千葉 ガーベージ・コレクション

FPGA マガジンやインターフェースで書けなかったこと等をちょぼちょぼ書いてます。@ryos36

peta 使わない

                                                                            • -

おしい!!
/home/ryos/FPGA_Linux/install/mb-uclinux/lib/gcc/microblaze-uclinux/4.1.2/../../../../microblaze-uclinux/bin/ld: unrecognised emulation mode:
Supported emulations: elf32microblaze

g++ の -lm も同じ理由でしょう。

これが ld/Makefile
EMUL =
EMULATION_OFILES = eelf32microblaze.o
EMUL_EXTRA_OFILES =

つまり target 名が悪くて ld の configure で何を生成したらいいか
わからなかったということ。じゃぺ田番場やってみよう。
ペタ版はさっき確認したら修正が入っていた。

ld/configure.tgt だね
microblazeel*-linux*)
targ_emul=elf32mbel_linux
targ_extra_emuls="elf32microblaze elf32mb_linux"
;;
microblaze*-linux*)
targ_emul=elf32mb_linux
targ_extra_emuls="elf32microblazeel elf32mbel_linux"
;;
microblazeel*)
targ_emul=elf32microblazeel
targ_extra_emuls="elf32microblaze"
;;
microblaze*)
targ_emul=elf32microblaze
targ_extra_emuls="elf32microblazeel"

                                                                            • -

microblaze-unknown-uclinux-uclibc でいけることがわかった。
peta に頼る必要なし。

根性だ。もう一度。

../../../mb_gnu/src/binutils/configure --prefix=/home/ryos/FPGA_Linux/install/mb-uclinux --target=microblaze-unknown-uclinux-uclibc --with-sysroot=/home/ryos/FPGA_Linux/install/mb-uclinux/microblaze-unknown-uclinux-uclibc
ar の処理もした。
usr を cpio

../../../mb_gnu/src/gcc/configure --target=microblaze-unknown-uclinux-uclibc --prefix=/home/ryos/FPGA_Linux/install/mb-uclinux --enable-multilib --disable-libssp --enable-optimize-memory --enable-languages=c --disable-threads --with-sysroot=/home/ryos/FPGA_Linux/install/mb-uclinux/microblaze-unknown-uclinux-uclibc

ど〜〜ですか?

                                                                            • -

めちゃくちゃおしい。
rem:test> microblaze-unknown-uclinux-uclibc-gcc test.c
/home/ryos/FPGA_Linux/install/mb-uclinux/lib/gcc/microblaze-unknown-uclinux-uclibc/4.1.2/../../../../microblaze-unknown-uclinux-uclibc/bin/ld: cannot open linker script file xilinx.ld: No such file or directory

えーい xilinx.ld を cp

rem:test> microblaze-unknown-uclinux-uclibc-gcc test.c
/home/ryos/FPGA_Linux/install/mb-uclinux/lib/gcc/microblaze-unknown-uclinux-uclibc/4.1.2/../../../../microblaze-unknown-uclinux-uclibc/bin/ld: crt0.o: No such file: No such file or directory
collect2: ld returned 1 exit status
あ!! xilkernel の環境になってしまうのか、、、、

どうやら gcc がそうしているようだ。
gccxilinx.ld を要求しているようだ。

mb_gnu/src/gcc/gcc/config/microblaze
rem:microblaze> grep xilinx *
microblaze.h:%{mxl-gp-opt:%{G*}} %{!mxl-gp-opt: -G 0} %{!Wl,-T*: %{!T*: -T xilinx.ld%s}}"

どうやら LINKSPEC に手を入れる必要があるみたいだ。
microblaze.h に手を入れ始めた、、、、
これは方向性に誤りがあるな、、、

gcc の中に
linux-uclibc がある
case ${target} in