All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 0/3] grub powerpc64 little-endian enablement
@ 2014-08-28 19:56 Paulo Flabiano Smorigo
  2014-08-28 19:56 ` [RFC PATCH 1/3] Add powerpc little-endian (ppc64le) flags Paulo Flabiano Smorigo
                   ` (4 more replies)
  0 siblings, 5 replies; 19+ messages in thread
From: Paulo Flabiano Smorigo @ 2014-08-28 19:56 UTC (permalink / raw)
  To: grub-devel; +Cc: Paulo Flabiano Smorigo

From: Paulo Flabiano Smorigo <pfsmorigo@br.ibm.com>

Hi,

At the beginning of the year we provide a patchset that enabled GRUB for
little-endian PowerPC. Our approach at the time was to build GRUB itself and
its tools in 64-bit little-endian. One of the reasons of build in 64-bit is
to avoid 32-bit dependencies in the distro and build a system entirely 64-bit.

This patchset was not welcomed at the time because it would bring a
high-maintainance-cost, without real gain since it could just be cross-compiled.

After that, Brent Baude, Vladmir (phcoder) and I started to work in a solution
that would cross-compile but without 32-bit dependencies. This patchset is the
result of this new approach. It's based on the work of Brent Baude, Vladimir
(phcoder), and Tomohiro.

It can be devided in two parts:

  1) Skip libgcc dependency just for ppc64el (patch 1 and 2);
  2) Check elf endianess and byteswap if necessary (patch 3);

The result is GRUB itself in 32-bit BE and its tools in 64-bit LE. This solution
satisfies the needs of the distros. I tested it in three different distros, in
both endianess and it's fine.

If thoses patches were accepted we will have an official solution. Nowadays,
distros are taking diffrent approachs. Some of then are using the original
solutions and others are using cross-compiler.

--
Paulo Flabiano Smorigo
IBM Linux Technology Center


Paulo Flabiano Smorigo (3):
  Add powerpc little-endian (ppc64le) flags
  Files reorganization and include some libgcc fuctions
  Suport for bi-endianess in elf file

 configure.ac                         |  17 ++++-
 grub-core/Makefile.am                |   2 +
 grub-core/Makefile.core.def          |   1 +
 grub-core/kern/elf.c                 |  60 +++++++++++++++-
 grub-core/kern/elfXX.c               |  73 ++++++++++++++++++++
 grub-core/kern/misc.c                | 107 ++++++++++++++++++++++++++++
 grub-core/kern/powerpc/compiler-rt.S | 130 +++++++++++++++++++++++++++++++++++
 include/grub/compiler.h              |  61 ++++++++++++++++
 include/grub/libgcc.h                |  67 ------------------
 9 files changed, 447 insertions(+), 71 deletions(-)
 create mode 100644 grub-core/kern/powerpc/compiler-rt.S

-- 
1.8.1.4



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

end of thread, other threads:[~2015-06-16 16:45 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-28 19:56 [RFC PATCH 0/3] grub powerpc64 little-endian enablement Paulo Flabiano Smorigo
2014-08-28 19:56 ` [RFC PATCH 1/3] Add powerpc little-endian (ppc64le) flags Paulo Flabiano Smorigo
2014-09-17 22:04   ` Paulo Flabiano Smorigo
2014-09-19 13:48     ` Colin Watson
2014-09-21 16:05     ` Vladimir 'φ-coder/phcoder' Serbinenko
2014-08-28 19:56 ` [RFC PATCH 2/3] Files reorganization and include some libgcc fuctions Paulo Flabiano Smorigo
2014-09-08  2:16   ` Colin Watson
2014-09-17 21:43     ` Paulo Flabiano Smorigo
2014-09-19 14:03       ` Colin Watson
2014-09-21 16:07       ` Vladimir 'φ-coder/phcoder' Serbinenko
2014-08-28 19:56 ` [RFC PATCH 3/3] Suport for bi-endianess in elf file Paulo Flabiano Smorigo
2015-06-16 16:44   ` Andrei Borzenkov
2014-09-21 13:58 ` [RFC PATCH 0/3] grub powerpc64 little-endian enablement Andrei Borzenkov
2014-09-21 14:24   ` Andrei Borzenkov
2014-09-25 22:48     ` Paulo Flabiano Smorigo
2014-09-26 15:52       ` Andrei Borzenkov
2014-09-26 18:18         ` Paulo Flabiano Smorigo
2015-06-15 17:15 ` Andrei Borzenkov
2015-06-16 12:36   ` Paulo Flabiano Smorigo

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.