Microblaze GNU Toolchain
Die bisherige Nutzung der Microblaze GNU Toolchain aus PetaLinux ist kein legaler Weg, da die Auslieferung dieser speziellen Toolchain nicht frei und offen ist (Grenzfall, da die zugrunde liegenden Quellen eigentlich frei sind, die durch PetaLogix erzeugten Binaries aber nicht unbedingt).
Ergebnisse:
Mit der Veröffentlichung der Patches für die GNU Binutils, den GCC und die GLIBC auf http://git.monstr.eu/git/gitweb.cgi bestand erstmalig die Möglichkeit, auf Basis von Crosstool-NG in Version 1.4.1 eine eigene Microblaze GNU Toolchain zu erzeugen. Eine Anleitung findet sich auf der Seite Microblaze Toolchain. Diese wird dann den weiteren Entwicklungsergebnissen angepasst. — Stephan Linz 2011/11/03 19:59
Als Aufgaben standen hier folgende an:
- Qualifizierung der von Xilinx bereit gestellten Toolchain
- Versuch die von Xilinx bereit gestellte Toolchain mit der GNU Libc zu verbinden (eigentlich nur für NewLib im EDK gedacht)
- Qualifizierung der verschiedenen Toolchains von der Xilinx GNU Ressource Site
- Qualifizierung der von PetaLogix (monstr.eu) bereit gestellten Toolchain
- Qualifizierung der von GNU Radio Tools bereitgestellten Toolchain
- Qualifizierung der von embox bereitgestellten Toolchain
- Qualifizierung der ersten offiziellen GNU Portings von Michael Eager
Folgende Konstellation scheint realistisch zu sein:
- gdb-6.5 (6.5.0.20060626-cvs)
Entwicklung ging Mainline bei folgenden Versionen, mit Stand vom: :
Aktuelle Entwicklung steht bei:
- binutils-2.21.1
- gcc-4.6.2
- glibc-2.14
- gdb-7.3.1
Patchsets Xilinx
Die folgenden Patches wurden laut build.log Datei zum Erstellen der Xilinx Toolchain benutzt. Die Herkunft und der Verbleib sind z.Z. noch unbekannt. Wenn notwendig werde ich wohl deshalb John Linn nochmal direkt kontaktieren.
binutils-2.16
- 100-elf-max-page-size.patch – patching file:
- bfd/elf32-microblaze.c
gcc-4.1.2
- 100-target-libs-bluecat-junk.patch – patching file:
- configure
- configure.in
- 110-no-crti-crto-objects.patch – patching file:
- gcc/config/microblaze/t-microblaze
- 130-libstdc++-pic.patch – patching file:
- libstdc++-v3/src/Makefile.am
- libstdc++-v3/src/Makefile.in
glibc-2.3.6
- 240-make-install-lib-all.patch – patching file:
- Makerules
gdb-6.5
- 120-thread-timeout.patch – patching file:
- gdb/gdbserver/thread-db.c
- 130-fix-compile-flag-mismatch.patch – patching file:
- gdb/configure
- gdb/gdbserver/configure
- gdb/testsuite/configure
- Makefile.in
- Makefile.tpl
- readline/Makefile.in
Patchsets PetaLogix
Die folgenden Patches wurden laut build.log Datei zum Erstellen der PetaLogix Toolchain benutzt. Die Herkunft und der Verbleib sind z.Z. noch unbekannt. Wenn notwendig werde ich wohl John Williams mal direkt kontaktieren.
binutils-2.16.1
- 001-microblaze.patch – patching file:
- binutils/readelf.c
- 002-microblaze.patch – patching file:
- gas/config/tc-microblaze.c
- 003-microblaze-Add-as-instr-separator.patch – patching file:
- gas/config/tc-microblaze.c
- 004-microblaze-Fix-how-segments-are-identified.patch – patching file:
- gas/config/tc-microblaze.c
- 005-microblaze-Replace-debug-by-asserts.patch – patching file:
- bfd/elf32-microblaze.c
- 006-microblaze-Add-sections-to-ldscript.patch – patching file:
- ld/scripttempl/elfmicroblaze.sc
- ld/scripttempl/elfmicroblaze.sc.orig (???)
- 007-microblaze-Fix-.vectors-sections-in-inbuilt-ldscript.patch – patching file:
- ld/scripttempl/elfmicroblaze.sc
- 008-microblaze-Replace-debug-by-asserts.patch – patching file:
- bfd/elf32-microblaze.c
- bfd/elf32-microblaze.c.orig (???)
- 009-microblaze-Fix-zero-size-malloc.patch – patching file:
- bfd/elf32-microblaze.c
- bfd/elf32-microblaze.c.orig (???)
- 010-microblaze-Simple-patch-to-fix-lin64-type-mismatches.patch – patching file:
- gas/config/tc-microblaze.c
- opcodes/microblaze-opc.h
- 011-microblaze-More-lin64-patches.patch – patching file:
- gas/config/tc-microblaze.c
- 012-microblaze-Fix-some-bugs-in-FSL-instruction-handling.patch – patching file:
- gas/config/tc-microblaze.c
- 013-microblaze-Fix-debug-loc.patch – patching file:
- bfd/elf32-microblaze.c
- 014-microblaze-Fix-relax-errors.patch – patching file:
- bfd/elf32-microblaze.c
- 015-microblaze-Remove-an-assertion-which-fails.-Need-to.patch – patching file:
- bfd/elf32-microblaze.c
- 016-microblaze-Fix-ld-handling-of-linker-scripts-passed.patch – patching file:
- 017-microblaze-Fix-DWARF-errors-in-objdump.patch – patching file:
- bfd/dwarf2.c
- 018-microblaze-Fix-bug-in-MICROBLAZE_64_PCREL-relocation.patch – patching file:
- bfd/elf32-microblaze.c
- gas/config/tc-microblaze.c
- 019-microblaze-Fix-to-use-fx_offset-scheme.patch – patching file:
- bfd/elf32-microblaze.c
- gas/config/tc-microblaze.c
- 020-microblaze-Fix-bugs-with-debug_loc-when-having-multi.patch – patching file:
- bfd/elf32-microblaze.c
- 021-microblaze-Reworked-PIC-patch.patch – patching file:
- gas/config/tc-microblaze.c
- gas/config/tc-microblaze.h
- include/elf/microblaze.h
- 022-microblaze-Create-.got-section-if-needed.patch – patching file:
- bfd/elf32-microblaze.c
- 023-microblaze-Fix-PLT-relocations.patch – patching file:
- bfd/elf32-microblaze.c
- gas/config/tc-microblaze.c
- 024-microblaze-Fix-max-allowed-values-with-msrclr-set-in.patch – patching file:
- opcodes/microblaze-opc.h
- opcodes/microblaze-opcm.h
- 025-microblaze-Remove-mb_elf_common.patch – patching file:
- gas/config/tc-microblaze.c
- gas/config/tc-microblaze.c.orig
- 026-microblaze-Don-t-gen-dup-line-table.patch – patching file:
- gas/dwarf2dbg.c
- 027-microblaze-Remove-assert.patch – patching file:
- bfd/elf32-microblaze.c
- 028-microblaze-Alloc-small-bss-data.patch – patching file:
- bfd/elf32-microblaze.c
- gas/config/tc-microblaze.c
- 029-microblaze-Added-GOTOFF-support.patch – patching file:
- include/elf/microblaze.h
- 030-microblaze-Linux-target-configuration-and-related-ch.patch – patching file:
- 031-microblaze-Support-for-COPY-reloc.patch – patching file:
- include/elf/microblaze.h
- 032-microblaze-Other-PIC-related-support.patch – patching file:
- bfd/elf32-microblaze.c
- 033-microblaze-Add-.rodata.patch – patching file:
- ld/scripttempl/elfmicroblaze.sc
- 034-microblaze-Convert-as_bads-to-as_fatal.patch – patching file:
- gas/config/tc-microblaze.c
- 035-microblaze-Get-correct-reloc-for-local-sym.patch – patching file:
- bfd/elf32-microblaze.c
- 036-microblaze-Fix-check-for-small-data.patch – patching file:
- gas/config/tc-microblaze.c
- 037-microblaze-Fix-relax-off-by-one-err.patch – patching file:
- bfd/elf32-microblaze.c
- bfd/elf32-microblaze.c.orig
- 038-microblaze-Fix-inconsistent-initialization-of-GOT_sy.patch – patching file:
- gas/config/tc-microblaze.c
- 039-microblaze-Complete-mb_uclinux-support-to-ld.patch – patching file:
- ld/Makefile.in
- 040-microblaze-Fix-ELF_MAXPAGESIZE.patch – patching file:
- bfd/elf32-microblaze.c
- 041-microblaze-binutils-Add-atomic-load-store-insns.patch – patching file:
- opcodes/microblaze-opc.h
- opcodes/microblaze-opcm.h
- 042-microblaze-binutils-add-wdc.flush-instr.patch – patching file:
- opcodes/microblaze-opc.h
- opcodes/microblaze-opcm.h
- 043-microblaze-binutils-add-wdc.clear-instruction.patch – patching file:
- opcodes/microblaze-opc.h
- opcodes/microblaze-opcm.h
- 044-microblaze-fix-weak-symbols.patch – patching file:
- gas/config/tc-microblaze.c
- 050-microblaze-little-endian.patch – patching file:
- config.sub
- 100-bfd-hash-tweak.patch – patching file:
- bfd/hash.c
- 110-psignal.patch – patching file:
- libiberty/strsignal.c
- 120-skip-comments.patch – patching file:
- gas/read.c
- 130-callahan.patch – patching file:
- 140-cross-gprof.patch – patching file:
- configure
- configure.in
- 150-stabs-tweak.patch – patching file:
- bfd/stabs.c
- 160-i386-no-divide-comment.patch – patching file:
- gas/config/tc-i386.c
gcc-4.1.2
- 0001-microblaze-Basic-port-patch.patch – patching file:
- config.guess
- config.sub
- 0002-microblaze-Port-patch.patch – patching file:
- 0003-microblaze-Port-patch.patch – patching file:
- gcc/config/microblaze/microblaze.h
- gcc/config/microblaze/microblaze.opt
- 0004-microblaze-Port-patch.patch – patching file:
- 0005-microblaze-Switches-to-microblaze.opt.patch – patching file:
- gcc/config/microblaze/microblaze.h
- gcc/config/microblaze/microblaze.opt
- 0006-microblaze-Remove-MASK_.patch – patching file:
- gcc/config/microblaze/microblaze.h
- 0007-microblaze-Mark-epilogue-insns-MAYBE_DEAD.patch – patching file:
- gcc/config/microblaze/microblaze.c
- 0008-microblaze-Fix-move_operand-constraint.patch – patching file:
- gcc/config/microblaze/predicates.md
- 0009-microblaze-Delete-obsolete-stuff.patch – patching file:
- 0010-microblaze-Fix-move_operand-predicate.patch – patching file:
- gcc/config/microblaze/predicates.md
- 0011-microblaze-Fix-crt-i-n-.asm-build.patch – patching file:
- gcc/config/microblaze/t-microblaze
- 0012-microblaze-Rename-crt-i-n-.asm-to-crt-i-n-.s.patch – patching file:
- gcc/config/microblaze/t-microblaze
- 0013-microblaze-Fix-asm_out_constr-asm_out_destr.patch – patching file:
- gcc/config/microblaze/microblaze.c
- 0014-microblaze-Updates-to-switches.patch – patching file:
- gcc/config/microblaze/microblaze.h
- gcc/config/microblaze/microblaze.opt
- 0015-microblaze-Updates.patch – patching file:
- gcc/config/microblaze/t-microblaze
- 0016-microblaze-Rewrite-savereg-macro.patch – patching file:
- gcc/config/microblaze/microblaze.c
- gcc/config/microblaze/microblaze.h
- 0017-microblaze-Replace-with-start-end.patch – patching file:
- gcc/config/microblaze/microblaze.h
- 0018-microblaze-Fix-libstdc-config.patch – patching file:
- 0019-microblaze-Generate-correct-stabs.patch – patching file:
- gcc/config.gcc
- 0020-microblaze-Fix-stabs-arg-offset.patch – patching file:
- gcc/dbxout.c
- 0021-microblaze-Remove-dup-dbx-flags.patch – patching file:
- gcc/config/microblaze/microblaze.h
- 0022-microblaze-Correct-bug-in-branch-gen.patch – patching file:
- gcc/config/microblaze/microblaze.c
- 0023-microblaze-Default-to-dwarf2-debug.patch – patching file:
- 0024-microblaze-Generate-DWARF-EH-frame.patch – patching file:
- gcc/config/microblaze/microblaze.h
- 0025-microblaze-Fix-flow-bug.patch – patching file:
- gcc/config/microblaze/microblaze.c
- 0026-microblaze-Fix-small-divides-opt.patch – patching file:
- gcc/config/microblaze/microblaze.opt
- 0027-microblaze-Fix-dwarf-configuration.patch – patching file:
- gcc/configure
- 0028-microblaze-Set-target-switch-defaults.patch – patching file:
- gcc/config/microblaze/microblaze.c
- gcc/config/microblaze/microblaze.h
- 0029-microblaze-Fix-options-passing-in-gcc.patch – patching file:
- 0030-microblaze-Align-arrays.patch – patching file:
- gcc/config/microblaze/microblaze.h
- 0031-microblaze-Put-small-strings-in-.sdata.patch – patching file:
- gcc/config/microblaze/microblaze.c
- 0032-microblaze-Don-t-generate-.loc.patch – patching file:
- gcc/config/microblaze/microblaze.h
- 0033-microblaze.patch – patching file:
- 0034-microblaze-Set-CIE-ret-addr-R15.patch – patching file:
- gcc/config/microblaze/microblaze.h
- 0035-microblaze-Fix-bug-with-save_volatiles.patch – patching file:
- gcc/config/microblaze/microblaze.c
- 0036-microblaze-Add-missing-prototypes-for-MicroBlaze.patch – patching file:
- 0037-microblaze-More-prototype-cleanups-for-MicroBlaze.patch – patching file:
- gcc/config/microblaze/microblaze.c
- gcc/config/microblaze/microblaze.c.orig
- 0038-microblaze-Fix-bug-in-GCC-processing-of-Wl-T.patch – patching file:
- gcc/gcc.c
- gcc/gcc.c.orig
- 0039-microblaze-Change-ldscript-mechanism.patch – patching file:
- gcc/config/microblaze/microblaze.h
- 0040-microblaze-Fix-DWARF-return-address-in-debug-data.patch – patching file:
- gcc/config/microblaze/microblaze.h
- gcc/config/microblaze/microblaze.h.orig
- 0041-microblaze-Fix-bug-with-passing-arguments-via-regis.patch – patching file:
- gcc/config/microblaze/microblaze.c
- 0042-microblaze-No-longer-pass-in-the-N-option-to-the-l.patch – patching file:
- gcc/config/microblaze/microblaze.h
- 0043-microblaze-Reworked-PIC-patch.patch – patching file:
- 0044-microblaze-Promote-return-values.patch – patching file:
- gcc/config/microblaze/microblaze.c
- 0045-microblaze-Don-t-flush-cache-in-trampoline.patch – patching file:
- gcc/config/microblaze/microblaze.h
- 0046-microblaze-Output-ascii-correctly.patch – patching file:
- gcc/config/microblaze/microblaze.c
- 0047-microblaze-Move-DFmode-PIC-patch.patch – patching file:
- gcc/config/microblaze/microblaze.c
- gcc/config/microblaze/microblaze.md
- 0048-microblaze-Clean-up-block-move-handling.patch – patching file:
- 0049-microblaze-No-multilib-in-libgloss-newlib.patch – patching file:
- Makefile.in
- 0050-microblaze-Pass-sbss-size-to-linker.patch – patching file:
- gcc/config/microblaze/microblaze.h
- 0051-microblaze-Fixed-table-jump-in-PIC-mode.patch – patching file:
- 0052-microblaze-Linux-target-configuration-and-related-c.patch – patching file:
- 0053-microblaze-Revert-the-gcc-4.1.1_Noption.patch.patch – patching file:
- gcc/config/microblaze/microblaze.h
- 0054-microblaze-Fix-return-address-RTX.patch – patching file:
- gcc/config/microblaze/microblaze.h
- 0055-microblaze-Fixed-CALL_STATIC-and-use-rtx-for-PIC.patch – patching file:
- 0056-microblaze-Fix-bug-with-__divsi3-and-clean-up-code.patch – patching file:
- gcc/config/microblaze/divsi3.asm
- gcc/config/microblaze/udivsi3.asm
- 0057-microblaze-Added-.type-directive-for-functions.patch – patching file:
- gcc/config/microblaze/microblaze.c
- 0058-microblaze-PIC-fixes-for-stack_overflow_exit.asm.patch – patching file:
- gcc/config/microblaze/stack_overflow_exit.asm
- 0059-microblaze-Added-.type-size-directives-for-libgcc-f.patch – patching file:
- 0060-microblaze-Retrofit-usmulm-support-into-GCC-4.1.1.patch – patching file:
- 0061-microblaze-Add-usmulsi3_highpart-pattern-to-MB.patch – patching file:
- gcc/config/microblaze/microblaze.md
- 0062-microblaze-Cleanup-section-assignments-in-GCC.patch – patching file:
- 0063-microblaze-Cleanup-various-obsolete-ASM-definitions.patch – patching file:
- gcc/config/microblaze/microblaze.c
- gcc/config/microblaze/microblaze.h
- 0075-microblaze-no-libmudflap.patch – patching file:
- configure
- configure.in
- 0076-microblaze-no-crti-crto.patch – patching file:
- gcc/config/microblaze/t-microblaze
- 0077-microblaze-mcount-pg.patch – patching file:
- gcc/config/microblaze/microblaze.h
- 0078-microblaze-add-missing-func-prototypes.patch – patching file:
- 0079-microblaze-64bit-2movefix.patch – patching file:
- gcc/config/microblaze/microblaze.c
- 0080-microblaze-sjlj-got-reload.patch – patching file:
- gcc/config/microblaze/microblaze.md
- 0081-microblaze-adddi3-64bit-fix.patch – patching file:
- 0090-microblaze-little-endian.patch – patching file:
- config.sub
- configure
- gcc/config.gcc.orig (???)
- 100-uclibc-conf.patch – patching file:
- boehm-gc/configure
- configure
- configure.in
- contrib/regression/objs-gcc.sh
- libffi/configure
- libgfortran/configure
- libjava/configure
- libmudflap/configure
- libobjc/configure
- libtool.m4
- ltconfig
- zlib/configure
- 110-arm-eabi.patch – patching file:
- gcc/config.gcc
- gcc/config/arm/linux-eabi.h
- 120-uclibc-locale.patch – patching file:
- 130-<nowiki>libstdc++</nowiki>-pic.patch – patching file:
- libstdc++-v3/src/Makefile.am
- libstdc++-v3/src/Makefile.in
- 140-missing-execinfo_h.patch – patching file:
- boehm-gc/include/gc.h
- 150-c99-snprintf.patch – patching file:
- libstdc++-v3/include/c_std/std_cstdio.h
- 160-c99-complex-ugly-hack.patch – patching file:
- libstdc++-v3/configure
- 170-index_macro.patch – patching file:
- libstdc++-v3/include/ext/rope
- libstdc++-v3/include/ext/ropeimpl.h
- 180-libbackend_dep_gcov-iov.h.patch – patching file:
- gcc/Makefile.in
- 190-sh-pr24836.patch – patching file:
- gcc/configure.ac
- gcc/configure
- 200-arm-bigendian.patch – patching file:
- 210-softfloat-fix.patch – patching file:
- gcc/config.gcc
- gcc/config/arm/linux-elf.h
glibc-2.3.6
- 001-microblaze-glibc.patch – patching file:
- configure
- elf/elf.h
- scripts/config.sub
- so_scripts/libc.so
- so_scripts/libpthread.so
- 002-microblaze-linuxthreads.patch – patching file:
- 005-more-glibc-hacking.patch – patching file:
- 006-and-more-hacking.patch – patching file:
- 009-microblaze-Use-separate-syscalls-instead-of-sys_ipc.patch – patching file:
- 010-microblaze-sys-inotify.h.patch – patching file:
- 011-microblaze-mcount.patch – patching file:
- 012-microblaze-signalhandler-3rd-arg-ucontext.patch – patching file:
- sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h
- 013-fix-get_schedaffinity-syscall.patch – patching file:
- sysdeps/unix/sysv/linux/sched_getaffinity.c
- 020-microblaze-little-endian.patch – patching file:
- configure
- scripts/config.sub
- sysdeps/microblaze/bits/endian.h
- 021-Fix-stat-for-little-endian.patch – patching file:
- sysdeps/unix/sysv/linux/microblaze/bits/stat.h
- 100-arm-ctl_bus_isa.patch – patching file:
- sysdeps/unix/sysv/linux/arm/ioperm.c
- 110-fix-pr398.patch – patching file:
- sysdeps/s390/s390-64/dl-machine.h
- sysdeps/s390/s390-32/dl-machine.h
- 120-allow-gcc-4.0-wordexp.patch – patching file:
- sysdeps/generic/wordexp.c
- 130-allow-gcc4-wcstol_l.patch – patching file:
- sysdeps/wordsize-64/strtol_l.c
- sysdeps/wordsize-64/wcstol_l.c
- 140-cygwin.patch – patching file:
- Makeconfig
- Makerules
- extra-lib.mk
- nptl/Makefile
- sysdeps/sparc/sparc32/sparcv9/Makefile
- 150-sh-lowlevellock.patch – patching file:
- nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S
- 160-sh-memset.patch – patching file:
- sysdeps/sh/memset.S
- 170-allow-gcc-4.0-arm.patch – patching file:
- sysdeps/arm/dl-machine.h
- 180-allow-gcc-4.0-elf.patch – patching file:
- elf/dynamic-link.h
- 190-configure-apple-as.patch – patching file:
- configure
- 200-use_short_for_fnstsw.patch – patching file:
- sysdeps/i386/fpu/ftestexcept.c
- 210-fix-pr631.patch – patching file:
- Makeconfig
- elf/Makefile
- 220-fp-byteorder.patch – patching file:
- 230-mips-bootstrap-gcc-header-install.patch – patching file:
- sysdeps/mips/mips32/Makefile
- 240-make-install-lib-all.patch – patching file:
- Makerules
- 250-weakalias.patch – patching file:
- sysdeps/unix/sysv/linux/arm/socket.S
- 260-csu-Makefile.patch – patching file:
- csu/Makefile
- 270-alpha-asm_page.patch – patching file:
- sysdeps/unix/sysv/linux/alpha/sys/user.h
- 280-alpha-asm_elf.patch – patching file:
- 290-gcc-4.3-include.patch – patching file:
- configure.in
- configure
glibc-linuxthreads-2.3.6
- 100-cygwin.patch – patching file:
- linuxthreads/Makefile
- 110-alpha-cfi.patch – patching file:
- linuxthreads/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h
gdb-6.5.0
ohne erkennbare Patches