reenable microblaze little endian for internal musl toolchain
PATCH 1/1 reenable microblaze little endian for internal musl toolchain
The assumption musl libc does not support microblaze little endian mode is wrong.
See http://git.musl-libc.org/cgit/musl/tree/configure
line number 447-448.
Tested with qemu.
--- toolchain/toolchain-buildroot/Config.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
toolchain/toolchain-buildroot/Config.in +1 -1
@@ -81,7 +81,7 @@ comment "(e)glibc only available with shared lib support" config BR2_TOOLCHAIN_BUILDROOT_MUSL bool "musl (experimental)" depends on BR2_arm || BR2_armeb || BR2_i386 || BR2_microblazebe || \ - BR2_mips || BR2_mipsel || BR2_powerpc || BR2_x86_64 + BR2_microblaze || BR2_mips || BR2_mipsel || BR2_powerpc || BR2_x86_64 select BR2_TOOLCHAIN_USES_MUSL help This option selects musl as the C library for the
Signature · 1 line
1.7.10.4
PATCH 1/1 reenable microblaze little endian for internal musl toolchain
Dear Waldemar Brodkorb,
toolchain/toolchain-buildroot/Config.in comment "(e)glibc only available with shared lib support" · line 84
Quoted 3 lines · Waldemar Brodkorb
toolchain/toolchain-buildroot/Config.in +1
-1depends on BR2_arm || BR2_armeb || BR2_i386 || BR2_microblazebe || \ - BR2_mips || BR2_mipsel || BR2_powerpc || BR2_x86_64 + BR2_microblaze || BR2_mips || BR2_mipsel || BR2_powerpc || BR2_x86_64
Nope, just revert the patch I made, i.e turn BR2_microblazebe into BR2_microblaze again. We have three options in Buildroot:
BR2_microblazeel, for Microblaze LE BR2_microblazebe, for Microblaze BE BR2_microblaze, when either Microblaze LE or BE is chosen
See arch/Config.in.microblaze.
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/1 reenable microblaze little endian for internal musl toolchain
In reply to Waldemar BrodkorbGreetings,
What I know is, that the resulting images built by musl toolchain did not work, and readelf says the images are big-endian.
I selected microblaze little endian target and then chose 3 different toolchains and made 3 separate builds. -- musl, buildroot internal, and the old Xilinx. Musl was the only one that did not run.
Note that buildroot did not build the musl toolchain from source, but rather downloaded it from somewhere...
QEMU is nice but does not necessarily prove that a toolchain will work on my spartan6 microblazeel design, which I have been using with builroot, successfully, for some time now.
thank you,
William
Quoted 31 lines · Waldemar Brodkorb
The assumption musl libc does not support microblaze little endian mode is wrong.
See http://git.musl-libc.org/cgit/musl/tree/configure
line number 447-448.Tested with qemu.
Signed-off-by Waldemar Brodkorb <[email protected]>--- toolchain/toolchain-buildroot/Config.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)toolchain/toolchain-buildroot/Config.in +1
-1@@ -81,7 +81,7 @@ comment "(e)glibc only available with shared lib support" config BR2_TOOLCHAIN_BUILDROOT_MUSL bool "musl (experimental)" depends on BR2_arm || BR2_armeb || BR2_i386 || BR2_microblazebe || \ - BR2_mips || BR2_mipsel || BR2_powerpc || BR2_x86_64 + BR2_microblaze || BR2_mips || BR2_mipsel || BR2_powerpc ||
BR2_x86_64
selectBR2_TOOLCHAIN_USES_MUSL
help
This option selects musl as the C library for the
--
1.7.10.4
Quoted 5 lines
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20140531/aea563cd/attachment.html>
PATCH 1/1 reenable microblaze little endian for internal musl toolchain
Dear William Welch,
Quoted 6 lines · William Welch
What I know is, that the resulting images built by musl toolchain did not work, and readelf says the images are big-endian.
I selected microblaze little endian target and then chose 3 different toolchains and made 3 separate builds. -- musl, buildroot internal, and the old Xilinx. Musl was the only one that did not run.
You did use the musl external toolchain, right?
Quoted 3 lines
QEMU is nice but does not necessarily prove that a toolchain will work on my spartan6 microblazeel design, which I have been using with builroot, successfully, for some time now.
Absolutely. Do not hesitate to report back to us any issue that you might see on Microblaze. We're definitely interested in growing the user base of Buildroot users on this architecture.
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/1 reenable microblaze little endian for internal musl toolchain
Greetings,
Recall this is for 2014.05-rc3. I just ran through the process again.
All I did was make simple selection choices in menuconfig.
I did not manually enter any specifics about where/how to download the toolchain.
When I asked for an external toolchain, Musl was the only external toolchain listed.
The resulting 'savedefconfig' looked like this (note: there is no mention of musl...)
BR2_microblazeel=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_ENABLE_LOCALE_PURGE=y
BR2_TARGET_OPTIMIZATION="-pipe -mno-xl-soft-mul -mxl-barrel-shift -mcpu=v8.20.a"
BR2_TARGET_GENERIC_GETTY_PORT="ttyUL0" BR2_TARGET_GENERIC_GETTY_BAUDRATE_9600=y
BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_PATCH="board/plus/reader3/linux.patch" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/plus/reader3/rdr3k_defconfig" BR2_LINUX_KERNEL_USE_CUSTOM_DTS=y BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/plus/reader3/rdr3.dts" BR2_PACKAGE_MTD=y
BR2_TARGET_ROOTFS_INITRAMFS=y
I noticed in the log this toolchain was downloaded:
thank you,
William
Quoted 21 lines · Thomas Petazzoni
Dear William Welch,
Quoted 6 lines · William Welch
What I know is, that the resulting images built by musl toolchain did not work, and readelf says the images are big-endian.
I selected microblaze little endian target and then chose 3 different toolchains and made 3 separate builds. -- musl, buildroot internal, and the old Xilinx. Musl was the only one that did not run.
You did use the musl external toolchain, right?
Quoted 3 lines
QEMU is nice but does not necessarily prove that a toolchain will work on my spartan6 microblazeel design, which I have been using with builroot, successfully, for some time now.
Absolutely. Do not hesitate to report back to us any issue that you might see on Microblaze. We're definitely interested in growing the user base of Buildroot users on this architecture.
Quoted 8 lines
Thanks,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20140531/e87dda4a/attachment.html>
PATCH 1/1 reenable microblaze little endian for internal musl toolchain
Dear William Welch,
Quoted 5 lines · William Welch
I did not manually enter any specifics about where/how to download the toolchain.
When I asked for an external toolchain, Musl was the only external toolchain listed.
Right.
Quoted 8 lines
The resulting 'savedefconfig' looked like this (note: there is no mention of musl...)
BR2_microblazeel=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_ENABLE_LOCALE_PURGE=y BR2_TARGET_OPTIMIZATION="-pipe -mno-xl-soft-mul -mxl-barrel-shift -mcpu=v8.20.a"
There is nothing wrong in what you did. There was a bug in Buildroot, and I already sent a patch to fix it, and the fix is part of the final 2014.05 release.
The problem was that Buildroot was assuming the pre-built Musl toolchain was valid for both Microblaze BE and Microblaze LE, which is not the case. Therefore, in commit
http://git.buildroot.net/buildroot/commit/?id=77ef6a3a12ec1e41317ddfa54842c6a59d75dab8
this problem was fixed. You were in Cc of the patch.
So from now on, if you select Microblaze little endian as the architecture, the pre-built Musl toolchain will not be selectable.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/1 reenable microblaze little endian for internal musl toolchain
In reply to William WelchHi,
William Welch wrote,
Quoted 11 lines
Greetings,
Recall this is for 2014.05-rc3. ?I just ran through the process again.
All I did was make simple selection choices in menuconfig.
I did not manually enter any specifics about where/how to download the toolchain.
When I asked for an external toolchain, Musl was the only external toolchain listed.?
Try the internal buildroot toolchain and musl, this will work for little endian targets. The external toolchain for musl is big endian only and furthermore contains a bug, because musl 1.0 didn't work for microblaze. At least not for qemu-system-microblazeel. Rich Felker fixed the Bug after 1.0 release, after I reported it via #musl on IRC.
best regards
Waldemar
PATCH 1/1 reenable microblaze little endian for internal musl toolchain
Dear Waldemar Brodkorb,
Quoted 2 lines · Waldemar Brodkorb
Try the internal buildroot toolchain and musl, this will work for little endian targets.
Unfortunately, due to a misunderstanding from me, in 2014.05, it's not possible to build a Microblaze little endian toolchain with musl in Buildroot. It will be re-enabled for 2014.08, or in a 2014.05.1 release if we do one.
Quoted 5 lines
The external toolchain for musl is big endian
only and furthermore contains a bug, because musl 1.0 didn't work for microblaze. At least not for qemu-system-microblazeel. Rich Felker fixed the Bug after 1.0 release, after I reported it via #musl on IRC.
I'm going to send soon a patch that updates a lot of external toolchains, including the musl ones, and they use a more recent musl version than 1.0.0.
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com