[ARM/AArch64] Fix -Werror=unused-const-variable warnings in GDBserver
authorYao Qi <yao.qi@linaro.org>
Wed, 6 Jan 2016 12:11:41 +0000 (12:11 +0000)
committerYao Qi <yao.qi@linaro.org>
Wed, 6 Jan 2016 15:00:58 +0000 (15:00 +0000)
This patch fixes gcc warning when build ARM GDBserver and AArch64
GDBserver,

AArch64 GDBserver:

gdb/gdbserver/linux-aarch32-low.h:36:29: error: 'thumb2_breakpoint' defined but not used [-Werror=unused-const-variable]
 static const unsigned short thumb2_breakpoint[] = { 0xf7f0, 0xa000 };
                             ^
gdb/gdbserver/linux-aarch32-low.h:34:29: error: 'thumb_breakpoint' defined but not used [-Werror=unused-const-variable]
 static const unsigned short thumb_breakpoint = 0xde01;
                             ^
gdb/gdbserver/linux-aarch32-low.h:28:28: error: 'arm_breakpoint' defined but not used [-Werror=unused-const-variable]
 static const unsigned long arm_breakpoint = arm_eabi_breakpoint;
                            ^
cc1: all warnings being treated as errors

ARM GDBserver:

gdb/gdbserver/linux-aarch32-low.h:34:29: error: 'thumb_breakpoint' defined but not used [-Werror=unused-const-variable]
 static const unsigned short thumb_breakpoint = 0xde01;
                             ^~~~~~~~~~~~~~~~

gdb/gdbserver/linux-aarch32-low.h:28:28: error: 'arm_breakpoint' defined but not used [-Werror=unused-const-variable]
 static const unsigned long arm_breakpoint = arm_eabi_breakpoint;
                            ^~~~~~~~~~~~~~

by simply moving these macros and variables to
linux-aarch32-low.c and only declare thumb2_breakpoint in
linux-aarch32-low.h, which is not perfect, and reveals some issues
in recent arm GDBserver software single step changes.  I'll post
follow-up patches.

gdb/gdbserver:

2016-01-06  Yao Qi  <yao.qi@linaro.org>

* linux-aarch32-low.h (arm_abi_breakpoint): Move to
linux-aarch32-low.c.
(arm_eabi_breakpoint, arm_breakpoint): Likewise.
(arm_breakpoint_len, thumb_breakpoint_len): Likewise.
(thumb2_breakpoint, thumb2_breakpoint_len): Likewise.
(thumb2_breakpoint): Declare.
* linux-aarch32-low.c (arm_abi_breakpoint): Moved from
linux-aarch32-low.h.
(arm_eabi_breakpoint, arm_breakpoint): Likewise.
(arm_breakpoint_len, thumb_breakpoint_len): Likewise.
(thumb2_breakpoint, thumb2_breakpoint_len): Likewise.

gdb/gdbserver/ChangeLog
gdb/gdbserver/linux-aarch32-low.c
gdb/gdbserver/linux-aarch32-low.h

index 6f6eb1d..0c9e73e 100644 (file)
@@ -1,3 +1,17 @@
+2016-01-06  Yao Qi  <yao.qi@linaro.org>
+
+       * linux-aarch32-low.h (arm_abi_breakpoint): Move to
+       linux-aarch32-low.c.
+       (arm_eabi_breakpoint, arm_breakpoint): Likewise.
+       (arm_breakpoint_len, thumb_breakpoint_len): Likewise.
+       (thumb2_breakpoint, thumb2_breakpoint_len): Likewise.
+       (thumb2_breakpoint): Declare.
+       * linux-aarch32-low.c (arm_abi_breakpoint): Moved from
+       linux-aarch32-low.h.
+       (arm_eabi_breakpoint, arm_breakpoint): Likewise.
+       (arm_breakpoint_len, thumb_breakpoint_len): Likewise.
+       (thumb2_breakpoint, thumb2_breakpoint_len): Likewise.
+
 2016-01-01  Joel Brobecker  <brobecker@adacore.com>
 
        * gdbreplay.c (gdbreplay_version): Change copyright year in
index 74deca3..ed66e08 100644 (file)
 #include <elf.h>
 #endif
 
+/* Correct in either endianness.  */
+#define arm_abi_breakpoint 0xef9f0001UL
+
+/* For new EABI binaries.  We recognize it regardless of which ABI
+   is used for gdbserver, so single threaded debugging should work
+   OK, but for multi-threaded debugging we only insert the current
+   ABI's breakpoint instruction.  For now at least.  */
+#define arm_eabi_breakpoint 0xe7f001f0UL
+
+#if (defined __ARM_EABI__ || defined __aarch64__)
+static const unsigned long arm_breakpoint = arm_eabi_breakpoint;
+#else
+static const unsigned long arm_breakpoint = arm_abi_breakpoint;
+#endif
+
+#define arm_breakpoint_len 4
+static const unsigned short thumb_breakpoint = 0xde01;
+#define thumb_breakpoint_len 2
+const unsigned short thumb2_breakpoint[] = { 0xf7f0, 0xa000 };
+#define thumb2_breakpoint_len 4
+
 /* Some older versions of GNU/Linux and Android do not define
    the following macros.  */
 #ifndef NT_ARM_VFP
index c8f6646..5c68454 100644 (file)
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-/* Correct in either endianness.  */
-#define arm_abi_breakpoint 0xef9f0001UL
-
-/* For new EABI binaries.  We recognize it regardless of which ABI
-   is used for gdbserver, so single threaded debugging should work
-   OK, but for multi-threaded debugging we only insert the current
-   ABI's breakpoint instruction.  For now at least.  */
-#define arm_eabi_breakpoint 0xe7f001f0UL
-
-#if (defined __ARM_EABI__ || defined __aarch64__)
-static const unsigned long arm_breakpoint = arm_eabi_breakpoint;
-#else
-static const unsigned long arm_breakpoint = arm_abi_breakpoint;
-#endif
-
-#define arm_breakpoint_len 4
-static const unsigned short thumb_breakpoint = 0xde01;
-#define thumb_breakpoint_len 2
-static const unsigned short thumb2_breakpoint[] = { 0xf7f0, 0xa000 };
-#define thumb2_breakpoint_len 4
+extern const unsigned short thumb2_breakpoint[];
 
 extern struct regs_info regs_info_aarch32;