[meta-xilinx] MicroBlaze toolchain warping script
Elvis Dowson
elvis.dowson at gmail.com
Sat Apr 6 02:53:58 PDT 2013
Hi John,
On Apr 2, 2013, at 2:49 AM, John Williams <john.williams at xilinx.com> wrote:
> Hi Elvis,
>
>> From: Elvis Dowson [mailto:elvis.dowson at gmail.com]
>
>
>> On Mar 15, 2013, at 5:46 AM, John Williams <john.williams at xilinx.com> wrote:
>>
>>
>> Here is the toolchain warping script you asked about.
>>
>> Note this is a bit of a hack, and could be just plain wrong.
>>
>> Basically it's taking the MB linux toolchains that we get out of CT-NG,
>> and warping to look like a CodeSourceryLite sysroot. Then we can largely reuse
>> the csl-external recipe for it.
>>
>>
>> What are the variables that you set in local.conf?
>
> TCMODE="external-csl"
> CSL_TARGET_SYS_microblazeel = "microblazeel-xilinx-linux-gnu"
> EXTERNAL_TOOLCHAIN = "/home/jwilliams/yocto/gnu/microblazeel-xilinx-linux-gnu"
> EXTERNAL_TOOLCHAIN_SYSROOT = "/home/jwilliams/yocto/gnu/microblazeel-xilinx-linux-gnu/microblazeel-xilinx-linux-gnu/libc"
I find that the the above variables that you listed above are not enough.
Nathan Rossi mentioned that the pre-built microblaze toolchain (4.6.2) from the git://git.xilinx.com/microblaze-gnu.git repository as mentioned in the older Xilinx wiki doesn't work since it doesnt have support for prlimit64. (BTW, that link has disappeared after the transition for the xilinx wiki and git websites).
Additionally for the build to work, I've had to add the meta-sourcery layer to the bblayers.conf file. The external-toolchain-sourcery.bb recipes in oe-core don't seem to work.
What's weird is that the external-toolchain-sourcery.bb scripts are supposed to set the PREFERRED_PROVIDER variables appropriately, but it doesn't. The build only goes well if you explicitly specify the PREFERRED_PROVIDER variables in the local.conf file.
bblayers.conf settings:
# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
LCONF_VERSION = "6"
BBPATH = "${TOPDIR}"
BBFILES ?= ""
BBLAYERS ?= " \
/tool/yocto/poky/meta \
/tool/yocto/poky/meta-yocto \
/tool/yocto/meta-sourcery \
/tool/yocto/meta-xilinx \
"
local.conf settings:
# Set the external toolchain.
# Set the toolchain mode to use an external Xilinx toolchain pre-compiled binary.
TCMODE = "external-csl"
CSL_TARGET_SYS_microblaze = "microblaze-xilinx-linux-gnu"
CSL_TARGET_SYS_microblazeel = "microblazeel-xilinx-linux-gnu"
EXTERNAL_TOOLCHAIN = "/tool/xilinx/gnu/microblazeel-xilinx-linux-gnu"
EXTERNAL_TOOLCHAIN_SYSROOT = "/tool/xilinx/gnu/microblazeel-xilinx-linux-gnu/microblazeel-xilinx-linux-gnu/libc"
PREFERRED_PROVIDER_linux-libc-headers = "external-sourcery-toolchain"
PREFERRED_PROVIDER_linux-libc-headers-dev = "external-sourcery-toolchain"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "external-sourcery-toolchain"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "external-sourcery-toolchain"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "external-sourcery-toolchain"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "external-sourcery-toolchain"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "external-sourcery-toolchain"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "external-sourcery-toolchain"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "external-sourcery-toolchain"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}compilerlibs = "external-sourcery-toolchain"
PREFERRED_PROVIDER_libgcc = "external-sourcery-toolchain"
PREFERRED_PROVIDER_eglibc = "external-sourcery-toolchain"
PREFERRED_PROVIDER_virtual/libc = "external-sourcery-toolchain"
PREFERRED_PROVIDER_virtual/libintl = "external-sourcery-toolchain"
PREFERRED_PROVIDER_virtual/libiconv = "external-sourcery-toolchain"
PREFERRED_PROVIDER_glibc-thread-db = "external-sourcery-toolchain"
PREFERRED_PROVIDER_virtual/linux-libc-headers = "external-sourcery-toolchain"
PREFERRED_PROVIDER_virtual/linux-libc-headers-dev = "external-sourcery-toolchain"
#PREFERRED_PROVIDER_gdbserver = "external-sourcery-toolchain"
#PREFERRED_PROVIDER_virtual/gettext = "gettext"
# Disable GNU_HASH checks.
TARGET_LINK_HASH_STYLE = ""
Build output:
Build Configuration:
BB_VERSION = "1.16.0"
TARGET_ARCH = "microblazeel"
TARGET_OS = "linux"
MACHINE = "spartan-6-sp601-microblazeel"
DISTRO = "poky"
DISTRO_VERSION = "1.3.1"
TUNE_FEATURES = " microblaze little-endian v830 barrel-shift multiply-low pattern-compare reorder divide-hard fpu-hard"
TARGET_FPU = "fpu-other"
meta
meta-yocto = "danny:1fcbd6228856a87ca69e75b43f708c62468900ef"
meta-sourcery = "danny:dd059648cd81217c602585015c58679477904787"
meta-xilinx = "danny:5f3b2f3ab30c1ae1f434f2fe45aaba8339969ad4"
NOTE: Resolving any missing task queue dependencies
NOTE: Preparing runqueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
NOTE: Tasks Summary: Attempted 63 tasks of which 0 didn't need to be rerun and all succeeded.
Summary: There were 2 WARNING messages shown.
Loading cache: 100% |###########################################################################################################| ETA: 00:00:00
Loaded 1153 entries from dependency cache.
Parsing recipes: 100% |#########################################################################################################| Time: 00:00:00
Parsing of 845 .bb files complete (844 cached, 1 parsed). 1153 targets, 57 skipped, 0 masked, 0 errors.
Build Configuration:
BB_VERSION = "1.16.0"
TARGET_ARCH = "microblazeel"
TARGET_OS = "linux"
MACHINE = "spartan-6-sp601-microblazeel"
DISTRO = "poky"
DISTRO_VERSION = "1.3.1"
TUNE_FEATURES = " microblaze little-endian v830 barrel-shift multiply-low pattern-compare reorder divide-hard fpu-hard"
TARGET_FPU = "fpu-other"
meta
meta-yocto = "danny:1fcbd6228856a87ca69e75b43f708c62468900ef"
meta-sourcery = "danny:dd059648cd81217c602585015c58679477904787"
meta-xilinx = "danny:5f3b2f3ab30c1ae1f434f2fe45aaba8339969ad4"
NOTE: Resolving any missing task queue dependencies
NOTE: Preparing runqueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
Currently 3 running tasks (95 of 1240):
0: zlib-native-1.2.7-r0 do_configure (pid 13783)
WARNING: linux-dummy: No generic license file exists for: GPL in any provider
Currently 2 running tasks (995 of 1240):
0: gnutls-native-2.12.20-r8.3 do_configure (pid 8039)
WARNING: QA Issue: external-sourcery-toolchain: Files/directories were installed but not shipped
/lib/libstdc++.so.6.0.16
/lib/libstdc++.so
/lib/libstdc++.so.6
/lib/libstdc++.so.6.0.16-gdb.py
/lib/ldscripts
/lib/m
/lib/bs
/lib/ldscripts/elf32mbel_linux.xsw
/lib/ldscripts/elf32mbel_linux.x
/lib/ldscripts/elf32mb_linux.xs
/lib/ldscripts/elf32mb_linux.x
/lib/ldscripts/elf32mb_linux.xdw
/lib/ldscripts/elf32mb_linux.xc
/lib/ldscripts/elf32mb_linux.xr
/lib/ldscripts/elf32mb_linux.xn
/lib/ldscripts/elf32mbel_linux.xn
/lib/ldscripts/elf32mbel_linux.xc
/lib/ldscripts/elf32mbel_linux.xdw
/lib/ldscripts/elf32mb_linux.xu
/lib/ldscripts/elf32mbel_linux.xw
/lib/ldscripts/elf32mb_linux.xsc
/lib/ldscripts/elf32mbel_linux.xd
/lib/ldscripts/elf32mb_linux.xw
/lib/ldscripts/elf32mbel_linux.xbn
/lib/ldscripts/elf32mb_linux.xbn
/lib/ldscripts/elf32mbel_linux.xdc
/lib/ldscripts/elf32mb_linux.xd
/lib/ldscripts/elf32mb_linux.xsw
/lib/ldscripts/elf32mbel_linux.xr
/lib/ldscripts/elf32mbel_linux.xu
/lib/ldscripts/elf32mbel_linux.xs
/lib/ldscripts/elf32mb_linux.xdc
/lib/ldscripts/elf32mbel_linux.xsc
/lib/m/libstdc++.so.6.0.16
/lib/m/libstdc++.a
/lib/m/libstdc++.so
/lib/m/libstdc++.so.6
/lib/m/libstdc++.so.6.0.16-gdb.py
/lib/m/libsupc++.la
/lib/m/libsupc++.a
/lib/m/libgcc_s.so.1
/lib/m/libgcc_s.so
/lib/m/libstdc++.la
/lib/m/mh
/lib/m/mh/libstdc++.so.6.0.16
/lib/m/mh/libstdc++.a
/lib/m/mh/libstdc++.so
/lib/m/mh/libstdc++.so.6
/lib/m/mh/libstdc++.so.6.0.16-gdb.py
/lib/m/mh/libsupc++.la
/lib/m/mh/libsupc++.a
/lib/m/mh/libgcc_s.so.1
/lib/m/mh/libgcc_s.so
/lib/m/mh/libstdc++.la
/lib/bs/libstdc++.so.6.0.16
/lib/bs/libstdc++.a
/lib/bs/libstdc++.so
/lib/bs/libstdc++.so.6
/lib/bs/libstdc++.so.6.0.16-gdb.py
/lib/bs/libsupc++.la
/lib/bs/libsupc++.a
/lib/bs/libgcc_s.so.1
/lib/bs/libgcc_s.so
/lib/bs/libstdc++.la
/lib/bs/m
/lib/bs/m/libstdc++.so.6.0.16
/lib/bs/m/libstdc++.a
/lib/bs/m/libstdc++.so
/lib/bs/m/libstdc++.so.6
/lib/bs/m/libstdc++.so.6.0.16-gdb.py
/lib/bs/m/libsupc++.la
/lib/bs/m/libsupc++.a
/lib/bs/m/libgcc_s.so.1
/lib/bs/m/libgcc_s.so
/lib/bs/m/libstdc++.la
/lib/bs/m/mh
/lib/bs/m/mh/libstdc++.so.6.0.16
/lib/bs/m/mh/libstdc++.a
/lib/bs/m/mh/libstdc++.so
/lib/bs/m/mh/libstdc++.so.6
/lib/bs/m/mh/libstdc++.so.6.0.16-gdb.py
/lib/bs/m/mh/libsupc++.la
/lib/bs/m/mh/libsupc++.a
/lib/bs/m/mh/libgcc_s.so.1
/lib/bs/m/mh/libgcc_s.so
/lib/bs/m/mh/libstdc++.la
WARNING: QA Issue: libffi: Files/directories were installed but not shipped
/usr/lib/bs
/usr/lib/bs/m
/usr/lib/bs/m/libffi.so
/usr/lib/bs/m/libffi.la
/usr/lib/bs/m/libffi.so.6.0.1
/usr/lib/bs/m/libffi.so.6
/usr/lib/bs/m/libffi.a
/usr/lib/bs/m/.debug
/usr/lib/bs/m/.debug/libffi.so
/usr/lib/bs/m/.debug/libffi.so.6.0.1
/usr/lib/bs/m/.debug/libffi.so.6
Currently 1 running tasks (1203 of 1240):
0: perl-5.14.2-r12 do_package_write_ipk (pid 5814)
NOTE: Tasks Summary: Attempted 1240 tasks of which 198 didn't need to be rerun and all succeeded.
Summary: There were 3 WARNING messages shown.
real 22m25.290s
user 74m34.800s
sys 7m45.089s
Is this true for your environment as well? I prefer not to setup too many environment variables in my local.conf file.
Elvis Dowson
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/meta-xilinx/attachments/20130406/3346113a/attachment.html>
More information about the meta-xilinx
mailing list