Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v1] qt5base: fix double conversion for microblazeel/microblazebe
@ 2018-08-21 20:16 Peter Seiderer
  2018-08-21 20:28 ` Thomas Petazzoni
  0 siblings, 1 reply; 3+ messages in thread
From: Peter Seiderer @ 2018-08-21 20:16 UTC (permalink / raw)
  To: buildroot

Fixes [1]:

  ../3rdparty/double-conversion/include/double-conversion/utils.h:81:2: error: #error Target architecture was not detected as supported by Double-Conversion.
  #error Target architecture was not detected as supported by Double-Conversion.

[1] http://autobuild.buildroot.net/results/489/4891d96f45c64c2e66fe819bd4175cc1d6243a93

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Notes:

Double-converson tested with:

	$ cat div.c
double Div_double(double x, double y) { return x / y; }

	$ cat main.c

double Div_double(double x, double y);

int main(int argc, char** argv) {
  double result = Div_double(89255.0, 1e22);
  if (result == 89255e-22) {
    printf("correct result %e\n", result);
    return 1;
  } else {
    printf("wrong result %e\n", result);
    return 0;
  }
}

For microblazeel (using qemu_microblazeel_mmu_defconfig changed to musl
because the original uclibc resulted in 'mmap of a spare page failed!'
error message):

	$ ./build_qemu_microblazeel_001/host/bin/microblazeel-buildroot-linux-musl-gcc -c main.c
	$ ./build_qemu_microblazeel_001/host/bin/microblazeel-buildroot-linux-musl-gcc -c div.c
	$ ./build_qemu_microblazeel_001/host/bin/microblazeel-buildroot-linux-musl-gcc -o main main.o div.o

Fix wrong staging absolute soft link to relative:
	$ ls -l build_qemu_microblazeel_001/staging/lib/ld-musl-microblazeel.so.1
../staging/lib/ld-musl-microblazeel.so.1 -> /lib/libc.so
	$ rm build_qemu_microblazeel_001/staging/lib/ld-musl-microblazeel.so.1
	$ ln -s libc.so build_qemu_microblazeel_001/staging/lib/ld-musl-microblazeel.so.1

	$ qemu-3.0.0-microblazeel-install/bin/qemu-microblazeel -L build_qemu_microblazeel_001/staging main
correct result 8.925500e-18

For microblazebe (using qemu_microblazebe_mmu_defconfig changed to glibc
because the original uclibc resulted in 'mmap of a spare page failed!'
error message):

	$ ./build_qemu_microblazebe_001/host/bin/microblaze-buildroot-linux-gnu-gcc -c main.c
	$ ./build_qemu_microblazebe_001/host/bin/microblaze-buildroot-linux-gnu-gcc -c div.c
	$ .//build_qemu_microblazebe_001/host/bin/microblaze-buildroot-linux-gnu-gcc -o main main.o div.o

	$ qemu-3.0.0-microblazebe-install/bin/qemu-microblaze  -L build_qemu_microblazebe_001/staging main
correct result 8.925500e-18
---
 ...ble-conversion-enable-for-microblaze.patch | 27 +++++++++++++++++++
 1 file changed, 27 insertions(+)
 create mode 100644 package/qt5/qt5base/5.11.1/0004-double-conversion-enable-for-microblaze.patch

diff --git a/package/qt5/qt5base/5.11.1/0004-double-conversion-enable-for-microblaze.patch b/package/qt5/qt5base/5.11.1/0004-double-conversion-enable-for-microblaze.patch
new file mode 100644
index 0000000000..2d7164b67c
--- /dev/null
+++ b/package/qt5/qt5base/5.11.1/0004-double-conversion-enable-for-microblaze.patch
@@ -0,0 +1,27 @@
+From 372d33fbe549ea73318c187505716ac99fbf3054 Mon Sep 17 00:00:00 2001
+From: Peter Seiderer <ps.report@gmx.net>
+Date: Tue, 21 Aug 2018 21:11:40 +0200
+Subject: [PATCH] double-conversion: enable for microblaze
+
+Signed-off-by: Peter Seiderer <ps.report@gmx.net>
+---
+ .../double-conversion/include/double-conversion/utils.h        | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/3rdparty/double-conversion/include/double-conversion/utils.h b/src/3rdparty/double-conversion/include/double-conversion/utils.h
+index b0a7d5d4f4..485f680180 100644
+--- a/src/3rdparty/double-conversion/include/double-conversion/utils.h
++++ b/src/3rdparty/double-conversion/include/double-conversion/utils.h
+@@ -66,7 +66,8 @@
+     defined(__SH4__) || defined(__alpha__) || \
+     defined(_MIPS_ARCH_MIPS32R2) || \
+     defined(__AARCH64EL__) || defined(__AARCH64EB__) || \
+-    defined(__or1k__)
++    defined(__or1k__) || \
++    defined(__microblaze__)
+ #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
+ #elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
+ #if defined(_WIN32)
+-- 
+2.18.0
+
-- 
2.18.0

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [Buildroot] [PATCH v1] qt5base: fix double conversion for microblazeel/microblazebe
  2018-08-21 20:16 [Buildroot] [PATCH v1] qt5base: fix double conversion for microblazeel/microblazebe Peter Seiderer
@ 2018-08-21 20:28 ` Thomas Petazzoni
  2018-08-21 20:48   ` Peter Seiderer
  0 siblings, 1 reply; 3+ messages in thread
From: Thomas Petazzoni @ 2018-08-21 20:28 UTC (permalink / raw)
  To: buildroot

Hello,

On Tue, 21 Aug 2018 22:16:17 +0200, Peter Seiderer wrote:
> Fixes [1]:
> 
>   ../3rdparty/double-conversion/include/double-conversion/utils.h:81:2: error: #error Target architecture was not detected as supported by Double-Conversion.
>   #error Target architecture was not detected as supported by Double-Conversion.
> 
> [1] http://autobuild.buildroot.net/results/489/4891d96f45c64c2e66fe819bd4175cc1d6243a93
> 
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>

Thanks for working on this again. Can you submit your or1k and
microblaze changes back to the upstream double-conversion project (and
perhaps also Qt5) ?

> For microblazeel (using qemu_microblazeel_mmu_defconfig changed to musl
> because the original uclibc resulted in 'mmap of a spare page failed!'
> error message):

This uClibc issue is something for Waldemar. I'm personally still a bit
impressed by the magic of qemu user mode emulation.

> 	$ ./build_qemu_microblazeel_001/host/bin/microblazeel-buildroot-linux-musl-gcc -c main.c
> 	$ ./build_qemu_microblazeel_001/host/bin/microblazeel-buildroot-linux-musl-gcc -c div.c
> 	$ ./build_qemu_microblazeel_001/host/bin/microblazeel-buildroot-linux-musl-gcc -o main main.o div.o
> 
> Fix wrong staging absolute soft link to relative:
> 	$ ls -l build_qemu_microblazeel_001/staging/lib/ld-musl-microblazeel.so.1
> ../staging/lib/ld-musl-microblazeel.so.1 -> /lib/libc.so
> 	$ rm build_qemu_microblazeel_001/staging/lib/ld-musl-microblazeel.so.1
> 	$ ln -s libc.so build_qemu_microblazeel_001/staging/lib/ld-musl-microblazeel.so.1

That's weird, I have a musl toolchain here (installed from an external
toolchain), and its symlink is relative:

$ ls -l output/staging/lib/{ld-musl*,libc.so}
lrwxrwxrwx 1 thomas thomas     14 Aug 21 22:14 output/staging/lib/ld-musl-armhf.so.1 -> ../lib/libc.so
-rwxr-xr-x 1 thomas thomas 740772 Jun 26 00:08 output/staging/lib/libc.so

Applied to master. Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Buildroot] [PATCH v1] qt5base: fix double conversion for microblazeel/microblazebe
  2018-08-21 20:28 ` Thomas Petazzoni
