Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/4 v3] arch/arm: introduce big.LITTLE configurations
@ 2017-07-09  9:29 Yann E. MORIN
  2017-07-09  9:29 ` [Buildroot] [PATCH 1/4 v3] arch/arm: fix -mcpu default values for AArch64 Yann E. MORIN
                   ` (3 more replies)
  0 siblings, 4 replies; 23+ messages in thread
From: Yann E. MORIN @ 2017-07-09  9:29 UTC (permalink / raw)
  To: buildroot

Hello All!

This series adds four new CPU variants to the arm choice, to enable
optimising for big.LITTLE CPUs.

We first fix the current values in the first patch, then introduce the
actual new variants, and then make use of them in the sole package that
needs to know of them.

This has been only slightly tested by simply building the toolchains for
the six possibilities:
  - the four variants in arm mode (32-bit),
  - the two armv8 variants in aarch64 mode (64-bit).

The variants were introduced in various versions of gcc, so we protect
the internal gcc as well as the external toolchains accordingly.

To be noted: openblas also has a cortex-a15 optimisation, so maybe that
optimisation can also be used for the cortex-a15.cortex-a7 variant as
well. But I have absolutely no clue what openblas is doing with that
anyway, so I left it alone for someone else to deal with...

Changes v2 -> v3:
  - augment the commit log for the big.LITTLE variants and their gcc
    version dependencies  (Arnout)
  - fix KVM_UNIT_TEST_ARCH_SUPPORT wrt gcc  (Arnout)

Changes v1 -> v2:
  - squash first two patches in one  (Thomas)
  - parentheses and indentation cleanup  (Baruch, me)


Regards,
Yann E. MORIN.


The following changes since commit 644c024edeb7e20bd96ce4426aeca2cbcd74d9b9

  syslinux: drop patch 0003, not needed after gnu-efi update (2017-07-04 18:45:26 +0200)


are available in the git repository at:

  git://git.buildroot.org/~ymorin/git/buildroot.git

for you to fetch changes up to e9a53f9e66ea0d124e8c4ab028f01b41d694910d

  package/kvm-unit-test: available for big.LITTLE arm cores too (2017-07-09 11:24:31 +0200)


----------------------------------------------------------------
Yann E. MORIN (4):
      arch/arm: fix -mcpu default values for AArch64
      package/kvm-unit-tests: introduce _ARCH_SUPPORTS
      arch/arm: add big.LITTLE cpu variants
      package/kvm-unit-test: available for big.LITTLE arm cores too

 arch/Config.in.arm                                 | 50 ++++++++++++++++++----
 package/gcc/Config.in.host                         |  5 ++-
 package/kvm-unit-tests/Config.in                   | 23 +++++++---
 .../Config.in                                      |  2 +
 .../toolchain-external-codesourcery-arm/Config.in  |  4 ++
 5 files changed, 67 insertions(+), 17 deletions(-)

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH 1/4 v3] arch/arm: fix -mcpu default values for AArch64
  2017-07-09  9:29 [Buildroot] [PATCH 0/4 v3] arch/arm: introduce big.LITTLE configurations Yann E. MORIN
@ 2017-07-09  9:29 ` Yann E. MORIN
  2017-07-10 16:04   ` Thomas Petazzoni
  2017-07-19 13:59   ` Peter Korsgaard
  2017-07-09  9:29 ` [Buildroot] [PATCH 2/4 v3] package/kvm-unit-tests: introduce _ARCH_SUPPORTS Yann E. MORIN
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 23+ messages in thread
From: Yann E. MORIN @ 2017-07-09  9:29 UTC (permalink / raw)
  To: buildroot

We have to specify the -mcpu value, even in 64-bit mode.

For AArch64, +fp and +simd are the default, so they are totally useless.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Baruch Siach <baruch@tkos.co.il>

---
Changes v1 -> v2:
  - squash the two changes into one patch  (Thomas)
  - remove useless parentheses  (Baruch)
  - remove superfluous indentation

Notes: If anything, it is the +nofp or +nosimd that should be specified.
This can be done in a future patch, though.
---
 arch/Config.in.arm | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/arch/Config.in.arm b/arch/Config.in.arm
index b1817ed568..3cafe21700 100644
--- a/arch/Config.in.arm
+++ b/arch/Config.in.arm
@@ -534,15 +534,9 @@ config BR2_GCC_TARGET_CPU
 	default "strongarm"	if BR2_strongarm
 	default "xscale"	if BR2_xscale
 	default "iwmmxt"	if BR2_iwmmxt
-	default "cortex-a53"		if (BR2_cortex_a53 && !BR2_ARCH_IS_64)
-	default "cortex-a53+fp"		if (BR2_cortex_a53 && BR2_ARCH_IS_64 && BR2_ARM_FPU_FP_ARMV8)
-	default "cortex-a53+fp+simd"	if (BR2_cortex_a53 && BR2_ARCH_IS_64 && BR2_ARM_FPU_NEON_FP_ARMV8)
-	default "cortex-a57"		if (BR2_cortex_a57 && !BR2_ARCH_IS_64)
-	default "cortex-a57+fp"		if (BR2_cortex_a57 && BR2_ARCH_IS_64 && BR2_ARM_FPU_FP_ARMV8)
-	default "cortex-a57+fp+simd"	if (BR2_cortex_a57 && BR2_ARCH_IS_64 && BR2_ARM_FPU_NEON_FP_ARMV8)
-	default "cortex-a72"		if (BR2_cortex_a72 && !BR2_ARCH_IS_64)
-	default "cortex-a72+fp"		if (BR2_cortex_a72 && BR2_ARCH_IS_64 && BR2_ARM_FPU_FP_ARMV8)
-	default "cortex-a72+fp+simd"	if (BR2_cortex_a72 && BR2_ARCH_IS_64 && BR2_ARM_FPU_NEON_FP_ARMV8)
+	default "cortex-a53"	if BR2_cortex_a53
+	default "cortex-a57"	if BR2_cortex_a57
+	default "cortex-a72"	if BR2_cortex_a72
 
 config BR2_GCC_TARGET_ABI
 	default "aapcs-linux"	if BR2_arm || BR2_armeb
-- 
2.11.0

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

* [Buildroot] [PATCH 2/4 v3] package/kvm-unit-tests: introduce _ARCH_SUPPORTS
  2017-07-09  9:29 [Buildroot] [PATCH 0/4 v3] arch/arm: introduce big.LITTLE configurations Yann E. MORIN
  2017-07-09  9:29 ` [Buildroot] [PATCH 1/4 v3] arch/arm: fix -mcpu default values for AArch64 Yann E. MORIN
@ 2017-07-09  9:29 ` Yann E. MORIN
  2017-07-10 16:09   ` Thomas Petazzoni
  2017-07-22 21:28   ` Thomas Petazzoni
  2017-07-09  9:30 ` [Buildroot] [PATCH 3/4 v3] arch/arm: add big.LITTLE cpu variants Yann E. MORIN
  2017-07-09  9:30 ` [Buildroot] [PATCH 4/4 v3] package/kvm-unit-test: available for big.LITTLE arm cores too Yann E. MORIN
  3 siblings, 2 replies; 23+ messages in thread
From: Yann E. MORIN @ 2017-07-09  9:29 UTC (permalink / raw)
  To: buildroot

Move all architecture options to their own symbol, so that it is easier
to add more variants in the future.

The dependency on cross-gcc >= 4.5 is only valid for i386, as we use the
host gcc for x86_64. Adapt the dependency accordingly.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Cyril Bur <cyrilbur@gmail.com>

---
Changes v2 -> v3:
  - move gcc dependency back to the main symbol  (Arnout)
  - add comment  (Arnout)
  - fix dependency on gcc version
---
 package/kvm-unit-tests/Config.in | 22 +++++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)

diff --git a/package/kvm-unit-tests/Config.in b/package/kvm-unit-tests/Config.in
index 7eab0c25d6..3db10fc820 100644
--- a/package/kvm-unit-tests/Config.in
+++ b/package/kvm-unit-tests/Config.in
@@ -1,15 +1,19 @@
+config BR2_PACKAGE_KVM_UNIT_TESTS_ARCH_SUPPORTS
+	bool
+	# On ARM, it uses virtualization extensions
+	default y if BR2_cortex_a7 || BR2_cortex_a12 || \
+		BR2_cortex_a15 || BR2_cortex_a17
+	default y if BR2_i386 || BR2_x86_64
+	default y if BR2_powerpc64 || BR2_powerpc64le
+
 config BR2_PACKAGE_KVM_UNIT_TESTS
 	bool "kvm-unit-tests"
+	depends on BR2_PACKAGE_KVM_UNIT_TESTS_ARCH_SUPPORTS
 	# on i386 and x86-64, __builtin_reachable is used, so we need
 	# gcc 4.5 at least. on i386, we use the target gcc, while on
 	# x86-64 we use the host gcc (see .mk file for details)
-	# On ARM, it uses virtualization extensions
-	depends on BR2_cortex_a7 || BR2_cortex_a12 || \
-		BR2_cortex_a15 || BR2_cortex_a17 || \
-		(BR2_i386 && BR2_TOOLCHAIN_GCC_AT_LEAST_4_5) || \
-		BR2_powerpc64 || \
-		BR2_powerpc64le || \
-		(BR2_x86_64 && BR2_HOST_GCC_AT_LEAST_4_5)
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 if BR2_i386
+	depends on BR2_HOST_GCC_AT_LEAST_4_5 if BR2_x86_64
 	select BR2_HOSTARCH_NEEDS_IA32_COMPILER if BR2_x86_64=y
 	help
 	  kvm-unit-tests is a project as old as KVM. As its name
@@ -28,3 +32,7 @@ config BR2_PACKAGE_KVM_UNIT_TESTS
 	  features are submitted with accompanying unit tests.
 
 	  http://www.linux-kvm.org/page/KVM-unit-tests
+
+comment "kvm-unit-tests needs a toolchain w/ gcc >= 4.5"
+	depends on BR2_i386
+	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
-- 
2.11.0

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

* [Buildroot] [PATCH 3/4 v3] arch/arm: add big.LITTLE cpu variants
  2017-07-09  9:29 [Buildroot] [PATCH 0/4 v3] arch/arm: introduce big.LITTLE configurations Yann E. MORIN
  2017-07-09  9:29 ` [Buildroot] [PATCH 1/4 v3] arch/arm: fix -mcpu default values for AArch64 Yann E. MORIN
  2017-07-09  9:29 ` [Buildroot] [PATCH 2/4 v3] package/kvm-unit-tests: introduce _ARCH_SUPPORTS Yann E. MORIN
@ 2017-07-09  9:30 ` Yann E. MORIN
  2017-07-22 21:29   ` Thomas Petazzoni
  2017-07-09  9:30 ` [Buildroot] [PATCH 4/4 v3] package/kvm-unit-test: available for big.LITTLE arm cores too Yann E. MORIN
  3 siblings, 1 reply; 23+ messages in thread
From: Yann E. MORIN @ 2017-07-09  9:30 UTC (permalink / raw)
  To: buildroot

The big.LITTLE configurations can be optimised for by gcc, and a few
users wonder what they should choose when they have such CPUs.

Add new entries for those big.LITTLE configurations.

Note: the various combos were added in various gcc versions, but only
really worked in later versions:

    Variant   | Introduced in | First built in
    ----------+---------------+----------------
    a15-a7    | 4.9           | 4.9
    a17-a7    | 5             | 5
    a57-a53   | 4.9           | 6
    a72-a53   | 5             | 6

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
Cc: Baruch Siach <baruch@tkos.co.il>

---
Changes v1 -> v2:
  - remove superfluous parentheses  (Baruch)
---
 arch/Config.in.arm                                 | 38 ++++++++++++++++++++++
 package/gcc/Config.in.host                         |  5 ++-
 .../Config.in                                      |  2 ++
 .../toolchain-external-codesourcery-arm/Config.in  |  4 +++
 4 files changed, 48 insertions(+), 1 deletion(-)

diff --git a/arch/Config.in.arm b/arch/Config.in.arm
index 3cafe21700..09916df7ad 100644
--- a/arch/Config.in.arm
+++ b/arch/Config.in.arm
@@ -182,6 +182,15 @@ config BR2_cortex_a15
 	select BR2_ARM_CPU_ARMV7A
 	select BR2_ARCH_HAS_MMU_OPTIONAL
 	depends on !BR2_ARCH_IS_64
+config BR2_cortex_a15_a7
+	bool "cortex-A15/A7 big.LITTLE"
+	select BR2_ARM_CPU_HAS_ARM
+	select BR2_ARM_CPU_HAS_NEON
+	select BR2_ARM_CPU_HAS_VFPV4
+	select BR2_ARM_CPU_HAS_THUMB2
+	select BR2_ARM_CPU_ARMV7A
+	select BR2_ARCH_HAS_MMU_OPTIONAL
+	depends on !BR2_ARCH_IS_64
 config BR2_cortex_a17
 	bool "cortex-A17"
 	select BR2_ARM_CPU_HAS_ARM
@@ -191,6 +200,15 @@ config BR2_cortex_a17
 	select BR2_ARM_CPU_ARMV7A
 	select BR2_ARCH_HAS_MMU_OPTIONAL
 	depends on !BR2_ARCH_IS_64
+config BR2_cortex_a17_a7
+	bool "cortex-A17/A7 big.LITTLE"
+	select BR2_ARM_CPU_HAS_ARM
+	select BR2_ARM_CPU_HAS_NEON
+	select BR2_ARM_CPU_HAS_VFPV4
+	select BR2_ARM_CPU_HAS_THUMB2
+	select BR2_ARM_CPU_ARMV7A
+	select BR2_ARCH_HAS_MMU_OPTIONAL
+	depends on !BR2_ARCH_IS_64
 config BR2_cortex_a53
 	bool "cortex-A53"
 	select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
@@ -207,6 +225,14 @@ config BR2_cortex_a57
 	select BR2_ARM_CPU_HAS_FP_ARMV8
 	select BR2_ARM_CPU_ARMV8
 	select BR2_ARCH_HAS_MMU_OPTIONAL
+config BR2_cortex_a57_a53
+	bool "cortex-A57/A53 big.LITTLE"
+	select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
+	select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
+	select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
+	select BR2_ARM_CPU_HAS_FP_ARMV8
+	select BR2_ARM_CPU_ARMV8
+	select BR2_ARCH_HAS_MMU_OPTIONAL
 config BR2_cortex_a72
 	bool "cortex-A72"
 	select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
@@ -215,6 +241,14 @@ config BR2_cortex_a72
 	select BR2_ARM_CPU_HAS_FP_ARMV8
 	select BR2_ARM_CPU_ARMV8
 	select BR2_ARCH_HAS_MMU_OPTIONAL
+config BR2_cortex_a72_a53
+	bool "cortex-A72/A53 big.LITTLE"
+	select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
+	select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
+	select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
+	select BR2_ARM_CPU_HAS_FP_ARMV8
+	select BR2_ARM_CPU_ARMV8
+	select BR2_ARCH_HAS_MMU_OPTIONAL
 config BR2_cortex_m3
 	bool "cortex-M3"
 	select BR2_ARM_CPU_HAS_THUMB2
@@ -526,7 +560,9 @@ config BR2_GCC_TARGET_CPU
 	default "cortex-a9"	if BR2_cortex_a9
 	default "cortex-a12"	if BR2_cortex_a12
 	default "cortex-a15"	if BR2_cortex_a15
+	default "cortex-a15.cortex-a7"	if BR2_cortex_a15_a7
 	default "cortex-a17"	if BR2_cortex_a17
+	default "cortex-a17.cortex-a7"	if BR2_cortex_a17_a7
 	default "cortex-m3"	if BR2_cortex_m3
 	default "cortex-m4"	if BR2_cortex_m4
 	default "fa526"		if BR2_fa526
@@ -536,7 +572,9 @@ config BR2_GCC_TARGET_CPU
 	default "iwmmxt"	if BR2_iwmmxt
 	default "cortex-a53"	if BR2_cortex_a53
 	default "cortex-a57"	if BR2_cortex_a57
+	default "cortex-a57.cortex-a53"	if BR2_cortex_a57_a53
 	default "cortex-a72"	if BR2_cortex_a72
+	default "cortex-a72.cortex-a53"	if BR2_cortex_a72_a53
 
 config BR2_GCC_TARGET_ABI
 	default "aapcs-linux"	if BR2_arm || BR2_armeb
diff --git a/package/gcc/Config.in.host b/package/gcc/Config.in.host
index 5dcaa03ff0..c072b78ae5 100644
--- a/package/gcc/Config.in.host
+++ b/package/gcc/Config.in.host
@@ -25,7 +25,8 @@ config BR2_GCC_VERSION_4_9_X
 	# Broken or unsupported architectures
 	depends on !BR2_arc && !BR2_bfin && !BR2_or1k
 	# Broken or unsupported ARM cores
-	depends on !BR2_cortex_a17 && !BR2_cortex_a72
+	depends on !BR2_cortex_a17 && !BR2_cortex_a17_a7
+	depends on !BR2_cortex_a72 && !BR2_cortex_a72_a53
 	# Unsupported MIPS cores
 	depends on !BR2_mips_interaptiv
 	# Unsupported for MIPS R5
@@ -45,6 +46,8 @@ config BR2_GCC_VERSION_5_X
 	bool "gcc 5.x"
 	# Broken or unsupported architectures
 	depends on !BR2_arc && !BR2_bfin && !BR2_or1k
+	# Broken or unsupported ARM cores
+	depends on !BR2_cortex_a57_a53 && !BR2_cortex_a72_a53
 	# musl ppc64 unsupported
 	depends on !(BR2_TOOLCHAIN_USES_MUSL && (BR2_powerpc64 || BR2_powerpc64le))
 	# Unsupported MIPS cores
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in b/toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in
index 2fbb218ecc..66a032e9ac 100644
--- a/toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in
+++ b/toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in
@@ -1,6 +1,8 @@
 config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64
 	bool "CodeSourcery AArch64 2014.11"
 	depends on BR2_aarch64
+	# a57/a53 and a72/a53 appeared in gcc-6 or were broken before
+	depends on !BR2_cortex_a57_a53 && !BR2_cortex_a72_a53
 	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
 	depends on !BR2_STATIC_LIBS
 	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in b/toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in
index 6331873dbd..e1a7891007 100644
--- a/toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in
+++ b/toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in
@@ -1,6 +1,10 @@
 config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM
 	bool "Sourcery CodeBench ARM 2014.05"
 	depends on BR2_arm
+	# a15/a7 appeared in gcc-4.9, a17/a7 in gcc-5, a57/a53 and a72/a53
+	# in gcc-6, or they each were broken earlier than that.
+	depends on !BR2_cortex_a15_a7 && !BR2_cortex_a17_a7
+	depends on !BR2_cortex_a57_53 && !BR2_cortex_a72_53
 	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
 	depends on BR2_ARM_EABI
 	# Unsupported ARM cores
-- 
2.11.0

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

* [Buildroot] [PATCH 4/4 v3] package/kvm-unit-test: available for big.LITTLE arm cores too
  2017-07-09  9:29 [Buildroot] [PATCH 0/4 v3] arch/arm: introduce big.LITTLE configurations Yann E. MORIN
                   ` (2 preceding siblings ...)
  2017-07-09  9:30 ` [Buildroot] [PATCH 3/4 v3] arch/arm: add big.LITTLE cpu variants Yann E. MORIN
@ 2017-07-09  9:30 ` Yann E. MORIN
  2017-07-22 21:29   ` Thomas Petazzoni
  3 siblings, 1 reply; 23+ messages in thread
From: Yann E. MORIN @ 2017-07-09  9:30 UTC (permalink / raw)
  To: buildroot

Since it supports each variants individually, it should also supports
the big.LITTLE configurations.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Cyril Bur <cyrilbur@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/kvm-unit-tests/Config.in | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/package/kvm-unit-tests/Config.in b/package/kvm-unit-tests/Config.in
index 3db10fc820..21eb2d51ff 100644
--- a/package/kvm-unit-tests/Config.in
+++ b/package/kvm-unit-tests/Config.in
@@ -2,7 +2,8 @@ config BR2_PACKAGE_KVM_UNIT_TESTS_ARCH_SUPPORTS
 	bool
 	# On ARM, it uses virtualization extensions
 	default y if BR2_cortex_a7 || BR2_cortex_a12 || \
-		BR2_cortex_a15 || BR2_cortex_a17
+		BR2_cortex_a15 || BR2_cortex_a15_a7 \
+		BR2_cortex_a17 || BR2_cortex_a17_a7
 	default y if BR2_i386 || BR2_x86_64
 	default y if BR2_powerpc64 || BR2_powerpc64le
 
-- 
2.11.0

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

* [Buildroot] [PATCH 1/4 v3] arch/arm: fix -mcpu default values for AArch64
  2017-07-09  9:29 ` [Buildroot] [PATCH 1/4 v3] arch/arm: fix -mcpu default values for AArch64 Yann E. MORIN
@ 2017-07-10 16:04   ` Thomas Petazzoni
  2017-07-10 16:18     ` Tomov, Pavel
  2017-07-19 13:59   ` Peter Korsgaard
  1 sibling, 1 reply; 23+ messages in thread
From: Thomas Petazzoni @ 2017-07-10 16:04 UTC (permalink / raw)
  To: buildroot

Hello,

On Sun,  9 Jul 2017 11:29:58 +0200, Yann E. MORIN wrote:
> We have to specify the -mcpu value, even in 64-bit mode.
> 
> For AArch64, +fp and +simd are the default, so they are totally useless.
> 
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Cc: Baruch Siach <baruch@tkos.co.il>
> 
> ---
> Changes v1 -> v2:
>   - squash the two changes into one patch  (Thomas)
>   - remove useless parentheses  (Baruch)
>   - remove superfluous indentation

Applied to master, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

* [Buildroot] [PATCH 2/4 v3] package/kvm-unit-tests: introduce _ARCH_SUPPORTS
  2017-07-09  9:29 ` [Buildroot] [PATCH 2/4 v3] package/kvm-unit-tests: introduce _ARCH_SUPPORTS Yann E. MORIN
@ 2017-07-10 16:09   ` Thomas Petazzoni
  2017-07-10 16:20     ` Yann E. MORIN
  2017-07-22 21:28   ` Thomas Petazzoni
  1 sibling, 1 reply; 23+ messages in thread
From: Thomas Petazzoni @ 2017-07-10 16:09 UTC (permalink / raw)
  To: buildroot

Hello,

On Sun,  9 Jul 2017 11:29:59 +0200, Yann E. MORIN wrote:

> diff --git a/package/kvm-unit-tests/Config.in b/package/kvm-unit-tests/Config.in
> index 7eab0c25d6..3db10fc820 100644
> --- a/package/kvm-unit-tests/Config.in
> +++ b/package/kvm-unit-tests/Config.in
> @@ -1,15 +1,19 @@
> +config BR2_PACKAGE_KVM_UNIT_TESTS_ARCH_SUPPORTS
> +	bool
> +	# On ARM, it uses virtualization extensions
> +	default y if BR2_cortex_a7 || BR2_cortex_a12 || \
> +		BR2_cortex_a15 || BR2_cortex_a17
> +	default y if BR2_i386 || BR2_x86_64
> +	default y if BR2_powerpc64 || BR2_powerpc64le
> +
>  config BR2_PACKAGE_KVM_UNIT_TESTS
>  	bool "kvm-unit-tests"
> +	depends on BR2_PACKAGE_KVM_UNIT_TESTS_ARCH_SUPPORTS
>  	# on i386 and x86-64, __builtin_reachable is used, so we need
>  	# gcc 4.5 at least. on i386, we use the target gcc, while on
>  	# x86-64 we use the host gcc (see .mk file for details)
> -	# On ARM, it uses virtualization extensions
> -	depends on BR2_cortex_a7 || BR2_cortex_a12 || \
> -		BR2_cortex_a15 || BR2_cortex_a17 || \
> -		(BR2_i386 && BR2_TOOLCHAIN_GCC_AT_LEAST_4_5) || \
> -		BR2_powerpc64 || \
> -		BR2_powerpc64le || \
> -		(BR2_x86_64 && BR2_HOST_GCC_AT_LEAST_4_5)
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 if BR2_i386
> +	depends on BR2_HOST_GCC_AT_LEAST_4_5 if BR2_x86_64

Didn't know this syntax was valid. We usually do:

	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 || !BR2_i386

but if the "depends on ... if ..." syntax works, I'm happy with it.

>  	select BR2_HOSTARCH_NEEDS_IA32_COMPILER if BR2_x86_64=y
>  	help
>  	  kvm-unit-tests is a project as old as KVM. As its name
> @@ -28,3 +32,7 @@ config BR2_PACKAGE_KVM_UNIT_TESTS
>  	  features are submitted with accompanying unit tests.
>  
>  	  http://www.linux-kvm.org/page/KVM-unit-tests
> +
> +comment "kvm-unit-tests needs a toolchain w/ gcc >= 4.5"
> +	depends on BR2_i386
> +	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_5

What about the x86_64 dependency on a host compiler >= 4.5 ?

But those Config.in comments are not really related to the introduction
of the _ARCH_SUPPORTS variable, so perhaps they should be in a separate
patch. If you don't want to respin but agree with what I said, just let
me know, I can fixup when applying.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

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

* [Buildroot] [PATCH 1/4 v3] arch/arm: fix -mcpu default values for AArch64
  2017-07-10 16:04   ` Thomas Petazzoni
@ 2017-07-10 16:18     ` Tomov, Pavel
  2017-07-10 16:22       ` Yann E. MORIN
  0 siblings, 1 reply; 23+ messages in thread
From: Tomov, Pavel @ 2017-07-10 16:18 UTC (permalink / raw)
  To: buildroot

Hi everybody,

Please remove my e-mail from your exchange list.
I just posted a ticket (ID 10011) for resolving the failure when Buildroot calls wget.

Thank you for your understanding,

Pavel Tomov
(Mirion technologies)

-----Original Message-----
From: buildroot [mailto:buildroot-bounces at busybox.net] On Behalf Of Thomas Petazzoni
Sent: Monday, July 10, 2017 9:05 AM
To: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: buildroot at buildroot.org
Subject: Re: [Buildroot] [PATCH 1/4 v3] arch/arm: fix -mcpu default values for AArch64

Hello,

On Sun,  9 Jul 2017 11:29:58 +0200, Yann E. MORIN wrote:
> We have to specify the -mcpu value, even in 64-bit mode.
>
> For AArch64, +fp and +simd are the default, so they are totally useless.
>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Cc: Baruch Siach <baruch@tkos.co.il>
>
> ---
> Changes v1 -> v2:
>   - squash the two changes into one patch  (Thomas)
>   - remove useless parentheses  (Baruch)
>   - remove superfluous indentation

Applied to master, thanks.

Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering http://free-electrons.com _______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

________________________________

PROPRIETARY INFORMATION NOTICE: This e-mail message and all attachments transmitted with it are intended solely for use by the addressee, may contain proprietary information of Mirion Technologies and/or its affiliates, and is subject to all applicable export controls. If the reader of this message is not the intended recipient, you are hereby notified that any review, dissemination, distribution, copying or other use of this message is strictly prohibited. If you have received this message in error, please notify the sender immediately by replying to the message, delete the original message and all attachments from your computer, and destroy any copies you may have made. Thank you.

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

* [Buildroot] [PATCH 2/4 v3] package/kvm-unit-tests: introduce _ARCH_SUPPORTS
  2017-07-10 16:09   ` Thomas Petazzoni
@ 2017-07-10 16:20     ` Yann E. MORIN
  2017-07-10 19:56       ` Arnout Vandecappelle
  2017-07-10 21:47       ` Thomas Petazzoni
  0 siblings, 2 replies; 23+ messages in thread
From: Yann E. MORIN @ 2017-07-10 16:20 UTC (permalink / raw)
  To: buildroot

Thomas, All,

On 2017-07-10 18:09 +0200, Thomas Petazzoni spake thusly:
> On Sun,  9 Jul 2017 11:29:59 +0200, Yann E. MORIN wrote:
> 
> > diff --git a/package/kvm-unit-tests/Config.in b/package/kvm-unit-tests/Config.in
> > index 7eab0c25d6..3db10fc820 100644
> > --- a/package/kvm-unit-tests/Config.in
> > +++ b/package/kvm-unit-tests/Config.in
[--SNIP--]
> > @@ -28,3 +32,7 @@ config BR2_PACKAGE_KVM_UNIT_TESTS
> >  	  features are submitted with accompanying unit tests.
> >  
> >  	  http://www.linux-kvm.org/page/KVM-unit-tests
> > +
> > +comment "kvm-unit-tests needs a toolchain w/ gcc >= 4.5"
> > +	depends on BR2_i386
> > +	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
> 
> What about the x86_64 dependency on a host compiler >= 4.5 ?

In the manual, it is said that one should not add a comment about a
dependency on the host toolchain...

> But those Config.in comments are not really related to the introduction
> of the _ARCH_SUPPORTS variable, so perhaps they should be in a separate
> patch.

Well, the comment did not exist previously indeed, but the dependency on
gcc did exist.

> If you don't want to respin but agree with what I said, just let
> me know, I can fixup when applying.

If you want to add this _one_ comment in a separate patch, I'm fine with
you splitting it.

Regards,
Yann E. MORIN.

> Thanks!
> 
> Thomas
> -- 
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux and Kernel engineering
> http://free-electrons.com

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH 1/4 v3] arch/arm: fix -mcpu default values for AArch64
  2017-07-10 16:18     ` Tomov, Pavel
@ 2017-07-10 16:22       ` Yann E. MORIN
  0 siblings, 0 replies; 23+ messages in thread
From: Yann E. MORIN @ 2017-07-10 16:22 UTC (permalink / raw)
  To: buildroot

Pavel,

On 2017-07-10 16:18 +0000, Tomov, Pavel spake thusly:
> Hi everybody,
> 
> Please remove my e-mail from your exchange list.

You may remove yourself from the list, by following the link that is
repeated at the bottom of every message that comes from the list:

    http://lists.busybox.net/mailman/listinfo/buildroot

Regards,
Yann E. MORIN.

> I just posted a ticket (ID 10011) for resolving the failure when Buildroot calls wget.
> 
> Thank you for your understanding,
> 
> Pavel Tomov
> (Mirion technologies)
> 
> -----Original Message-----
> From: buildroot [mailto:buildroot-bounces at busybox.net] On Behalf Of Thomas Petazzoni
> Sent: Monday, July 10, 2017 9:05 AM
> To: Yann E. MORIN <yann.morin.1998@free.fr>
> Cc: buildroot at buildroot.org
> Subject: Re: [Buildroot] [PATCH 1/4 v3] arch/arm: fix -mcpu default values for AArch64
> 
> Hello,
> 
> On Sun,  9 Jul 2017 11:29:58 +0200, Yann E. MORIN wrote:
> > We have to specify the -mcpu value, even in 64-bit mode.
> >
> > For AArch64, +fp and +simd are the default, so they are totally useless.
> >
> > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> > Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> > Cc: Baruch Siach <baruch@tkos.co.il>
> >
> > ---
> > Changes v1 -> v2:
> >   - squash the two changes into one patch  (Thomas)
> >   - remove useless parentheses  (Baruch)
> >   - remove superfluous indentation
> 
> Applied to master, thanks.
> 
> Thomas
> --
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux, Kernel and Android engineering http://free-electrons.com _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
> 
> ________________________________
> 
> PROPRIETARY INFORMATION NOTICE: This e-mail message and all attachments transmitted with it are intended solely for use by the addressee, may contain proprietary information of Mirion Technologies and/or its affiliates, and is subject to all applicable export controls. If the reader of this message is not the intended recipient, you are hereby notified that any review, dissemination, distribution, copying or other use of this message is strictly prohibited. If you have received this message in error, please notify the sender immediately by replying to the message, delete the original message and all attachments from your computer, and destroy any copies you may have made. Thank you.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH 2/4 v3] package/kvm-unit-tests: introduce _ARCH_SUPPORTS
  2017-07-10 16:20     ` Yann E. MORIN
@ 2017-07-10 19:56       ` Arnout Vandecappelle
  2017-07-10 20:10         ` Yann E. MORIN
  2017-07-10 21:47       ` Thomas Petazzoni
  1 sibling, 1 reply; 23+ messages in thread
From: Arnout Vandecappelle @ 2017-07-10 19:56 UTC (permalink / raw)
  To: buildroot



On 10-07-17 18:20, Yann E. MORIN wrote:
> Thomas, All,
> 
> On 2017-07-10 18:09 +0200, Thomas Petazzoni spake thusly:
>> On Sun,  9 Jul 2017 11:29:59 +0200, Yann E. MORIN wrote:
>>
>>> diff --git a/package/kvm-unit-tests/Config.in b/package/kvm-unit-tests/Config.in
>>> index 7eab0c25d6..3db10fc820 100644
>>> --- a/package/kvm-unit-tests/Config.in
>>> +++ b/package/kvm-unit-tests/Config.in
> [--SNIP--]
>>> @@ -28,3 +32,7 @@ config BR2_PACKAGE_KVM_UNIT_TESTS
>>>  	  features are submitted with accompanying unit tests.
>>>  
>>>  	  http://www.linux-kvm.org/page/KVM-unit-tests
>>> +
>>> +comment "kvm-unit-tests needs a toolchain w/ gcc >= 4.5"
>>> +	depends on BR2_i386
>>> +	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
>> What about the x86_64 dependency on a host compiler >= 4.5 ?
> In the manual, it is said that one should not add a comment about a
> dependency on the host toolchain...

 I *think* Thomas didn't mean to say "host compiler". I think he meant:

Shouldn't this be:
	depends on BR2_i386 || BR2_x86_64
	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_5


 Regards,
 Arnout

[snip]

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

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

* [Buildroot] [PATCH 2/4 v3] package/kvm-unit-tests: introduce _ARCH_SUPPORTS
  2017-07-10 19:56       ` Arnout Vandecappelle
@ 2017-07-10 20:10         ` Yann E. MORIN
  2017-07-10 20:12           ` Arnout Vandecappelle
  0 siblings, 1 reply; 23+ messages in thread
From: Yann E. MORIN @ 2017-07-10 20:10 UTC (permalink / raw)
  To: buildroot

Arnout, All,

On 2017-07-10 21:56 +0200, Arnout Vandecappelle spake thusly:
> On 10-07-17 18:20, Yann E. MORIN wrote:
> > Thomas, All,
> > 
> > On 2017-07-10 18:09 +0200, Thomas Petazzoni spake thusly:
> >> On Sun,  9 Jul 2017 11:29:59 +0200, Yann E. MORIN wrote:
> >>
> >>> diff --git a/package/kvm-unit-tests/Config.in b/package/kvm-unit-tests/Config.in
> >>> index 7eab0c25d6..3db10fc820 100644
> >>> --- a/package/kvm-unit-tests/Config.in
> >>> +++ b/package/kvm-unit-tests/Config.in
> > [--SNIP--]
> >>> @@ -28,3 +32,7 @@ config BR2_PACKAGE_KVM_UNIT_TESTS
> >>>  	  features are submitted with accompanying unit tests.
> >>>  
> >>>  	  http://www.linux-kvm.org/page/KVM-unit-tests
> >>> +
> >>> +comment "kvm-unit-tests needs a toolchain w/ gcc >= 4.5"
> >>> +	depends on BR2_i386
> >>> +	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
> >> What about the x86_64 dependency on a host compiler >= 4.5 ?
> > In the manual, it is said that one should not add a comment about a
> > dependency on the host toolchain...
> 
>  I *think* Thomas didn't mean to say "host compiler". I think he meant:
> 
> Shouldn't this be:
> 	depends on BR2_i386 || BR2_x86_64
> 	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_5

No, because for x86_64 we are using the host compiler. See the .mk file:

    # For all architectures but x86-64, we use the target
    # compiler. However, for x86-64, we use the host compiler, as
    # kvm-unit-tests builds 32 bit code, which Buildroot toolchains for
    # x86-64 cannot do.
    ifneq ($(BR2_x86_64),y)
    KVM_UNIT_TESTS_CONF_OPTS += --cross-prefix="$(TARGET_CROSS)"
    endif

So for x86_64 there is no dependency to add on the target compiler at
all.

Regards,
Yann E. MORIN.

> 
>  Regards,
>  Arnout
> 
> [snip]
> 
> -- 
> Arnout Vandecappelle                          arnout at mind be
> Senior Embedded Software Architect            +32-16-286500
> Essensium/Mind                                http://www.mind.be
> G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
> LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
> GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH 2/4 v3] package/kvm-unit-tests: introduce _ARCH_SUPPORTS
  2017-07-10 20:10         ` Yann E. MORIN
@ 2017-07-10 20:12           ` Arnout Vandecappelle
  2017-07-10 20:19             ` Yann E. MORIN
  0 siblings, 1 reply; 23+ messages in thread
From: Arnout Vandecappelle @ 2017-07-10 20:12 UTC (permalink / raw)
  To: buildroot



On 10-07-17 22:10, Yann E. MORIN wrote:
> Arnout, All,
> 
> On 2017-07-10 21:56 +0200, Arnout Vandecappelle spake thusly:
>> On 10-07-17 18:20, Yann E. MORIN wrote:
>>> Thomas, All,
>>>
>>> On 2017-07-10 18:09 +0200, Thomas Petazzoni spake thusly:
>>>> On Sun,  9 Jul 2017 11:29:59 +0200, Yann E. MORIN wrote:
>>>>
>>>>> diff --git a/package/kvm-unit-tests/Config.in b/package/kvm-unit-tests/Config.in
>>>>> index 7eab0c25d6..3db10fc820 100644
>>>>> --- a/package/kvm-unit-tests/Config.in
>>>>> +++ b/package/kvm-unit-tests/Config.in
>>> [--SNIP--]
>>>>> @@ -28,3 +32,7 @@ config BR2_PACKAGE_KVM_UNIT_TESTS
>>>>>  	  features are submitted with accompanying unit tests.
>>>>>  
>>>>>  	  http://www.linux-kvm.org/page/KVM-unit-tests
>>>>> +
>>>>> +comment "kvm-unit-tests needs a toolchain w/ gcc >= 4.5"
>>>>> +	depends on BR2_i386
>>>>> +	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
>>>> What about the x86_64 dependency on a host compiler >= 4.5 ?
>>> In the manual, it is said that one should not add a comment about a
>>> dependency on the host toolchain...
>>
>>  I *think* Thomas didn't mean to say "host compiler". I think he meant:
>>
>> Shouldn't this be:
>> 	depends on BR2_i386 || BR2_x86_64
>> 	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
> 
> No, because for x86_64 we are using the host compiler. See the .mk file:
> 
>     # For all architectures but x86-64, we use the target
>     # compiler. However, for x86-64, we use the host compiler, as
>     # kvm-unit-tests builds 32 bit code, which Buildroot toolchains for
>     # x86-64 cannot do.
>     ifneq ($(BR2_x86_64),y)
>     KVM_UNIT_TESTS_CONF_OPTS += --cross-prefix="$(TARGET_CROSS)"
>     endif
> 
> So for x86_64 there is no dependency to add on the target compiler at
> all.

 D'oh, I missed that subtlety, thanks for the explanation.

 Regards,
 Arnout

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

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

* [Buildroot] [PATCH 2/4 v3] package/kvm-unit-tests: introduce _ARCH_SUPPORTS
  2017-07-10 20:12           ` Arnout Vandecappelle
@ 2017-07-10 20:19             ` Yann E. MORIN
  0 siblings, 0 replies; 23+ messages in thread
From: Yann E. MORIN @ 2017-07-10 20:19 UTC (permalink / raw)
  To: buildroot

Arnout, All,

On 2017-07-10 22:12 +0200, Arnout Vandecappelle spake thusly:
> On 10-07-17 22:10, Yann E. MORIN wrote:
> > On 2017-07-10 21:56 +0200, Arnout Vandecappelle spake thusly:
> >> On 10-07-17 18:20, Yann E. MORIN wrote:
> >>> On 2017-07-10 18:09 +0200, Thomas Petazzoni spake thusly:
> >>>> On Sun,  9 Jul 2017 11:29:59 +0200, Yann E. MORIN wrote:
> >>>>> +comment "kvm-unit-tests needs a toolchain w/ gcc >= 4.5"
> >>>>> +	depends on BR2_i386
> >>>>> +	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
> >>>> What about the x86_64 dependency on a host compiler >= 4.5 ?
> >>> In the manual, it is said that one should not add a comment about a
> >>> dependency on the host toolchain...
> >>
> >>  I *think* Thomas didn't mean to say "host compiler". I think he meant:
> >>
> >> Shouldn't this be:
> >> 	depends on BR2_i386 || BR2_x86_64
> >> 	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
> > 
> > No, because for x86_64 we are using the host compiler. See the .mk file:
> > 
> >     # For all architectures but x86-64, we use the target
> >     # compiler. However, for x86-64, we use the host compiler, as
> >     # kvm-unit-tests builds 32 bit code, which Buildroot toolchains for
> >     # x86-64 cannot do.
> >     ifneq ($(BR2_x86_64),y)
> >     KVM_UNIT_TESTS_CONF_OPTS += --cross-prefix="$(TARGET_CROSS)"
> >     endif
> > 
> > So for x86_64 there is no dependency to add on the target compiler at
> > all.
> 
>  D'oh, I missed that subtlety, thanks for the explanation.

Yep, no problem. I got bitten by it as well, that's why I "fixed" it
(and I should have improved the commit log a bit more, it seems ;-) ).

Thanks for the reviews! :-)

Regards,
Yann E. MORIN.

>  Regards,
>  Arnout
> 
> -- 
> Arnout Vandecappelle                          arnout at mind be
> Senior Embedded Software Architect            +32-16-286500
> Essensium/Mind                                http://www.mind.be
> G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
> LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
> GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH 2/4 v3] package/kvm-unit-tests: introduce _ARCH_SUPPORTS
  2017-07-10 16:20     ` Yann E. MORIN
  2017-07-10 19:56       ` Arnout Vandecappelle
@ 2017-07-10 21:47       ` Thomas Petazzoni
  2017-07-10 21:57         ` Yann E. MORIN
  1 sibling, 1 reply; 23+ messages in thread
From: Thomas Petazzoni @ 2017-07-10 21:47 UTC (permalink / raw)
  To: buildroot

Hello,

On Mon, 10 Jul 2017 18:20:56 +0200, Yann E. MORIN wrote:

> > What about the x86_64 dependency on a host compiler >= 4.5 ?  
> 
> In the manual, it is said that one should not add a comment about a
> dependency on the host toolchain...

The manual says one thing, reality says another:

package/collectd/Config.in:comment "write_prometheus needs a toolchain w/ C++, host gcc >= 4.5"
package/cppcms/Config.in:comment "icu support needs a toolchain w/ gcc >= 4.8, host gcc >= 4.8"
package/icu/Config.in:comment "icu needs a toolchain w/ C++, wchar, threads, gcc >= 4.8, host gcc >= 4.8"
package/kodi/Config.in:comment "kodi needs python w/ .py modules, a uClibc or glibc toolchain w/ C++, locale, threads, wchar, dynamic library, gcc >= 4.8, host gcc >= 4.6"
package/mfgtools/Config.in.host:comment "mfgtools needs host gcc >= 4.8"
package/midori/Config.in:comment "midori needs libgtk3 and a glibc toolchain w/ C++, gcc >= 4.9, host gcc >= 4.8"
package/php/Config.ext:comment "intl support needs a toolchain w/ C++, wchar, threads, gcc >= 4.8, host gcc >= 4.8"
package/protobuf-c/Config.in:comment "protobuf-c needs a toolchain w/ C++, threads, host gcc >= 4.5"
package/python-mwscrape2slob/Config.in:comment "python-mwscrape2slob needs a toolchain w/ C++, gcc >= 4.8, host gcc >= 4.8"
package/python-pyicu/Config.in:comment "python-pyicu needs a toolchain w/ C++, gcc >= 4.8, host gcc >= 4.8"
package/python-slob/Config.in:comment "python-slob needs a toolchain w/ C++, gcc >= 4.8, host gcc >= 4.8"
package/qt5/qt5base/Config.in:comment "icu support needs a toolchain w/ gcc >= 4.8, host gcc >= 4.8"
package/qt5/qt5webkit/Config.in:comment "qt5webkit needs a toolchain w/ dynamic library, gcc >= 4.8, host gcc >= 4.8"
package/riemann-c-client/Config.in:comment "riemann-c-client needs a toolchain w/ C++, threads, host gcc >= 4.5"
package/webkitgtk/Config.in:comment "webkitgtk needs libgtk3 and a glibc toolchain w/ C++, gcc >= 4.9, host gcc >= 4.8"

I'm not sure why we would not add Config.in comment for dependencies on
the host toolchain. What's the reasoning for *not* adding such
dependencies ?

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

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

* [Buildroot] [PATCH 2/4 v3] package/kvm-unit-tests: introduce _ARCH_SUPPORTS
  2017-07-10 21:47       ` Thomas Petazzoni
@ 2017-07-10 21:57         ` Yann E. MORIN
  2017-07-11 21:14           ` Arnout Vandecappelle
  0 siblings, 1 reply; 23+ messages in thread
From: Yann E. MORIN @ 2017-07-10 21:57 UTC (permalink / raw)
  To: buildroot

Thomas, All,

On 2017-07-10 23:47 +0200, Thomas Petazzoni spake thusly:
> On Mon, 10 Jul 2017 18:20:56 +0200, Yann E. MORIN wrote:
> > > What about the x86_64 dependency on a host compiler >= 4.5 ?  
> > In the manual, it is said that one should not add a comment about a
> > dependency on the host toolchain...
> 
> The manual says one thing, reality says another:
> 
> package/collectd/Config.in:comment "write_prometheus needs a toolchain w/ C++, host gcc >= 4.5"
> package/cppcms/Config.in:comment "icu support needs a toolchain w/ gcc >= 4.8, host gcc >= 4.8"
> package/icu/Config.in:comment "icu needs a toolchain w/ C++, wchar, threads, gcc >= 4.8, host gcc >= 4.8"
> package/kodi/Config.in:comment "kodi needs python w/ .py modules, a uClibc or glibc toolchain w/ C++, locale, threads, wchar, dynamic library, gcc >= 4.8, host gcc >= 4.6"
> package/mfgtools/Config.in.host:comment "mfgtools needs host gcc >= 4.8"
> package/midori/Config.in:comment "midori needs libgtk3 and a glibc toolchain w/ C++, gcc >= 4.9, host gcc >= 4.8"
> package/php/Config.ext:comment "intl support needs a toolchain w/ C++, wchar, threads, gcc >= 4.8, host gcc >= 4.8"
> package/protobuf-c/Config.in:comment "protobuf-c needs a toolchain w/ C++, threads, host gcc >= 4.5"
> package/python-mwscrape2slob/Config.in:comment "python-mwscrape2slob needs a toolchain w/ C++, gcc >= 4.8, host gcc >= 4.8"
> package/python-pyicu/Config.in:comment "python-pyicu needs a toolchain w/ C++, gcc >= 4.8, host gcc >= 4.8"
> package/python-slob/Config.in:comment "python-slob needs a toolchain w/ C++, gcc >= 4.8, host gcc >= 4.8"
> package/qt5/qt5base/Config.in:comment "icu support needs a toolchain w/ gcc >= 4.8, host gcc >= 4.8"
> package/qt5/qt5webkit/Config.in:comment "qt5webkit needs a toolchain w/ dynamic library, gcc >= 4.8, host gcc >= 4.8"
> package/riemann-c-client/Config.in:comment "riemann-c-client needs a toolchain w/ C++, threads, host gcc >= 4.5"
> package/webkitgtk/Config.in:comment "webkitgtk needs libgtk3 and a glibc toolchain w/ C++, gcc >= 4.9, host gcc >= 4.8"
> 
> I'm not sure why we would not add Config.in comment for dependencies on
> the host toolchain. What's the reasoning for *not* adding such
> dependencies ?

Because there is not much a user can do about the toolchain on host host
machine?

As much as it is "possible" to change the version for the cross-gcc, the
native compiler is often not replaceable. This is most probably the case
on enterprise-grade servers, where users are not root (and are stuck
with a precambrian host compiler)...

I wrote the comment, checked the manual for the template, then removed
the comment. Oh well, here it is again, then:

    comment "kvm-unit-tests needs a host gcc >= 4.5"
        depends on BR2_x86_64
        depends on !BR2_HOST_GCC_AT_LEAST_4_5

Hehe! ;-)

Regards,
Yann E. MORIN.

> Best regards,
> 
> Thomas
> -- 
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux and Kernel engineering
> http://free-electrons.com

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH 2/4 v3] package/kvm-unit-tests: introduce _ARCH_SUPPORTS
  2017-07-10 21:57         ` Yann E. MORIN
@ 2017-07-11 21:14           ` Arnout Vandecappelle
  0 siblings, 0 replies; 23+ messages in thread
From: Arnout Vandecappelle @ 2017-07-11 21:14 UTC (permalink / raw)
  To: buildroot



On 10-07-17 23:57, Yann E. MORIN wrote:
> As much as it is "possible" to change the version for the cross-gcc, the
> native compiler is often not replaceable. This is most probably the case
> on enterprise-grade servers, where users are not root (and are stuck
> with a precambrian host compiler)...

 Building a native compiler from source is annoying, but not impossible. Libc is
a different story, but a compiler is feasible. In addition, many users can
indeed install a decent compiler either from the distro or from a PPA, so really
it does make sense to have such a comment.

 What you *really* can't change is your target architecture and its features.

 Regards,
 Arnout

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

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

* [Buildroot] [PATCH 1/4 v3] arch/arm: fix -mcpu default values for AArch64
  2017-07-09  9:29 ` [Buildroot] [PATCH 1/4 v3] arch/arm: fix -mcpu default values for AArch64 Yann E. MORIN
  2017-07-10 16:04   ` Thomas Petazzoni
@ 2017-07-19 13:59   ` Peter Korsgaard
  1 sibling, 0 replies; 23+ messages in thread
From: Peter Korsgaard @ 2017-07-19 13:59 UTC (permalink / raw)
  To: buildroot

>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:

 > We have to specify the -mcpu value, even in 64-bit mode.
 > For AArch64, +fp and +simd are the default, so they are totally useless.

 > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
 > Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 > Cc: Baruch Siach <baruch@tkos.co.il>

Is this a candidate for 2017.02.x / 2017.05.x - In other words, what
does it fix?

-- 
Bye, Peter Korsgaard

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

* [Buildroot] [PATCH 2/4 v3] package/kvm-unit-tests: introduce _ARCH_SUPPORTS
  2017-07-09  9:29 ` [Buildroot] [PATCH 2/4 v3] package/kvm-unit-tests: introduce _ARCH_SUPPORTS Yann E. MORIN
  2017-07-10 16:09   ` Thomas Petazzoni
@ 2017-07-22 21:28   ` Thomas Petazzoni
  2017-07-22 21:49     ` Yann E. MORIN
  1 sibling, 1 reply; 23+ messages in thread
From: Thomas Petazzoni @ 2017-07-22 21:28 UTC (permalink / raw)
  To: buildroot

Hello,

On Sun,  9 Jul 2017 11:29:59 +0200, Yann E. MORIN wrote:

> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 if BR2_i386
> +	depends on BR2_HOST_GCC_AT_LEAST_4_5 if BR2_x86_64

Did you actually test this? "make menuconfig" complains:

thomas at windsurf:~/projets/buildroot (master)$ make menuconfig
package/kvm-unit-tests/Config.in:16: syntax error
package/kvm-unit-tests/Config.in:15: invalid option
package/kvm-unit-tests/Config.in:17: syntax error
package/kvm-unit-tests/Config.in:16: invalid option
Makefile:876: recipe for target 'menuconfig' failed

So I've replaced them with the more usual:

+       depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 || !BR2_i386
+       depends on BR2_HOST_GCC_AT_LEAST_4_5 || !BR2_x86_64

I've also re-add the Config.in comment about the host gcc >= 4.5
dependency.

Applied with those changes. Thanks!	

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

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

* [Buildroot] [PATCH 3/4 v3] arch/arm: add big.LITTLE cpu variants
  2017-07-09  9:30 ` [Buildroot] [PATCH 3/4 v3] arch/arm: add big.LITTLE cpu variants Yann E. MORIN
@ 2017-07-22 21:29   ` Thomas Petazzoni
  0 siblings, 0 replies; 23+ messages in thread
From: Thomas Petazzoni @ 2017-07-22 21:29 UTC (permalink / raw)
  To: buildroot

Hello,

On Sun,  9 Jul 2017 11:30:00 +0200, Yann E. MORIN wrote:
> The big.LITTLE configurations can be optimised for by gcc, and a few
> users wonder what they should choose when they have such CPUs.
> 
> Add new entries for those big.LITTLE configurations.
> 
> Note: the various combos were added in various gcc versions, but only
> really worked in later versions:
> 
>     Variant   | Introduced in | First built in
>     ----------+---------------+----------------
>     a15-a7    | 4.9           | 4.9
>     a17-a7    | 5             | 5
>     a57-a53   | 4.9           | 6
>     a72-a53   | 5             | 6
> 
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
> Cc: Baruch Siach <baruch@tkos.co.il>
> 
> ---
> Changes v1 -> v2:
>   - remove superfluous parentheses  (Baruch)
> ---
>  arch/Config.in.arm                                 | 38 ++++++++++++++++++++++
>  package/gcc/Config.in.host                         |  5 ++-
>  .../Config.in                                      |  2 ++
>  .../toolchain-external-codesourcery-arm/Config.in  |  4 +++
>  4 files changed, 48 insertions(+), 1 deletion(-)

Applied to master, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

* [Buildroot] [PATCH 4/4 v3] package/kvm-unit-test: available for big.LITTLE arm cores too
  2017-07-09  9:30 ` [Buildroot] [PATCH 4/4 v3] package/kvm-unit-test: available for big.LITTLE arm cores too Yann E. MORIN
@ 2017-07-22 21:29   ` Thomas Petazzoni
  2017-07-22 21:50     ` Yann E. MORIN
  0 siblings, 1 reply; 23+ messages in thread
From: Thomas Petazzoni @ 2017-07-22 21:29 UTC (permalink / raw)
  To: buildroot

Hello,

On Sun,  9 Jul 2017 11:30:01 +0200, Yann E. MORIN wrote:
> Since it supports each variants individually, it should also supports
> the big.LITTLE configurations.
> 
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Cyril Bur <cyrilbur@gmail.com>
> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
>  package/kvm-unit-tests/Config.in | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

Applied to master, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

* [Buildroot] [PATCH 2/4 v3] package/kvm-unit-tests: introduce _ARCH_SUPPORTS
  2017-07-22 21:28   ` Thomas Petazzoni
@ 2017-07-22 21:49     ` Yann E. MORIN
  0 siblings, 0 replies; 23+ messages in thread
From: Yann E. MORIN @ 2017-07-22 21:49 UTC (permalink / raw)
  To: buildroot

Thomas, All,

On 2017-07-22 23:28 +0200, Thomas Petazzoni spake thusly:
> On Sun,  9 Jul 2017 11:29:59 +0200, Yann E. MORIN wrote:
> > +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 if BR2_i386
> > +	depends on BR2_HOST_GCC_AT_LEAST_4_5 if BR2_x86_64
> 
> Did you actually test this? "make menuconfig" complains:
> 
> thomas at windsurf:~/projets/buildroot (master)$ make menuconfig
> package/kvm-unit-tests/Config.in:16: syntax error
> package/kvm-unit-tests/Config.in:15: invalid option
> package/kvm-unit-tests/Config.in:17: syntax error
> package/kvm-unit-tests/Config.in:16: invalid option
> Makefile:876: recipe for target 'menuconfig' failed

I am really surprised, because I am sure I did test it, yes. But
apparently, I did not.

I have no idea about what hapenned... :-/

> So I've replaced them with the more usual:
> 
> +       depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 || !BR2_i386
> +       depends on BR2_HOST_GCC_AT_LEAST_4_5 || !BR2_x86_64
> 
> I've also re-add the Config.in comment about the host gcc >= 4.5
> dependency.
> 
> Applied with those changes. Thanks!	

Thanks!

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH 4/4 v3] package/kvm-unit-test: available for big.LITTLE arm cores too
  2017-07-22 21:29   ` Thomas Petazzoni
@ 2017-07-22 21:50     ` Yann E. MORIN
  0 siblings, 0 replies; 23+ messages in thread
From: Yann E. MORIN @ 2017-07-22 21:50 UTC (permalink / raw)
  To: buildroot

Thomas, All,

On 2017-07-22 23:29 +0200, Thomas Petazzoni spake thusly:
> On Sun,  9 Jul 2017 11:30:01 +0200, Yann E. MORIN wrote:
> > Since it supports each variants individually, it should also supports
> > the big.LITTLE configurations.
> > 
> > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> > Cc: Cyril Bur <cyrilbur@gmail.com>
> > Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> > ---
> >  package/kvm-unit-tests/Config.in | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> Applied to master, thanks.

Alas, this is also causing kconfig issues:

    package/kvm-unit-tests/Config.in:5: syntax error
    package/kvm-unit-tests/Config.in:4: invalid option

I've sent a fix:
    https://patchwork.ozlabs.org/patch/792481/

Sorry about that. There realyl is something that I miossed in that
series... :-/

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

end of thread, other threads:[~2017-07-22 21:50 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-09  9:29 [Buildroot] [PATCH 0/4 v3] arch/arm: introduce big.LITTLE configurations Yann E. MORIN
2017-07-09  9:29 ` [Buildroot] [PATCH 1/4 v3] arch/arm: fix -mcpu default values for AArch64 Yann E. MORIN
2017-07-10 16:04   ` Thomas Petazzoni
2017-07-10 16:18     ` Tomov, Pavel
2017-07-10 16:22       ` Yann E. MORIN
2017-07-19 13:59   ` Peter Korsgaard
2017-07-09  9:29 ` [Buildroot] [PATCH 2/4 v3] package/kvm-unit-tests: introduce _ARCH_SUPPORTS Yann E. MORIN
2017-07-10 16:09   ` Thomas Petazzoni
2017-07-10 16:20     ` Yann E. MORIN
2017-07-10 19:56       ` Arnout Vandecappelle
2017-07-10 20:10         ` Yann E. MORIN
2017-07-10 20:12           ` Arnout Vandecappelle
2017-07-10 20:19             ` Yann E. MORIN
2017-07-10 21:47       ` Thomas Petazzoni
2017-07-10 21:57         ` Yann E. MORIN
2017-07-11 21:14           ` Arnout Vandecappelle
2017-07-22 21:28   ` Thomas Petazzoni
2017-07-22 21:49     ` Yann E. MORIN
2017-07-09  9:30 ` [Buildroot] [PATCH 3/4 v3] arch/arm: add big.LITTLE cpu variants Yann E. MORIN
2017-07-22 21:29   ` Thomas Petazzoni
2017-07-09  9:30 ` [Buildroot] [PATCH 4/4 v3] package/kvm-unit-test: available for big.LITTLE arm cores too Yann E. MORIN
2017-07-22 21:29   ` Thomas Petazzoni
2017-07-22 21:50     ` Yann E. MORIN

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