lkml.org 
[lkml]   [2020]   [Mar]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.19 09/37] cpupower: avoid multiple definition with gcc -fno-common
    Date
    From: Mike Gilbert <floppym@gentoo.org>

    [ Upstream commit 2de7fb60a4740135e03cf55c1982e393ccb87b6b ]

    Building cpupower with -fno-common in CFLAGS results in errors due to
    multiple definitions of the 'cpu_count' and 'start_time' variables.

    ./utils/idle_monitor/snb_idle.o:./utils/idle_monitor/cpupower-monitor.h:28:
    multiple definition of `cpu_count';
    ./utils/idle_monitor/nhm_idle.o:./utils/idle_monitor/cpupower-monitor.h:28:
    first defined here
    ...
    ./utils/idle_monitor/cpuidle_sysfs.o:./utils/idle_monitor/cpuidle_sysfs.c:22:
    multiple definition of `start_time';
    ./utils/idle_monitor/amd_fam14h_idle.o:./utils/idle_monitor/amd_fam14h_idle.c:85:
    first defined here

    The -fno-common option will be enabled by default in GCC 10.

    Bug: https://bugs.gentoo.org/707462
    Signed-off-by: Mike Gilbert <floppym@gentoo.org>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    tools/power/cpupower/utils/idle_monitor/amd_fam14h_idle.c | 2 +-
    tools/power/cpupower/utils/idle_monitor/cpuidle_sysfs.c | 2 +-
    tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c | 2 ++
    tools/power/cpupower/utils/idle_monitor/cpupower-monitor.h | 2 +-
    4 files changed, 5 insertions(+), 3 deletions(-)

    diff --git a/tools/power/cpupower/utils/idle_monitor/amd_fam14h_idle.c b/tools/power/cpupower/utils/idle_monitor/amd_fam14h_idle.c
    index 2116df9ad8325..c097a3748674f 100644
    --- a/tools/power/cpupower/utils/idle_monitor/amd_fam14h_idle.c
    +++ b/tools/power/cpupower/utils/idle_monitor/amd_fam14h_idle.c
    @@ -83,7 +83,7 @@ static struct pci_access *pci_acc;
    static struct pci_dev *amd_fam14h_pci_dev;
    static int nbp1_entered;

    -struct timespec start_time;
    +static struct timespec start_time;
    static unsigned long long timediff;

    #ifdef DEBUG
    diff --git a/tools/power/cpupower/utils/idle_monitor/cpuidle_sysfs.c b/tools/power/cpupower/utils/idle_monitor/cpuidle_sysfs.c
    index 5b8c4956ff9a1..85a8f0cc01a19 100644
    --- a/tools/power/cpupower/utils/idle_monitor/cpuidle_sysfs.c
    +++ b/tools/power/cpupower/utils/idle_monitor/cpuidle_sysfs.c
    @@ -21,7 +21,7 @@ struct cpuidle_monitor cpuidle_sysfs_monitor;

    static unsigned long long **previous_count;
    static unsigned long long **current_count;
    -struct timespec start_time;
    +static struct timespec start_time;
    static unsigned long long timediff;

    static int cpuidle_get_count_percent(unsigned int id, double *percent,
    diff --git a/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c b/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c
    index 051da0a7c4548..4a27c55d50d80 100644
    --- a/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c
    +++ b/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c
    @@ -29,6 +29,8 @@ struct cpuidle_monitor *all_monitors[] = {
    0
    };

    +int cpu_count;
    +
    static struct cpuidle_monitor *monitors[MONITORS_MAX];
    static unsigned int avail_monitors;

    diff --git a/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.h b/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.h
    index 2ae50b499e0a6..06b3cd6de0180 100644
    --- a/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.h
    +++ b/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.h
    @@ -27,7 +27,7 @@
    #endif
    #define CSTATE_DESC_LEN 60

    -int cpu_count;
    +extern int cpu_count;

    /* Hard to define the right names ...: */
    enum power_range_e {
    --
    2.20.1
    \
     
     \ /
      Last update: 2020-03-18 22:10    [W:4.335 / U:0.128 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site