From a3f4b35766355b8aade88a302586060562995547 Mon Sep 17 00:00:00 2001 From: Georges Da Costa <dacosta@irit.fr> Date: Wed, 21 May 2025 14:10:41 +0200 Subject: [PATCH] Converts the code to compile on g++ --- makefile | 7 +++++-- src/counters.c | 2 +- src/counters.h | 2 +- src/display_manager.c | 2 +- src/libmojitos.c | 8 ++++---- src/libmojitos.h | 2 +- src/likwid.c | 2 +- src/likwid.h | 2 +- src/load.c | 2 +- src/load.h | 2 +- src/manager.h | 2 +- src/memory.c | 2 +- src/memory.h | 2 +- src/memory_counters.c | 2 +- src/memory_counters.h | 2 +- src/mojitos.c | 2 +- src/network.c | 2 +- src/network.h | 2 +- src/rapl.c | 2 +- src/rapl.h | 2 +- src/temperature.c | 2 +- src/temperature.h | 2 +- 22 files changed, 29 insertions(+), 26 deletions(-) diff --git a/makefile b/makefile index a8d0318..0714022 100644 --- a/makefile +++ b/makefile @@ -11,8 +11,11 @@ BIN = mojitos BINP = mojitos_prometeus PREFIX = /usr/local -CC = g++ -CPPFLAGS = -std=c++20 -Wall -Wextra -Wpedantic -Wno-unused-function -I./lib $(NVML_IFLAGS) +# specific flags for g++ +# CC = g++ +# CPPFLAGS = -std=c++20 -Wall -Wno-error=write-strings -Wextra -Wpedantic -Wno-unused-function -I./lib $(NVML_IFLAGS) + +#works also with clang CC = gcc CPPFLAGS = -std=gnu99 -Wall -Wextra -Wpedantic -Wno-unused-function -I./lib $(NVML_IFLAGS) diff --git a/src/counters.c b/src/counters.c index 1266a07..5dd28ad 100644 --- a/src/counters.c +++ b/src/counters.c @@ -230,7 +230,7 @@ unsigned int get_counters(uint64_t *results, void *ptr) return state->nbperf; } -void label_counters(char **labels, void *ptr) +void label_counters(const char **labels, void *ptr) { Counter *state = (Counter *) ptr; diff --git a/src/counters.h b/src/counters.h index 3186f1d..4f082fe 100644 --- a/src/counters.h +++ b/src/counters.h @@ -21,7 +21,7 @@ unsigned int init_counters(char *, void **); unsigned int get_counters(uint64_t *results, void *); void clean_counters(void *); -void label_counters(char **labels, void *); +void label_counters(const char **labels, void *); void *show_all_counters(void *, size_t); Sensor counters = { diff --git a/src/display_manager.c b/src/display_manager.c index d485f07..9a7f6e1 100644 --- a/src/display_manager.c +++ b/src/display_manager.c @@ -8,7 +8,7 @@ extern FILE *output; extern char* output_option; -void init_manager(char** labels, int nb_sensors, int stat_mode) { +void init_manager(const char** labels, int nb_sensors, int stat_mode) { if (output_option != NULL) { if ((output = fopen(output_option, "wb")) == NULL) { perror("fopen"); diff --git a/src/libmojitos.c b/src/libmojitos.c index 89f3e76..bd52068 100644 --- a/src/libmojitos.c +++ b/src/libmojitos.c @@ -9,7 +9,7 @@ #include "libmojitos.h" typedef unsigned int (*initializer_t)(char *, void **); -typedef void (*labeler_t)(char **, void *); +typedef void (*labeler_t)(const char **, void *); typedef unsigned int (*getter_t)(uint64_t *, void *); typedef void (*cleaner_t)(void *); @@ -35,7 +35,7 @@ Optparse _moj_opts[NB_SENSOR_OPT + 1]; unsigned int nb_sources = 0; unsigned int nb_sensors = 0; // might have multiple sensors per source -char **labels = NULL; +const char **labels = NULL; uint64_t *values = NULL; void **states = NULL; getter_t *getter = NULL; @@ -63,7 +63,7 @@ void add_source(Sensor *cpt, char *arg) cleaner = (cleaner_t*) realloc(cleaner, nb_sources * sizeof(void *)); cleaner[nb_sources - 1] = clean; - labels = (char**) realloc(labels, (nb_sensors + nb) * sizeof(char *)); + labels = (const char**) realloc(labels, (nb_sensors + nb) * sizeof(char *)); labeler(labels + nb_sensors, states[nb_sources - 1]); values = (uint64_t*) realloc(values, (nb_sensors + nb) * sizeof(uint64_t)); @@ -115,7 +115,7 @@ void moj_clean(void) { } } -char **moj_labels(void) { +const char **moj_labels(void) { return labels; } diff --git a/src/libmojitos.h b/src/libmojitos.h index 94347e2..2ee2448 100644 --- a/src/libmojitos.h +++ b/src/libmojitos.h @@ -1,4 +1,4 @@ int moj_init(char** argv); uint64_t* moj_get_values(void); void moj_clean(void); -char **moj_labels(void); +const char **moj_labels(void); diff --git a/src/likwid.c b/src/likwid.c index 0f72bbc..9ce0027 100644 --- a/src/likwid.c +++ b/src/likwid.c @@ -61,7 +61,7 @@ void _get_likwid(Likwid *likwid, uint64_t *values) } } -void label_likwid(char **labels, void *ptr) +void label_likwid(const char **labels, void *ptr) { Likwid *state = (Likwid *) ptr; diff --git a/src/likwid.h b/src/likwid.h index 7a529da..c2e6b75 100644 --- a/src/likwid.h +++ b/src/likwid.h @@ -21,7 +21,7 @@ unsigned int init_likwid(char *, void **); unsigned int get_likwid(uint64_t *results, void *); void clean_likwid(void *); -void label_likwid(char **labels, void *); +void label_likwid(const char **labels, void *); void *show_all_likwid(void *, size_t); Sensor likwid = { diff --git a/src/load.c b/src/load.c index a38886d..c568499 100644 --- a/src/load.c +++ b/src/load.c @@ -98,7 +98,7 @@ char *_labels[LOAD_VALUES_SIZE] = { "user", "nice", "system", "idle", "iowait", "irq", "softirq", "steal", "guest", "guest_nice" }; -void label_load(char **labels, void *none) +void label_load(const char **labels, void *none) { UNUSED(none); diff --git a/src/load.h b/src/load.h index 333f778..38d1395 100644 --- a/src/load.h +++ b/src/load.h @@ -21,7 +21,7 @@ unsigned int init_load(char *, void **); unsigned int get_load(uint64_t *results, void *); void clean_load(void *); -void label_load(char **labels, void *); +void label_load(const char **labels, void *); Sensor load = { .init = init_load, diff --git a/src/manager.h b/src/manager.h index 65ab8c8..d6f9885 100644 --- a/src/manager.h +++ b/src/manager.h @@ -1,4 +1,4 @@ -void init_manager(char** labels, int nb_sensors, int stat_mode); +void init_manager(const char** labels, int nb_sensors, int stat_mode); void use_manager(struct timespec ts, const uint64_t* values, int nb_sensors, uint64_t stat_data); diff --git a/src/memory.c b/src/memory.c index 3356a82..799cf19 100644 --- a/src/memory.c +++ b/src/memory.c @@ -83,7 +83,7 @@ unsigned int get_memory(uint64_t *results, void *none) return MEMORY_COUNT; } -void label_memory(char **labels, void *none) +void label_memory(const char **labels, void *none) { UNUSED(none); memcpy(labels, memory_labels, sizeof(char *) * MEMORY_COUNT); diff --git a/src/memory.h b/src/memory.h index 8a73fac..5a73940 100644 --- a/src/memory.h +++ b/src/memory.h @@ -21,7 +21,7 @@ unsigned int init_memory(char *, void **); unsigned int get_memory(uint64_t *results, void *); void clean_memory(void *); -void label_memory(char **labels, void *); +void label_memory(const char **labels, void *); Sensor memory = { diff --git a/src/memory_counters.c b/src/memory_counters.c index 564fb9c..8b52fe5 100644 --- a/src/memory_counters.c +++ b/src/memory_counters.c @@ -101,7 +101,7 @@ unsigned int get_memory_counters(uint64_t *results, void *ptr) return counters->count; } -void label_memory_counters(char **labels, void *ptr) +void label_memory_counters(const char **labels, void *ptr) { MemoryCounters *counters = (MemoryCounters *)ptr; for (unsigned int i = 0; i < counters->count; i++) { diff --git a/src/memory_counters.h b/src/memory_counters.h index 27198fa..11514e2 100644 --- a/src/memory_counters.h +++ b/src/memory_counters.h @@ -20,7 +20,7 @@ unsigned int init_memory_counters(char *args, void **ptr); unsigned int get_memory_counters(uint64_t *results, void *ptr); -void label_memory_counters(char **labels, void *ptr); +void label_memory_counters(const char **labels, void *ptr); void clean_memory_counters(void *ptr); void *show_all_memory_counters(void *, size_t); diff --git a/src/mojitos.c b/src/mojitos.c index 52be057..668c991 100644 --- a/src/mojitos.c +++ b/src/mojitos.c @@ -210,7 +210,7 @@ int main(int argc, char **argv) struct timespec ts; struct timespec ts_ref; - char** labels = moj_labels(); + const char** labels = moj_labels(); init_manager(labels, nb_sensors, stat_mode); uint64_t stat_data = 0; diff --git a/src/network.c b/src/network.c index 54c5f3d..31dc1a1 100644 --- a/src/network.c +++ b/src/network.c @@ -242,7 +242,7 @@ void clean_network(void *ptr) free(state); } -void label_network(char **labels, void *ptr) +void label_network(const char **labels, void *ptr) { struct Network *state = (struct Network *) ptr; diff --git a/src/network.h b/src/network.h index f6ba9a1..c802fd4 100644 --- a/src/network.h +++ b/src/network.h @@ -21,7 +21,7 @@ unsigned int init_network(char *, void **); unsigned int get_network(uint64_t *results, void *); void clean_network(void *); -void label_network(char **labels, void *); +void label_network(const char **labels, void *); Sensor network = { .init = init_network, diff --git a/src/rapl.c b/src/rapl.c index fce6b2b..557a062 100644 --- a/src/rapl.c +++ b/src/rapl.c @@ -206,7 +206,7 @@ void clean_rapl(void *ptr) } -void label_rapl(char **labels, void *ptr) +void label_rapl(const char **labels, void *ptr) { IntelRapl *rapl = (IntelRapl *) ptr; diff --git a/src/rapl.h b/src/rapl.h index ef9c8b6..cd5b2ad 100644 --- a/src/rapl.h +++ b/src/rapl.h @@ -21,7 +21,7 @@ unsigned int init_rapl(char *, void **); unsigned int get_rapl(uint64_t *results, void *); void clean_rapl(void *); -void label_rapl(char **labels, void *); +void label_rapl(const char **labels, void *); Sensor rapl = { .init = init_rapl, diff --git a/src/temperature.c b/src/temperature.c index 185367a..8f40468 100644 --- a/src/temperature.c +++ b/src/temperature.c @@ -167,7 +167,7 @@ void clean_temperature(void *ptr) free(state); } -void label_temperature(char **labels, void *ptr) +void label_temperature(const char **labels, void *ptr) { Temperature *state = (Temperature *)ptr; diff --git a/src/temperature.h b/src/temperature.h index 129febc..52e01ac 100644 --- a/src/temperature.h +++ b/src/temperature.h @@ -21,7 +21,7 @@ unsigned int init_temperature(char *, void **); unsigned int get_temperature(uint64_t *results, void *); void clean_temperature(void *); -void label_temperature(char **labels, void *); +void label_temperature(const char **labels, void *); Sensor temperature = { .init = init_temperature, -- GitLab