grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 1/2] Add powerpc little-endian (ppc64le) flags


From: Vladimir 'phcoder' Serbinenko
Subject: Re: [PATCH 1/2] Add powerpc little-endian (ppc64le) flags
Date: Tue, 30 Jun 2015 21:34:10 +0200

I think those flags disable only runtime libraries, not the code generation

Le 30 juin 2015 20:29, "Andrei Borzenkov" <address@hidden> a écrit :
В Tue, 30 Jun 2015 15:05:46 -0300
Paulo Flabiano Smorigo <address@hidden> пишет:

> On 2015-06-30 11:33, Vladimir 'phcoder' Serbinenko wrote:
> > What about clang?
>
> Not good news about clang support. This is what the toolchain team said
> about it:
>
> The -mbig-endian option was added around April 10th, 2014.
> Unfortunately, those who implemented it only implemented it for ARM and
> one other architecture.
>
> The option is currently accepted on Power systems, but does not have any
> affect on the code generation for Power.
>
>
> So, what can we do here? Maybe add a constrain in the configure file
> saying that it's not possible to build GRUB in a LE environment using clang.

If I understand it correctly, it is possible to build for big-endian
PowerPC using

clang -target=powerpc

but then we depend on clang being built with BE target support; and
e.g. openSUSE builds it with

cmake -G "Ninja" \
      -DBUILD_SHARED_LIBS=OFF \
      -DCMAKE_BUILD_TYPE=Release \
      -DLLVM_ENABLE_ASSERTIONS=OFF \
      -DLLVM_TARGETS_TO_BUILD=host \
      -DCMAKE_C_FLAGS="-O0" \
      -DCMAKE_CXX_FLAGS="-O0" \
      -DLLVM_HOST_TRIPLE=%{host_triple} \

so as I understand on ppc64le it does not build support for any other
target. Actually openSUSE does not even build clang on ppc at all.



> >
> > Le 30 juin 2015 16:30, "Andrei Borzenkov" <address@hidden
> > <mailto:address@hidden>> a écrit :
> >
> >     On Tue, Jun 30, 2015 at 5:03 PM, Vladimir 'phcoder' Serbinenko
> >     <address@hidden <mailto:address@hidden>> wrote:
> >      > Which compilers support these flags? I'm concerned of breaking
> >     old compilers
> >      >
> >
> >     -static and -mbig-endian are listed in gcc 2.95.3 documentation for PPC.
> >
> >      > Le 30 juin 2015 14:57, "Paulo Flabiano Smorigo"
> >      > <address@hidden
> >     <mailto:address@hidden>> a écrit :
> >      >>
> >      >> libgcc dependency was removed *just* for this target because
> >      >> the distros that use ppc64el doesn't have 32-bit support on it.
> >      >>
> >      >> * configure.ac <http://configure.ac>: Add targets for
> >     powerpc64el and skip libgcc.
> >      >> * Makefile.am: Likewise.
> >      >> ---
> >      >> configure.ac <http://configure.ac> | 8 ++++++++
> >      >>  1 file changed, 8 insertions(+)
> >      >>
> >      >> diff --git a/configure.ac <http://configure.ac> b/configure.ac
> >     <http://configure.ac>
> >      >> index fd8a62e..0a79fad 100644
> >      >> --- a/configure.ac <http://configure.ac>
> >      >> +++ b/configure.ac <http://configure.ac>
> >      >> @@ -116,6 +116,7 @@ if test "x$with_platform" = x; then
> >      >>      x86_64-*) platform=pc ;;
> >      >>      powerpc-*) platform=ieee1275 ;;
> >      >>      powerpc64-*) platform=ieee1275 ;;
> >      >> +    powerpc64le-*) platform=ieee1275 ;;
> >      >>      sparc64-*) platform=ieee1275 ;;
> >      >>      mipsel-*) platform=loongson ;;
> >      >>      mips-*) platform=arc ;;
> >      >> @@ -138,6 +139,7 @@ case "$target_cpu"-"$platform" in
> >      >>    x86_64-none) ;;
> >      >>    x86_64-*) target_cpu=i386 ;;
> >      >>    powerpc64-ieee1275) target_cpu=powerpc ;;
> >      >> +  powerpc64le-ieee1275) target_cpu=powerpc ;;
> >      >>  esac
> >      >>
> >      >>  # Check if the platform is supported, make final adjustments.
> >      >> @@ -601,6 +603,12 @@ if test "x$target_cpu" = xi386 && test
> >     "x$platform"
> >      >> != xemu; then
> >      >>    TARGET_CFLAGS="$TARGET_CFLAGS -march=i386"
> >      >>  fi
> >      >>
> >      >> +if test x$target_cpu = xpowerpc; then
> >      >> +  TARGET_CFLAGS="$TARGET_CFLAGS -mbig-endian"
> >      >> +  TARGET_CCASFLAGS="$TARGET_CCASFLAGS -mbig-endian"
> >      >> +  TARGET_LDFLAGS="$TARGET_LDFLAGS -static -mbig-endian"
> >      >> +fi
> >      >> +
> >      >>  if test "x$target_m32" = x1; then
> >      >>    # Force 32-bit mode.
> >      >>    TARGET_CFLAGS="$TARGET_CFLAGS -m32"
> >      >> --
> >      >> 2.1.0
> >      >>
> >      >>
> >      >> _______________________________________________
> >      >> Grub-devel mailing list
> >      >> address@hidden <mailto:address@hidden>
> >      >> https://lists.gnu.org/mailman/listinfo/grub-devel
> >      >
> >      >
> >      > _______________________________________________
> >      > Grub-devel mailing list
> >      > address@hidden <mailto:address@hidden>
> >      > https://lists.gnu.org/mailman/listinfo/grub-devel
> >      >
> >
> >     _______________________________________________
> >     Grub-devel mailing list
> >     address@hidden <mailto:address@hidden>
> >     https://lists.gnu.org/mailman/listinfo/grub-devel
> >
> >
> >
> > _______________________________________________
> > Grub-devel mailing list
> > address@hidden
> > https://lists.gnu.org/mailman/listinfo/grub-devel
> >
>
>


_______________________________________________
Grub-devel mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/grub-devel

reply via email to

[Prev in Thread] Current Thread [Next in Thread]