All of lore.kernel.org
 help / color / mirror / Atom feed
From: Khem Raj <raj.khem@gmail.com>
To: Serhey Popovych <serhe.popovych@gmail.com>
Cc: Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 00/13] powerpc/powerpc64: Support build with musl as libc
Date: Fri, 14 Dec 2018 15:46:31 -0800	[thread overview]
Message-ID: <CAMKF1spRwzV+NRwbdFDHMgX4ffP3CZ_NKoOS8QF60KJkBKbJCw@mail.gmail.com> (raw)
In-Reply-To: <1544810082-22164-1-git-send-email-serhe.popovych@gmail.com>

Serhey

Thanks for doing this work and really a clean pull request with good
explanation that I have seen lately. Good work, For most parts
everything is in order except few places where I have replied
specifically to the patches

On Fri, Dec 14, 2018 at 9:55 AM Serhey Popovych
<serhe.popovych@gmail.com> wrote:
>
> Musl has support for ppc (32bit) and ppc64 (64bit). OE still missing
> several tricks in configuration to make builds possible:
>
>   1) Most important part is that musl implements elfv2 ABI only for
>      64bit PowerPC. That ABI is default for little-endian but supports
>      big-endian too. Historically elfv1 ABI is used for big-endian
>      PowerPC.
>
>   2) Using uncommon elfv2 ABI for big-endian requires to disable all
>      assembler optimizations in openssl: unfortunately I can't find more
>      smart way at the moment.
>
>   3) LDSO path need to be adjusted to support /lib64 path which is
>      default for powerpc64 (see bitbake.conf) instead of $baselibdir.
>
>   4) Default library search path is hardcoded to
>      "/lib:/usr/local/lib:/usr/lib": pass -DSYSLIBDIR and -DLIBDIR and
>      use them to set path.
>
>   5) Need to add more tweaks to patch that adds --with-ldbl-128 knob
>      to gcc configure: there is a set of functions that use TFtype in
>      ppc64-fp.c in libgcc. This should be compatible with glibc.
>
>   6) Disable qemu-userspace for powerpc64 bit: there is no support.
>      While there change qemuwrapper to exit explicitly to fix infinite
>      execution in do_rootfs() task when building on IBM POWER8 machine.
>
>   7) Misc fixes that map powerpc-linux-musl python3 triplet to
>      powerpc-linux-gnu, remove conflicting sed in do_configure() vs
>      patch settings in gcc and fix DEFAULTTUNE settings for various
>      IBM POWER platforms.
>
> Build is done on IBM POWER8 machine running RHEL7:
>
> Images:
> -------
>     core-image-sato
>     core-image-full-cmdline
>
> For powerpc64:
> --------------
>               glibc                musl
>          systemd sysvinit    systemd sysvinit
>   gcc-7.3   y       y           y       y
>   gcc-8.2   y       y           y       y
>
> For powerpc:
> ------------
>               glibc                musl
>          systemd sysvinit    systemd sysvinit
>   gcc-7.3   n       x           x       x      (*)
>   gcc-8.2   y       y           y       y
>
> Note that gcc-7.3 builds for 32bit powerpc fail due to:
>   https://bugzilla.yoctoproject.org/show_bug.cgi?id=11754
>
> Kernel/images are boot tested using KVM-HV on IBM POWER8.
>
> Serhey Popovych (13):
>   lib/oe/elf.py: Add powerpc64 architecture definition for musl
>   tune-power[5-7].inc: Fix DEFAULTTUNE values
>   tune-power[5-7].inc: Disable QEMU usermode usage
>   qemuwrapper: Explicitly exit in case of no qemu supported for target
>   arch-powerpc64.inc: Use elfv2 ABI when building with musl
>   musl: Create default library search path based on configuration
>   musl: Ensure GLIBC_LDSO symlink target does not exist on reinstall
>   openssl: Skip assembler optimized code for powerpc64 with musl
>   python3: Fix do_configure check platform triplet error (2)
>   gcc: Fix preprocessor redefines for header pathes
>   gcc: More places to patch to disable ldbl 128 for musl on PPC
>   gcc: Enable secureplt for powerpc64 target too
>   gcc-7.3,gcc-8.2: Use variable SYSTEMLIBS_DIR instead of hardcoding it
>     for ppc64
>
>  .../machine/include/powerpc/arch-powerpc64.inc     |   3 +
>  meta/conf/machine/include/tune-power5.inc          |   5 +-
>  meta/conf/machine/include/tune-power6.inc          |   5 +-
>  meta/conf/machine/include/tune-power7.inc          |   5 +-
>  meta/lib/oe/elf.py                                 |   1 +
>  .../openssl/openssl10_1.0.2q.bb                    |   1 +
>  .../recipes-connectivity/openssl/openssl_1.1.1a.bb |   1 +
>  ...slibdir-and-libdir-as-default-pathes-to-l.patch |  61 ++++
>  meta/recipes-core/musl/musl_git.bb                 |   3 +-
>  meta/recipes-devtools/gcc/gcc-7.3.inc              |   1 +
>  ...Ensure-target-gcc-headers-can-be-included.patch |  36 --
>  ...44-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch | 391 ++++++++++++++++++++-
>  ...werpc-powerpc64-Add-support-for-musl-ldso.patch |  31 ++
>  meta/recipes-devtools/gcc/gcc-8.2.inc              |   1 +
>  ...Ensure-target-gcc-headers-can-be-included.patch |  36 --
>  ...34-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch | 342 +++++++++++++++++-
>  ...werpc-powerpc64-Add-support-for-musl-ldso.patch |  31 ++
>  meta/recipes-devtools/gcc/gcc-common.inc           |   2 +-
>  .../tweak-MULTIARCH-for-powerpc-linux-musl.patch   |  40 +++
>  meta/recipes-devtools/python/python3_3.5.6.bb      |   1 +
>  .../recipes-devtools/qemu/qemuwrapper-cross_1.0.bb |   3 +-
>  21 files changed, 920 insertions(+), 80 deletions(-)
>  create mode 100644 meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch
>  create mode 100644 meta/recipes-devtools/gcc/gcc-7.3/0050-powerpc-powerpc64-Add-support-for-musl-ldso.patch
>  create mode 100644 meta/recipes-devtools/gcc/gcc-8.2/0042-powerpc-powerpc64-Add-support-for-musl-ldso.patch
>  create mode 100644 meta/recipes-devtools/python/python3/tweak-MULTIARCH-for-powerpc-linux-musl.patch
>
> --
> 2.7.4
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


  parent reply	other threads:[~2018-12-14 23:46 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-14 17:54 [PATCH 00/13] powerpc/powerpc64: Support build with musl as libc Serhey Popovych
2018-12-14 17:54 ` [PATCH 01/13] lib/oe/elf.py: Add powerpc64 architecture definition for musl Serhey Popovych
2018-12-14 17:54 ` [PATCH 02/13] tune-power[5-7].inc: Fix DEFAULTTUNE values Serhey Popovych
2018-12-14 17:54 ` [PATCH 03/13] tune-power[5-7].inc: Disable QEMU usermode usage Serhey Popovych
2018-12-14 17:54 ` [PATCH 04/13] qemuwrapper: Explicitly exit in case of no qemu supported for target Serhey Popovych
2018-12-14 17:54 ` [PATCH 05/13] arch-powerpc64.inc: Use elfv2 ABI when building with musl Serhey Popovych
2018-12-14 23:36   ` Khem Raj
2018-12-17  9:36     ` Serhey Popovych
2018-12-17 10:26       ` Richard Purdie
2018-12-14 17:54 ` [PATCH 06/13] musl: Create default library search path based on configuration Serhey Popovych
2018-12-14 23:40   ` Khem Raj
2018-12-17  9:37     ` Serhey Popovych
2018-12-14 17:54 ` [PATCH 07/13] musl: Ensure GLIBC_LDSO symlink target does not exist on reinstall Serhey Popovych
2018-12-14 19:09   ` Andre McCurdy
2018-12-15 11:00     ` Richard Purdie
2018-12-17  9:49       ` Serhey Popovych
2018-12-17 10:44         ` richard.purdie
2018-12-17 15:13           ` Serhey Popovych
2018-12-14 17:54 ` [PATCH 08/13] openssl: Skip assembler optimized code for powerpc64 with musl Serhey Popovych
2018-12-14 17:54 ` [PATCH 09/13] python3: Fix do_configure check platform triplet error (2) Serhey Popovych
2018-12-14 17:54 ` [PATCH 10/13] gcc: Fix preprocessor redefines for header pathes Serhey Popovych
2018-12-14 17:54 ` [PATCH 11/13] gcc: More places to patch to disable ldbl 128 for musl on PPC Serhey Popovych
2018-12-14 23:44   ` Khem Raj
2018-12-15 12:06     ` Richard Purdie
2018-12-14 17:54 ` [PATCH 12/13] gcc: Enable secureplt for powerpc64 target too Serhey Popovych
2018-12-14 17:54 ` [PATCH 13/13] gcc-7.3, gcc-8.2: Use variable SYSTEMLIBS_DIR instead of hardcoding it for ppc64 Serhey Popovych
2018-12-14 23:46 ` Khem Raj [this message]
2018-12-17  9:56   ` [PATCH 00/13] powerpc/powerpc64: Support build with musl as libc Serhey Popovych

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAMKF1spRwzV+NRwbdFDHMgX4ffP3CZ_NKoOS8QF60KJkBKbJCw@mail.gmail.com \
    --to=raj.khem@gmail.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=serhe.popovych@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.