I'm actually not sure why it doesn't pick this up automatically, but it seems to only be looking for crosstools in `@local_config_cc`, which doesn't contain a ppc crosstool (?).  You have to give the `--crosstool_top=//tools/cpp:default-toolchain` argument to make it look at //tools/cpp, which _does_ contain a ppc toolchain.

However, I'm not actually sure how to give extra arguments to the ./compile.sh script, so assigning to @damienmg for clarification on:

1. How to pass `--crosstool_top` into `./compile.sh`.
2. Why `@local_config_cc` doesn't contain the same toolchain as `@bazel_tools`.
3. Why they aren't both used to find toolchains. I solved it making two small modifications:

1- added 
       default_toolchain {
  	  cpu: "ppc64"
  	  toolchain_identifier: "local_linux"
	}

   to tools/cpp/CROSSTOOL

2- in the file "tools/cpp/cc_configure.bzl" changed 

    "if result.stdout.strip() in ["power", "ppc64le", "ppc"]:"

    into

   "if result.stdout.strip() in ["power", "ppc64le", "ppc", "ppc64"]:"

I am not sure if both the modifications are actually necessary, but that's what I did and I successfully built bazel @davideleoni90: would you be willing to send a PR with those modification? They looks reasonable to me. (re-opened the bug because the code is not fixed)
nit: add missing space after the comma.
Compile Bazel on Power8
Hi!

I am trying to compile Bazel from source on a Power 8 machine.

Here's the error I get when launching "bash compile.sh"

🍃  Building Bazel from scratch.......
🍃  Building Bazel with Bazel.
ERROR: No toolchain found for cpu 'ppc'. Valid cpus are: [
  piii,
  armeabi-v7a,
  x64_windows_msvc,
  x64_windows_msys,
  s390x,
  ios_x86_64,
].
INFO: Elapsed time: 2.181s

ERROR: Could not build Bazel

The output from uname -a:

4.7.4-200.fc24.ppc64 #1 SMP Thu Sep 22 17:40:37 UTC 2016 ppc64 ppc64 ppc64 GNU/Linux

Do you have any idea of why I get this error?

Thank you

tools/cpp/CROSSTOOL tools/cpp/cc_configure.bzl
tools/cpp/CROSSTOOL tools/cpp/cc_configure.bzl
diff --git a/tools/cpp/CROSSTOOL b/tools/cpp/CROSSTOOL
index bb22006090ab08..d70a6dcb604908 100644
--- a/tools/cpp/CROSSTOOL
+++ b/tools/cpp/CROSSTOOL
@@ -44,6 +44,11 @@ default_toolchain {
   toolchain_identifier: "local_linux"
 }
 
+default_toolchain {
+  cpu: "ppc64"
+  toolchain_identifier: "local_linux"
+}
+
 default_toolchain {
   cpu: "ios_x86_64"
   toolchain_identifier: "ios_x86_64"
diff --git a/tools/cpp/cc_configure.bzl b/tools/cpp/cc_configure.bzl
index 4f93195d26b999..ae87934b68ce49 100644
--- a/tools/cpp/cc_configure.bzl
+++ b/tools/cpp/cc_configure.bzl
@@ -161,7 +161,7 @@ def _get_cpu_value(repository_ctx):
     return "x64_windows"
   # Use uname to figure out whether we are on x86_32 or x86_64
   result = repository_ctx.execute(["uname", "-m"])
-  if result.stdout.strip() in ["power", "ppc64le", "ppc"]:
+  if result.stdout.strip() in ["power", "ppc64le", "ppc", "ppc64"]:
     return "ppc"
   if result.stdout.strip() in ["arm", "armv7l", "aarch64"]:
     return "arm"
