From 9839c169f513e65fc711646257b3e8588cce623c Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 5 Aug 2020 12:06:01 -0700
Subject: [PATCH] libacpi: Fix build witth -fno-commom

Upstream-Status: Pending

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 libacpi.c | 16 ++++++++++++++++
 libacpi.h |  6 +++---
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/libacpi.c b/libacpi.c
index 4e34725..9344ea4 100644
--- a/libacpi.c
+++ b/libacpi.c
@@ -14,6 +14,22 @@
 #include "libacpi.h"
 #include "list.h"
 
+/**
+ * Array for existing batteries, loop until
+ * globals->battery_count
+ */
+battery_t batteries[MAX_ITEMS];
+/**
+ * Array for existing thermal zones, loop until
+ * globals->thermal_count
+ */
+thermal_t thermals[MAX_ITEMS];
+/**
+ * Array for existing fans, loop until
+ * globals->fan_count
+ */
+fan_t fans[MAX_ITEMS];
+
 static int read_acpi_battinfo(const int num);
 static int read_acpi_battalarm(const int num);
 static int read_acpi_battstate(const int num);
diff --git a/libacpi.h b/libacpi.h
index 9334b79..5242d3d 100644
--- a/libacpi.h
+++ b/libacpi.h
@@ -183,17 +183,17 @@ typedef struct {
  * Array for existing batteries, loop until
  * globals->battery_count
  */
-battery_t batteries[MAX_ITEMS];
+extern battery_t batteries[MAX_ITEMS];
 /**
  * Array for existing thermal zones, loop until
  * globals->thermal_count
  */
-thermal_t thermals[MAX_ITEMS];
+extern thermal_t thermals[MAX_ITEMS];
 /**
  * Array for existing fans, loop until
  * globals->fan_count
  */
-fan_t fans[MAX_ITEMS];
+extern fan_t fans[MAX_ITEMS];
 /**
  * Finds existing batteries and fills the
  * corresponding batteries structures with the paths
-- 
2.28.0

