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

Bug#816394: elfutils: FTBFS[!linux] with gcc-6: unused const, functions



Package: elfutils
Version: 0.165-3
Severity: important
Tags: patch

Hi,

elfutils will FTBFS on kfreebsd (and I suspect on hurd) with gcc-6,
because there is an unused const and several unused, unexported stub
functions in linux-pid-attach.c inside a code block guarded by
#ifndef __linux__

A patch is attached that removes the unused code.  I tested this on
kfreebsd-amd64, where all tests pass except for the skipped ones, and
dwfl-proc-attach correctly states "dwfl_linux_proc_attach unsupported"
as before.

Thank you!

-- System Information:
Debian Release: stretch/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: kfreebsd-amd64 (x86_64)

Kernel: kFreeBSD 10.1-0-amd64
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Subject: libdwfl: clean up unused code for non-Linux GNU platforms
From: Steven Chamberlain <steven@pyro.eu.org>
Date: Tue, 01 Mar 2016 13:32:37 +0000

For non-Linux GNU platforms (like kFreeBSD, Hurd), linux-pid-attach.c
had some stub functions that are not used or exported.  Since gcc-6,
having these caused compiler errors due to -Wall -Werror:

linux-pid-attach.c:479:36: error: 'pid_thread_callbacks' defined but not used [-Werror=unused-const-variable=]

linux-pid-attach.c:474:1: error: 'pid_thread_detach' defined but not used [-Werror=unused-function]
linux-pid-attach.c:461:1: error: 'pid_detach' defined but not used [-Werror=unused-function]
linux-pid-attach.c:452:1: error: 'pid_set_initial_registers' defined but not used [-Werror=unused-function]
linux-pid-attach.c:441:1: error: 'pid_memory_read' defined but not used [-Werror=unused-function]
linux-pid-attach.c:420:1: error: 'pid_getthread' defined but not used [-Werror=unused-function]
linux-pid-attach.c:410:1: error: 'pid_next_thread' defined but not used [-Werror=unused-function]

This part of the source file is guarded by #ifndef __linux__

--- a/libdwfl/linux-pid-attach.c
+++ b/libdwfl/linux-pid-attach.c
@@ -406,27 +406,6 @@
 
 #else	/* __linux__ */
 
-static pid_t
-pid_next_thread (Dwfl *dwfl __attribute__ ((unused)),
-	         void *dwfl_arg __attribute__ ((unused)),
-		 void **thread_argp __attribute__ ((unused)))
-{
-  errno = ENOSYS;
-  __libdwfl_seterrno (DWFL_E_ERRNO);
-  return -1;
-}
-
-static bool
-pid_getthread (Dwfl *dwfl __attribute__ ((unused)),
-	       pid_t tid __attribute__ ((unused)),
-	       void *dwfl_arg __attribute__ ((unused)),
-	       void **thread_argp __attribute__ ((unused)))
-{
-  errno = ENOSYS;
-  __libdwfl_seterrno (DWFL_E_ERRNO);
-  return false;
-}
-
 bool
 internal_function
 __libdwfl_ptrace_attach (pid_t tid __attribute__ ((unused)),
@@ -437,32 +416,6 @@
   return false;
 }
 
-static bool
-pid_memory_read (Dwfl *dwfl __attribute__ ((unused)),
-                 Dwarf_Addr addr __attribute__ ((unused)),
-	         Dwarf_Word *result __attribute__ ((unused)),
-	         void *arg __attribute__ ((unused)))
-{
-  errno = ENOSYS;
-  __libdwfl_seterrno (DWFL_E_ERRNO);
-  return false;
-}
-
-static bool
-pid_set_initial_registers (Dwfl_Thread *thread __attribute__ ((unused)),
-			   void *thread_arg __attribute__ ((unused)))
-{
-  errno = ENOSYS;
-  __libdwfl_seterrno (DWFL_E_ERRNO);
-  return false;
-}
-
-static void
-pid_detach (Dwfl *dwfl __attribute__ ((unused)),
-	    void *dwfl_arg __attribute__ ((unused)))
-{
-}
-
 void
 internal_function
 __libdwfl_ptrace_detach (pid_t tid __attribute__ ((unused)),
@@ -470,22 +423,6 @@
 {
 }
 
-static void
-pid_thread_detach (Dwfl_Thread *thread __attribute__ ((unused)),
-		  void *thread_arg __attribute__ ((unused)))
-{
-}
-
-static const Dwfl_Thread_Callbacks pid_thread_callbacks =
-{
-  pid_next_thread,
-  pid_getthread,
-  pid_memory_read,
-  pid_set_initial_registers,
-  pid_detach,
-  pid_thread_detach,
-};
-
 int
 dwfl_linux_proc_attach (Dwfl *dwfl __attribute__ ((unused)),
 			pid_t pid __attribute__ ((unused)),

Reply to: