hello_world: Adjust header inclusions and Makefile
authorPaul Mackerras <paulus@ozlabs.org>
Wed, 1 Apr 2020 04:46:43 +0000 (15:46 +1100)
committerPaul Mackerras <paulus@ozlabs.org>
Fri, 3 Apr 2020 01:10:31 +0000 (12:10 +1100)
Currently hello_world fails to build with distro cross compiler
packages such as Debian gcc-powerpc64-linux-gnu, because it doesn't
provide string.h or unistd.h.  In fact we don't need them, we just
need stddef.h.  This adds #include <stddef.h> to console.h to get
size_t defined.  We also add #include "console.h" to console.c.

The hello_world Makefile currently hard-codes CROSS_COMPILE on
non-PPC machines.  This means that a command like:

$ CROSS_COMPILE=powerpc64le-linux-gnu- make

doesn't do what you expect; it just tries to use powerpc64le-linux-gcc
regardless.  Adding a '?' makes it do what one expects.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
hello_world/Makefile
hello_world/console.c
hello_world/console.h
hello_world/hello_world.c

index 0cbc69fa49f8f008358428a2fda24bcc022fc462..f7f949711dbfbc300d9fbf0fa847432a7966c5c9 100644 (file)
@@ -1,7 +1,7 @@
 ARCH = $(shell uname -m)
 ifneq ("$(ARCH)", "ppc64")
 ifneq ("$(ARCH)", "ppc64le")
-        CROSS_COMPILE = powerpc64le-linux-
+        CROSS_COMPILE ?= powerpc64le-linux-
         endif
         endif
 
index 640eb48d6c7463465b75a80ca6b101d5cb2afee4..f8e5441f7c7e376581102d7338f9972a5c8b4cc0 100644 (file)
@@ -1,8 +1,8 @@
-#include <unistd.h>
-#include <string.h>
 #include <stdint.h>
 #include <stdbool.h>
 
+#include "console.h"
+
 /*
  * Core UART functions to implement for a port
  */
index 85e7b36a897e86b9bf28f99f3e1feff18332721a..fc64b9153f76e352618bb3b57c0055b691cab9b5 100644 (file)
@@ -1,3 +1,5 @@
+#include <stddef.h>
+
 void potato_uart_init(void);
 int getchar(void);
 void putchar(unsigned char c);
index f1d13670fff541e0646b580c9260803a5006cbe5..7e853d8cadafe3dc85f510cd03ba33b45c9a84a7 100644 (file)
@@ -1,5 +1,3 @@
-#include <unistd.h>
-#include <string.h>
 #include <stdint.h>
 #include <stdbool.h>