@ 2018-08-21 20:48   ` Peter Seiderer
  0 siblings, 0 replies; 3+ messages in thread
From: Peter Seiderer @ 2018-08-21 20:48 UTC (permalink / raw)
  To: buildroot

Hello Thomas,

On Tue, 21 Aug 2018 22:28:02 +0200, Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote:

> Hello,
> 
> On Tue, 21 Aug 2018 22:16:17 +0200, Peter Seiderer wrote:
> > Fixes [1]:
> > 
> >   ../3rdparty/double-conversion/include/double-conversion/utils.h:81:2: error: #error Target architecture was not detected as supported by Double-Conversion.
> >   #error Target architecture was not detected as supported by Double-Conversion.
> > 
> > [1] http://autobuild.buildroot.net/results/489/4891d96f45c64c2e66fe819bd4175cc1d6243a93
> > 
> > Signed-off-by: Peter Seiderer <ps.report@gmx.net>  
> 
> Thanks for working on this again. Can you submit your or1k and
> microblaze changes back to the upstream double-conversion project (and
> perhaps also Qt5) ?

Upstream done already, see https://github.com/google/double-conversion/issues/73
For Qt5 I would hope for an double-conversion update (or porting back the
future double-conversion upstream patch)...
> 
> > For microblazeel (using qemu_microblazeel_mmu_defconfig changed to musl
> > because the original uclibc resulted in 'mmap of a spare page failed!'
> > error message):  
> 
> This uClibc issue is something for Waldemar. I'm personally still a bit
> impressed by the magic of qemu user mode emulation.
> 
> > 	$ ./build_qemu_microblazeel_001/host/bin/microblazeel-buildroot-linux-musl-gcc -c main.c
> > 	$ ./build_qemu_microblazeel_001/host/bin/microblazeel-buildroot-linux-musl-gcc -c div.c
> > 	$ ./build_qemu_microblazeel_001/host/bin/microblazeel-buildroot-linux-musl-gcc -o main main.o div.o
> > 
> > Fix wrong staging absolute soft link to relative:
> > 	$ ls -l build_qemu_microblazeel_001/staging/lib/ld-musl-microblazeel.so.1
> > ../staging/lib/ld-musl-microblazeel.so.1 -> /lib/libc.so
> > 	$ rm build_qemu_microblazeel_001/staging/lib/ld-musl-microblazeel.so.1
> > 	$ ln -s libc.so build_qemu_microblazeel_001/staging/lib/ld-musl-microblazeel.so.1  
> 
> That's weird, I have a musl toolchain here (installed from an external
> toolchain), and its symlink is relative:
> 
> $ ls -l output/staging/lib/{ld-musl*,libc.so}
> lrwxrwxrwx 1 thomas thomas     14 Aug 21 22:14 output/staging/lib/ld-musl-armhf.so.1 -> ../lib/libc.so
> -rwxr-xr-x 1 thomas thomas 740772 Jun 26 00:08 output/staging/lib/libc.so

Double checked here (on buildroot git master b1db9038ddaf89c4abf69e17993eb13646da7e8d)
on 'openSUSE Tumbleweed-20180808':

	$ make clean
	$ make savedefconfig
	$ cat defconfig
BR2_microblazeel=y
BR2_TOOLCHAIN_BUILDROOT_MUSL=y
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_16=y
BR2_TARGET_GENERIC_GETTY_PORT="ttyUL0"
BR2_SYSTEM_DHCP="eth0"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.16.7"
BR2_LINUX_KERNEL_PATCH="board/qemu/microblazeel-mmu/xilinx-xemaclite.patch"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/microblazeel-mmu/linux.config"
BR2_LINUX_KERNEL_LINUX_BIN=y
BR2_TARGET_ROOTFS_INITRAMFS=y
# BR2_TARGET_ROOTFS_TAR is not set

	$ make
	$ ls -l staging/lib/{ld-musl*,libc.so}
lrwxrwxrwx 1 seiderer users      12 21. Aug 22:36 staging/lib/ld-musl-microblazeel.so.1 -> /lib/libc.so
-rwxr-xr-x 1 seiderer users 1096148 21. Aug 22:36 staging/lib/libc.so

Regards,
Peter

> 
> Applied to master. Thanks!
> 
> Thomas

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-08-21 20:48 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-08-21 20:16 [Buildroot] [PATCH v1] qt5base: fix double conversion for microblazeel/microblazebe Peter Seiderer
2018-08-21 20:28 ` Thomas Petazzoni
2018-08-21 20:48   ` Peter Seiderer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox