Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 0/1] fix python3 do_configure failed on meta-fsl-ppc with MACHINE = "p1022ds"
@ 2016-03-09 11:18 Hongxu Jia
  2016-03-09 11:18 ` [PATCH 1/1] tune-ppce500v2.inc: explicitly set gcc float Hongxu Jia
  0 siblings, 1 reply; 4+ messages in thread
From: Hongxu Jia @ 2016-03-09 11:18 UTC (permalink / raw)
  To: openembedded-core, ross.burton, richard.purdie

I am running a world build, and find build failures:
- usdpaa do_compile failed
  Send patch to meta-freescale mailing list "usdpaa: remove default -mcpu=e500mc64 in Makefile"

- pywbem do_compile failed
  Already a patch in oe-dev for discussing "[oe] [meta-python][jethro][fido][PATCH] python-m2crypto: fix SSLv2 symbol issue"

The world build is not finished, and other failures is in analysis.

//Hongxu

The following changes since commit 5ac3dc76a5afc2ed35b1abfc8e330e0c580eadf0:

  image.bbclass: fix incomplete .rootfs customization (2016-03-07 22:10:54 +0000)

are available in the git repository at:

  git://git.openembedded.org/openembedded-core-contrib hongxu/fix-python3-gcc
  http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=hongxu/fix-buildpath

Hongxu Jia (1):
  tune-ppce500v2.inc: explicitly set gcc float

 meta/conf/machine/include/tune-ppce500v2.inc | 4 ++++
 1 file changed, 4 insertions(+)

-- 
1.9.1



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

* [PATCH 1/1] tune-ppce500v2.inc: explicitly set gcc float
  2016-03-09 11:18 [PATCH 0/1] fix python3 do_configure failed on meta-fsl-ppc with MACHINE = "p1022ds" Hongxu Jia
@ 2016-03-09 11:18 ` Hongxu Jia
  2016-03-09 17:26   ` Richard Purdie
  0 siblings, 1 reply; 4+ messages in thread
From: Hongxu Jia @ 2016-03-09 11:18 UTC (permalink / raw)
  To: openembedded-core, ross.burton, richard.purdie

For powerpc*-*-*spe*, default to with_cpu=8548 if --enable-e500-double,
and to 8540 otherwise.
vim gcc/config.gcc
...
    powerpc*-*-*spe*)
      if test x$enable_e500_double = xyes; then
         with_cpu=8548
      else
         with_cpu=8540
      fi
      ;;
...

The with_cpu is used for SPE version detection
vim ./gcc/config/rs6000/t-linux
...
  7 ifneq (,$(findstring spe,$(target)))
  8 MULTIARCH_DIRNAME := powerpc-linux-gnuspe$(if $(findstring 8548,$(with_cpu)),,v1)
  9 else
 10 MULTIARCH_DIRNAME := powerpc-linux-gnu
...

The variable MULTIARCH_DIRNAME is the output of '$CC --print-multiarch'.
Without this patch, the output is 'powerpc-linux-gnuspev1' which caused
python3 do_configure failed.

Since ppce500v2 -mcpu is 8548, explicitly add --enable-e500-double could fix
the issue.

[YOCTO #9226]

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
 meta/conf/machine/include/tune-ppce500v2.inc | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/meta/conf/machine/include/tune-ppce500v2.inc b/meta/conf/machine/include/tune-ppce500v2.inc
index 20a5f25..70d3078 100644
--- a/meta/conf/machine/include/tune-ppce500v2.inc
+++ b/meta/conf/machine/include/tune-ppce500v2.inc
@@ -18,3 +18,7 @@ AVAILTUNES += "ppce500v2"
 TUNE_FEATURES_tune-ppce500v2 = "m32 spe ppce500v2"
 TUNE_PKGARCH_tune-ppce500v2 = "ppce500v2"
 PACKAGE_EXTRA_ARCHS_tune-ppce500v2 = "ppce500v2"
+
+# For powerpc*-*-*spe*, default to with_cpu=8548 if
+# --enable-e500-double, and to 8540 otherwise.
+EXTRA_OECONF_GCC_FLOAT += "${@get_gcc_float_setting(bb, d)}"
-- 
1.9.1



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

* Re: [PATCH 1/1] tune-ppce500v2.inc: explicitly set gcc float
  2016-03-09 11:18 ` [PATCH 1/1] tune-ppce500v2.inc: explicitly set gcc float Hongxu Jia
@ 2016-03-09 17:26   ` Richard Purdie
  2016-03-10  2:25     ` Hongxu Jia
  0 siblings, 1 reply; 4+ messages in thread
From: Richard Purdie @ 2016-03-09 17:26 UTC (permalink / raw)
  To: Hongxu Jia, openembedded-core, ross.burton

On Wed, 2016-03-09 at 06:18 -0500, Hongxu Jia wrote:
> For powerpc*-*-*spe*, default to with_cpu=8548 if --enable-e500
> -double,
> and to 8540 otherwise.
> vim gcc/config.gcc
> ...
>     powerpc*-*-*spe*)
>       if test x$enable_e500_double = xyes; then
>          with_cpu=8548
>       else
>          with_cpu=8540
>       fi
>       ;;
> ...
> 
> The with_cpu is used for SPE version detection
> vim ./gcc/config/rs6000/t-linux
> ...
>   7 ifneq (,$(findstring spe,$(target)))
>   8 MULTIARCH_DIRNAME := powerpc-linux-gnuspe$(if $(findstring
> 8548,$(with_cpu)),,v1)
>   9 else
>  10 MULTIARCH_DIRNAME := powerpc-linux-gnu
> ...
> 
> The variable MULTIARCH_DIRNAME is the output of '$CC --print
> -multiarch'.
> Without this patch, the output is 'powerpc-linux-gnuspev1' which
> caused
> python3 do_configure failed.
> 
> Since ppce500v2 -mcpu is 8548, explicitly add --enable-e500-double
> could fix
> the issue.
> 
> [YOCTO #9226]
> 
> Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> ---
>  meta/conf/machine/include/tune-ppce500v2.inc | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/meta/conf/machine/include/tune-ppce500v2.inc
> b/meta/conf/machine/include/tune-ppce500v2.inc
> index 20a5f25..70d3078 100644
> --- a/meta/conf/machine/include/tune-ppce500v2.inc
> +++ b/meta/conf/machine/include/tune-ppce500v2.inc
> @@ -18,3 +18,7 @@ AVAILTUNES += "ppce500v2"
>  TUNE_FEATURES_tune-ppce500v2 = "m32 spe ppce500v2"
>  TUNE_PKGARCH_tune-ppce500v2 = "ppce500v2"
>  PACKAGE_EXTRA_ARCHS_tune-ppce500v2 = "ppce500v2"
> +
> +# For powerpc*-*-*spe*, default to with_cpu=8548 if
> +# --enable-e500-double, and to 8540 otherwise.
> +EXTRA_OECONF_GCC_FLOAT += "${@get_gcc_float_setting(bb, d)}"

This is good to understand what is breaking but the patch as it stands
can't be merged as the gcc recipe intentionally doesn't do this, its
only done in gcc-target.inc.

Why?

The theory is we should be building one gcc-cross-powerpc, not multiple
different variants. I did just try a build and realised that switching
machines between p1022ds and qemuppc does rebuild gcc-cross-powerpc but
that is a bug. Adding the above is just going to make this harder to
fix, and will certainly break the SDK gcc-cross-canadian-gcc.

I'm not sure how we should fix this, particularly given that gcc-cross
-powerpc already isn't working properly but the avoid fix isn't right.

Cheers,

Richard






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

* Re: [PATCH 1/1] tune-ppce500v2.inc: explicitly set gcc float
  2016-03-09 17:26   ` Richard Purdie
@ 2016-03-10  2:25     ` Hongxu Jia
  0 siblings, 0 replies; 4+ messages in thread
From: Hongxu Jia @ 2016-03-10  2:25 UTC (permalink / raw)
  To: Richard Purdie, openembedded-core, ross.burton

[-- Attachment #1: Type: text/plain, Size: 2484 bytes --]

On 03/10/2016 01:26 AM, Richard Purdie wrote:
>> +
>> >+# For powerpc*-*-*spe*, default to with_cpu=8548 if
>> >+# --enable-e500-double, and to 8540 otherwise.
>> >+EXTRA_OECONF_GCC_FLOAT += "${@get_gcc_float_setting(bb, d)}"
> This is good to understand what is breaking but the patch as it stands
> can't be merged as the gcc recipe intentionally doesn't do this, its
> only done in gcc-target.inc.

Yes, that is also my worry about, I am not sure why its only
done in gcc-tareget.inc.

> Why?
>
> The theory is we should be building one gcc-cross-powerpc, not multiple
> different variants. I did just try a build and realised that switching
> machines between p1022ds and qemuppc does rebuild gcc-cross-powerpc but
> that is a bug. Adding the above is just going to make this harder to
> fix, and will certainly break the SDK gcc-cross-canadian-gcc.
>
> I'm not sure how we should fix this, particularly given that gcc-cross
> -powerpc already isn't working properly but the avoid fix isn't right.

1. How about directly fix python3. Allow the platform triplet 
'powerpc-linux-gnuspev1',
     It should not have any side effect on python3

diff --git a/configure.ac b/configure.ac
index 9eb3d22..9b4e8ab 100644
--- a/configure.ac
+++ b/configure.ac
@@ -850,7 +850,7 @@ fi
  rm -f conftest.c conftest.out

  if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then
-  if test x$PLATFORM_TRIPLET != x$MULTIARCH; then
+  if test x$PLATFORM_TRIPLET != x$MULTIARCH && test 
xpowerpc-linux-gnuspev1 != x$MULTIARCH; then
      AC_MSG_ERROR([internal configure error for the platform triplet, 
please file a bug report])
    fi
  fi

2. Since the above only done in gcc-tareget.inc, how about apply the 
following
fix to gcc-cross.inc and gcc-cross-canadian.inc, we do not check cpu 
while powerpc pse.

diff --git a/gcc/config/rs6000/t-linux b/gcc/config/rs6000/t-linux
index 4cb63bd..5e10fa4 100644
--- a/gcc/config/rs6000/t-linux
+++ b/gcc/config/rs6000/t-linux
@@ -5,7 +5,7 @@ ifneq (,$(findstring powerpc64,$(target)))
  MULTILIB_OSDIRNAMES := .=../lib64$(call if_multiarch,:powerpc64-linux-gnu)
  else
  ifneq (,$(findstring spe,$(target)))
-MULTIARCH_DIRNAME := powerpc-linux-gnuspe$(if $(findstring 
8548,$(with_cpu)),,v1)
+MULTIARCH_DIRNAME := powerpc-linux-gnuspe
  else
  MULTIARCH_DIRNAME := powerpc-linux-gnu
  endif

I know both of them are workaround.

//Hongxu
> Cheers,
>
> Richard
>
>
>
>


[-- Attachment #2: Type: text/html, Size: 3954 bytes --]

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

end of thread, other threads:[~2016-03-10  2:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-09 11:18 [PATCH 0/1] fix python3 do_configure failed on meta-fsl-ppc with MACHINE = "p1022ds" Hongxu Jia
2016-03-09 11:18 ` [PATCH 1/1] tune-ppce500v2.inc: explicitly set gcc float Hongxu Jia
2016-03-09 17:26   ` Richard Purdie
2016-03-10  2:25     ` Hongxu Jia

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