* [Buildroot] [PATCH] reenable microblaze little endian for internal musl toolchain
@ 2014-05-31 8:45 Waldemar Brodkorb
2014-05-31 11:13 ` Thomas Petazzoni
2014-05-31 20:56 ` William Welch
0 siblings, 2 replies; 8+ messages in thread
From: Waldemar Brodkorb @ 2014-05-31 8:45 UTC (permalink / raw)
To: buildroot
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 <wbx@openadk.org>
---
toolchain/toolchain-buildroot/Config.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in
index 840668c..7623790 100644
--- a/toolchain/toolchain-buildroot/Config.in
+++ b/toolchain/toolchain-buildroot/Config.in
@@ -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
--
1.7.10.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] reenable microblaze little endian for internal musl toolchain
2014-05-31 8:45 [Buildroot] [PATCH] reenable microblaze little endian for internal musl toolchain Waldemar Brodkorb
@ 2014-05-31 11:13 ` Thomas Petazzoni
2014-05-31 20:56 ` William Welch
1 sibling, 0 replies; 8+ messages in thread
From: Thomas Petazzoni @ 2014-05-31 11:13 UTC (permalink / raw)
To: buildroot
Dear Waldemar Brodkorb,
On Sat, 31 May 2014 10:45:56 +0200, Waldemar Brodkorb wrote:
> 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
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
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] reenable microblaze little endian for internal musl toolchain
2014-05-31 8:45 [Buildroot] [PATCH] reenable microblaze little endian for internal musl toolchain Waldemar Brodkorb
2014-05-31 11:13 ` Thomas Petazzoni
@ 2014-05-31 20:56 ` William Welch
2014-05-31 21:43 ` Thomas Petazzoni
1 sibling, 1 reply; 8+ messages in thread
From: William Welch @ 2014-05-31 20:56 UTC (permalink / raw)
To: buildroot
Greetings,
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
On Sat, May 31, 2014 at 3:45 AM, Waldemar Brodkorb <wbx@openadk.org> wrote:
> 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 <wbx@openadk.org>
> ---
> toolchain/toolchain-buildroot/Config.in | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/toolchain/toolchain-buildroot/Config.in
> b/toolchain/toolchain-buildroot/Config.in
> index 840668c..7623790 100644
> --- a/toolchain/toolchain-buildroot/Config.in
> +++ b/toolchain/toolchain-buildroot/Config.in
> @@ -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
> --
> 1.7.10.4
>
> _______________________________________________
> 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>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] reenable microblaze little endian for internal musl toolchain
2014-05-31 20:56 ` William Welch
@ 2014-05-31 21:43 ` Thomas Petazzoni
2014-05-31 22:12 ` William Welch
0 siblings, 1 reply; 8+ messages in thread
From: Thomas Petazzoni @ 2014-05-31 21:43 UTC (permalink / raw)
To: buildroot
Dear William Welch,
On Sat, 31 May 2014 15:56:01 -0500, William Welch wrote:
> 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?
> 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
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] reenable microblaze little endian for internal musl toolchain
2014-05-31 21:43 ` Thomas Petazzoni
@ 2014-05-31 22:12 ` William Welch
2014-06-01 6:39 ` Thomas Petazzoni
2014-06-01 7:04 ` Waldemar Brodkorb
0 siblings, 2 replies; 8+ messages in thread
From: William Welch @ 2014-05-31 22:12 UTC (permalink / raw)
To: buildroot
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:
https://googledrive.com/host/0BwnS5DMB0YQ6bDhPZkpOYVFhbk0/musl-1.0.0/crossx86-microblaze-linux-musl-1.0.0.tar.xz
thank you,
William
On Sat, May 31, 2014 at 4:43 PM, Thomas Petazzoni <
thomas.petazzoni@free-electrons.com> wrote:
> Dear William Welch,
>
> On Sat, 31 May 2014 15:56:01 -0500, William Welch wrote:
>
> > 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?
>
> > 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
> --
> 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>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] reenable microblaze little endian for internal musl toolchain
2014-05-31 22:12 ` William Welch
@ 2014-06-01 6:39 ` Thomas Petazzoni
2014-06-01 7:04 ` Waldemar Brodkorb
1 sibling, 0 replies; 8+ messages in thread
From: Thomas Petazzoni @ 2014-06-01 6:39 UTC (permalink / raw)
To: buildroot
Dear William Welch,
On Sat, 31 May 2014 17:12:45 -0500, William Welch wrote:
> 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.
> 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
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] reenable microblaze little endian for internal musl toolchain
2014-05-31 22:12 ` William Welch
2014-06-01 6:39 ` Thomas Petazzoni
@ 2014-06-01 7:04 ` Waldemar Brodkorb
2014-06-01 7:30 ` Thomas Petazzoni
1 sibling, 1 reply; 8+ messages in thread
From: Waldemar Brodkorb @ 2014-06-01 7:04 UTC (permalink / raw)
To: buildroot
Hi,
William Welch wrote,
> 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
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] reenable microblaze little endian for internal musl toolchain
2014-06-01 7:04 ` Waldemar Brodkorb
@ 2014-06-01 7:30 ` Thomas Petazzoni
0 siblings, 0 replies; 8+ messages in thread
From: Thomas Petazzoni @ 2014-06-01 7:30 UTC (permalink / raw)
To: buildroot
Dear Waldemar Brodkorb,
On Sun, 1 Jun 2014 09:04:25 +0200, Waldemar Brodkorb wrote:
> 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.
> 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
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2014-06-01 7:30 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-31 8:45 [Buildroot] [PATCH] reenable microblaze little endian for internal musl toolchain Waldemar Brodkorb
2014-05-31 11:13 ` Thomas Petazzoni
2014-05-31 20:56 ` William Welch
2014-05-31 21:43 ` Thomas Petazzoni
2014-05-31 22:12 ` William Welch
2014-06-01 6:39 ` Thomas Petazzoni
2014-06-01 7:04 ` Waldemar Brodkorb
2014-06-01 7:30 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox