This make the declarations to be extern so they dont end up
in duplicates in data.rel.ro sections

avoid errors like

| ../../../src/common/.libs/libcommon.a(mi-lttng.o):(.data.rel.ro.local+0x0): multiple definition of `mi_lttng_element_snapshots'
| commands/enable_events.o:(.bss+0x48): first defined here
| collect2: error: ld returned 1 exit status
| Makefile:502: recipe for target 'lttng' failed
| make[3]: *** [lttng] Error 1


Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>

Index: git/src/common/config/config-session-abi.h
===================================================================
--- git.orig/src/common/config/config-session-abi.h
+++ git/src/common/config/config-session-abi.h
@@ -18,95 +18,95 @@
 #ifndef CONFIG_SESSION_INTERNAL_H
 #define CONFIG_SESSION_INTERNAL_H
 
-const char * const config_element_channel;
-const char * const config_element_channels;
-const char * const config_element_domain;
-const char * const config_element_domains;
-const char * const config_element_event;
-const char * const config_element_events;
-const char * const config_element_context;
-const char * const config_element_contexts;
-const char * const config_element_attributes;
-const char * const config_element_exclusion;
-const char * const config_element_exclusions;
-const char * const config_element_function_attributes;
-const char * const config_element_probe_attributes;
-const char * const config_element_symbol_name;
-const char * const config_element_address;
-const char * const config_element_offset;
-const char * const config_element_name;
-const char * const config_element_enabled;
-const char * const config_element_overwrite_mode;
-const char * const config_element_subbuf_size;
-const char * const config_element_num_subbuf;
-const char * const config_element_switch_timer_interval;
-const char * const config_element_read_timer_interval;
-const char * const config_element_output;
-const char * const config_element_output_type;
-const char * const config_element_tracefile_size;
-const char * const config_element_tracefile_count;
-const char * const config_element_live_timer_interval;
-const char * const config_element_type;
-const char * const config_element_buffer_type;
-const char * const config_element_session;
-const char * const config_element_sessions;
-const char * const config_element_perf;
-const char * const config_element_config;
-const char * const config_element_started;
-const char * const config_element_snapshot_mode;
-const char * const config_element_loglevel;
-const char * const config_element_loglevel_type;
-const char * const config_element_filter;
-const char * const config_element_snapshot_outputs;
-const char * const config_element_consumer_output;
-const char * const config_element_destination;
-const char * const config_element_path;
-const char * const config_element_net_output;
-const char * const config_element_control_uri;
-const char * const config_element_data_uri;
-const char * const config_element_max_size;
-
-const char * const config_domain_type_kernel;
-const char * const config_domain_type_ust;
-const char * const config_domain_type_jul;
-const char * const config_domain_type_log4j;
-
-const char * const config_buffer_type_per_pid;
-const char * const config_buffer_type_per_uid;
-const char * const config_buffer_type_global;
-
-const char * const config_overwrite_mode_discard;
-const char * const config_overwrite_mode_overwrite;
-
-const char * const config_output_type_splice;
-const char * const config_output_type_mmap;
-
-const char * const config_loglevel_type_all;
-const char * const config_loglevel_type_range;
-const char * const config_loglevel_type_single;
-
-const char * const config_event_type_all;
-const char * const config_event_type_tracepoint;
-const char * const config_event_type_probe;
-const char * const config_event_type_function;
-const char * const config_event_type_function_entry;
-const char * const config_event_type_noop;
-const char * const config_event_type_syscall;
-const char * const config_event_type_kprobe;
-const char * const config_event_type_kretprobe;
-
-const char * const config_event_context_pid;
-const char * const config_event_context_procname;
-const char * const config_event_context_prio;
-const char * const config_event_context_nice;
-const char * const config_event_context_vpid;
-const char * const config_event_context_tid;
-const char * const config_event_context_vtid;
-const char * const config_event_context_ppid;
-const char * const config_event_context_vppid;
-const char * const config_event_context_pthread_id;
-const char * const config_event_context_hostname;
-const char * const config_event_context_ip;
-const char * const config_event_context_perf_thread_counter;
+extern const char * const config_element_channel;
+extern const char * const config_element_channels;
+extern const char * const config_element_domain;
+extern const char * const config_element_domains;
+extern const char * const config_element_event;
+extern const char * const config_element_events;
+extern const char * const config_element_context;
+extern const char * const config_element_contexts;
+extern const char * const config_element_attributes;
+extern const char * const config_element_exclusion;
+extern const char * const config_element_exclusions;
+extern const char * const config_element_function_attributes;
+extern const char * const config_element_probe_attributes;
+extern const char * const config_element_symbol_name;
+extern const char * const config_element_address;
+extern const char * const config_element_offset;
+extern const char * const config_element_name;
+extern const char * const config_element_enabled;
+extern const char * const config_element_overwrite_mode;
+extern const char * const config_element_subbuf_size;
+extern const char * const config_element_num_subbuf;
+extern const char * const config_element_switch_timer_interval;
+extern const char * const config_element_read_timer_interval;
+extern const char * const config_element_output;
+extern const char * const config_element_output_type;
+extern const char * const config_element_tracefile_size;
+extern const char * const config_element_tracefile_count;
+extern const char * const config_element_live_timer_interval;
+extern const char * const config_element_type;
+extern const char * const config_element_buffer_type;
+extern const char * const config_element_session;
+extern const char * const config_element_sessions;
+extern const char * const config_element_perf;
+extern const char * const config_element_config;
+extern const char * const config_element_started;
+extern const char * const config_element_snapshot_mode;
+extern const char * const config_element_loglevel;
+extern const char * const config_element_loglevel_type;
+extern const char * const config_element_filter;
+extern const char * const config_element_snapshot_outputs;
+extern const char * const config_element_consumer_output;
+extern const char * const config_element_destination;
+extern const char * const config_element_path;
+extern const char * const config_element_net_output;
+extern const char * const config_element_control_uri;
+extern const char * const config_element_data_uri;
+extern const char * const config_element_max_size;
+
+extern const char * const config_domain_type_kernel;
+extern const char * const config_domain_type_ust;
+extern const char * const config_domain_type_jul;
+extern const char * const config_domain_type_log4j;
+
+extern const char * const config_buffer_type_per_pid;
+extern const char * const config_buffer_type_per_uid;
+extern const char * const config_buffer_type_global;
+
+extern const char * const config_overwrite_mode_discard;
+extern const char * const config_overwrite_mode_overwrite;
+
+extern const char * const config_output_type_splice;
+extern const char * const config_output_type_mmap;
+
+extern const char * const config_loglevel_type_all;
+extern const char * const config_loglevel_type_range;
+extern const char * const config_loglevel_type_single;
+
+extern const char * const config_event_type_all;
+extern const char * const config_event_type_tracepoint;
+extern const char * const config_event_type_probe;
+extern const char * const config_event_type_function;
+extern const char * const config_event_type_function_entry;
+extern const char * const config_event_type_noop;
+extern const char * const config_event_type_syscall;
+extern const char * const config_event_type_kprobe;
+extern const char * const config_event_type_kretprobe;
+
+extern const char * const config_event_context_pid;
+extern const char * const config_event_context_procname;
+extern const char * const config_event_context_prio;
+extern const char * const config_event_context_nice;
+extern const char * const config_event_context_vpid;
+extern const char * const config_event_context_tid;
+extern const char * const config_event_context_vtid;
+extern const char * const config_event_context_ppid;
+extern const char * const config_event_context_vppid;
+extern const char * const config_event_context_pthread_id;
+extern const char * const config_event_context_hostname;
+extern const char * const config_event_context_ip;
+extern const char * const config_event_context_perf_thread_counter;
 
 #endif /* CONFIG_SESSION_INTERNAL_H */
Index: git/src/common/mi-lttng.h
===================================================================
--- git.orig/src/common/mi-lttng.h
+++ git/src/common/mi-lttng.h
@@ -49,133 +49,133 @@ struct mi_lttng_version {
 };
 
 /* Strings related to command */
-const char * const mi_lttng_element_command;
-const char * const mi_lttng_element_command_action;
-const char * const mi_lttng_element_command_add_context;
-const char * const mi_lttng_element_command_calibrate;
-const char * const mi_lttng_element_command_create;
-const char * const mi_lttng_element_command_destroy;
-const char * const mi_lttng_element_command_disable_channel;
-const char * const mi_lttng_element_command_disable_event;
-const char * const mi_lttng_element_command_enable_channels;
-const char * const mi_lttng_element_command_enable_event;
-const char * const mi_lttng_element_command_list;
-const char * const mi_lttng_element_command_load;
-const char * const mi_lttng_element_command_name;
-const char * const mi_lttng_element_command_output;
-const char * const mi_lttng_element_command_save;
-const char * const mi_lttng_element_command_set_session;
-const char * const mi_lttng_element_command_snapshot;
-const char * const mi_lttng_element_command_snapshot_add;
-const char * const mi_lttng_element_command_snapshot_del;
-const char * const mi_lttng_element_command_snapshot_list;
-const char * const mi_lttng_element_command_snapshot_record;
-const char * const mi_lttng_element_command_start;
-const char * const mi_lttng_element_command_stop;
-const char * const mi_lttng_element_command_success;
-const char * const mi_lttng_element_command_version;
+extern const char * const mi_lttng_element_command;
+extern const char * const mi_lttng_element_command_action;
+extern const char * const mi_lttng_element_command_add_context;
+extern const char * const mi_lttng_element_command_calibrate;
+extern const char * const mi_lttng_element_command_create;
+extern const char * const mi_lttng_element_command_destroy;
+extern const char * const mi_lttng_element_command_disable_channel;
+extern const char * const mi_lttng_element_command_disable_event;
+extern const char * const mi_lttng_element_command_enable_channels;
+extern const char * const mi_lttng_element_command_enable_event;
+extern const char * const mi_lttng_element_command_list;
+extern const char * const mi_lttng_element_command_load;
+extern const char * const mi_lttng_element_command_name;
+extern const char * const mi_lttng_element_command_output;
+extern const char * const mi_lttng_element_command_save;
+extern const char * const mi_lttng_element_command_set_session;
+extern const char * const mi_lttng_element_command_snapshot;
+extern const char * const mi_lttng_element_command_snapshot_add;
+extern const char * const mi_lttng_element_command_snapshot_del;
+extern const char * const mi_lttng_element_command_snapshot_list;
+extern const char * const mi_lttng_element_command_snapshot_record;
+extern const char * const mi_lttng_element_command_start;
+extern const char * const mi_lttng_element_command_stop;
+extern const char * const mi_lttng_element_command_success;
+extern const char * const mi_lttng_element_command_version;
 
 /* Strings related to version command */
-const char * const mi_lttng_element_version;
-const char * const mi_lttng_element_version_commit;
-const char * const mi_lttng_element_version_description;
-const char * const mi_lttng_element_version_license;
-const char * const mi_lttng_element_version_major;
-const char * const mi_lttng_element_version_minor;
-const char * const mi_lttng_element_version_patch_level;
-const char * const mi_lttng_element_version_str;
-const char * const mi_lttng_element_version_web;
+extern const char * const mi_lttng_element_version;
+extern const char * const mi_lttng_element_version_commit;
+extern const char * const mi_lttng_element_version_description;
+extern const char * const mi_lttng_element_version_license;
+extern const char * const mi_lttng_element_version_major;
+extern const char * const mi_lttng_element_version_minor;
+extern const char * const mi_lttng_element_version_patch_level;
+extern const char * const mi_lttng_element_version_str;
+extern const char * const mi_lttng_element_version_web;
 
 /* String related to a lttng_event_field */
-const char * const mi_lttng_element_event_field;
-const char * const mi_lttng_element_event_fields;
+extern const char * const mi_lttng_element_event_field;
+extern const char * const mi_lttng_element_event_fields;
 
 /* String related to lttng_event_context */
-const char * const mi_lttng_context_type_perf_counter;
-const char * const mi_lttng_context_type_perf_cpu_counter;
-const char * const mi_lttng_context_type_perf_thread_counter;
+extern const char * const mi_lttng_context_type_perf_counter;
+extern const char * const mi_lttng_context_type_perf_cpu_counter;
+extern const char * const mi_lttng_context_type_perf_thread_counter;
 
 /* String related to lttng_event_perf_counter_ctx */
-const char * const mi_lttng_element_perf_counter_context;
+extern const char * const mi_lttng_element_perf_counter_context;
 
 /* Strings related to pid */
-const char * const mi_lttng_element_pids;
-const char * const mi_lttng_element_pid;
-const char * const mi_lttng_element_pid_id;
+extern const char * const mi_lttng_element_pids;
+extern const char * const mi_lttng_element_pid;
+extern const char * const mi_lttng_element_pid_id;
 
 /* Strings related to save command */
-const char * const mi_lttng_element_save;
+extern const char * const mi_lttng_element_save;
 
 /* Strings related to load command */
-const char * const mi_lttng_element_load;
+extern const char * const mi_lttng_element_load;
 
 /* General element of mi_lttng */
-const char * const mi_lttng_element_empty;
-const char * const mi_lttng_element_id;
-const char * const mi_lttng_element_nowrite;
-const char * const mi_lttng_element_success;
-const char * const mi_lttng_element_type_enum;
-const char * const mi_lttng_element_type_float;
-const char * const mi_lttng_element_type_integer;
-const char * const mi_lttng_element_type_other;
-const char * const mi_lttng_element_type_string;
+extern const char * const mi_lttng_element_empty;
+extern const char * const mi_lttng_element_id;
+extern const char * const mi_lttng_element_nowrite;
+extern const char * const mi_lttng_element_success;
+extern const char * const mi_lttng_element_type_enum;
+extern const char * const mi_lttng_element_type_float;
+extern const char * const mi_lttng_element_type_integer;
+extern const char * const mi_lttng_element_type_other;
+extern const char * const mi_lttng_element_type_string;
 
 /* String related to loglevel */
-const char * const mi_lttng_loglevel_str_alert;
-const char * const mi_lttng_loglevel_str_crit;
-const char * const mi_lttng_loglevel_str_debug;
-const char * const mi_lttng_loglevel_str_debug_function;
-const char * const mi_lttng_loglevel_str_debug_line;
-const char * const mi_lttng_loglevel_str_debug_module;
-const char * const mi_lttng_loglevel_str_debug_process;
-const char * const mi_lttng_loglevel_str_debug_program;
-const char * const mi_lttng_loglevel_str_debug_system;
-const char * const mi_lttng_loglevel_str_debug_unit;
-const char * const mi_lttng_loglevel_str_emerg;
-const char * const mi_lttng_loglevel_str_err;
-const char * const mi_lttng_loglevel_str_info;
-const char * const mi_lttng_loglevel_str_notice;
-const char * const mi_lttng_loglevel_str_unknown;
-const char * const mi_lttng_loglevel_str_warning;
+extern const char * const mi_lttng_loglevel_str_alert;
+extern const char * const mi_lttng_loglevel_str_crit;
+extern const char * const mi_lttng_loglevel_str_debug;
+extern const char * const mi_lttng_loglevel_str_debug_function;
+extern const char * const mi_lttng_loglevel_str_debug_line;
+extern const char * const mi_lttng_loglevel_str_debug_module;
+extern const char * const mi_lttng_loglevel_str_debug_process;
+extern const char * const mi_lttng_loglevel_str_debug_program;
+extern const char * const mi_lttng_loglevel_str_debug_system;
+extern const char * const mi_lttng_loglevel_str_debug_unit;
+extern const char * const mi_lttng_loglevel_str_emerg;
+extern const char * const mi_lttng_loglevel_str_err;
+extern const char * const mi_lttng_loglevel_str_info;
+extern const char * const mi_lttng_loglevel_str_notice;
+extern const char * const mi_lttng_loglevel_str_unknown;
+extern const char * const mi_lttng_loglevel_str_warning;
 
 /* String related to loglevel JUL */
-const char * const mi_lttng_loglevel_str_jul_all;
-const char * const mi_lttng_loglevel_str_jul_config;
-const char * const mi_lttng_loglevel_str_jul_fine;
-const char * const mi_lttng_loglevel_str_jul_finer;
-const char * const mi_lttng_loglevel_str_jul_finest;
-const char * const mi_lttng_loglevel_str_jul_info;
-const char * const mi_lttng_loglevel_str_jul_off;
-const char * const mi_lttng_loglevel_str_jul_severe;
-const char * const mi_lttng_loglevel_str_jul_warning;
+extern const char * const mi_lttng_loglevel_str_jul_all;
+extern const char * const mi_lttng_loglevel_str_jul_config;
+extern const char * const mi_lttng_loglevel_str_jul_fine;
+extern const char * const mi_lttng_loglevel_str_jul_finer;
+extern const char * const mi_lttng_loglevel_str_jul_finest;
+extern const char * const mi_lttng_loglevel_str_jul_info;
+extern const char * const mi_lttng_loglevel_str_jul_off;
+extern const char * const mi_lttng_loglevel_str_jul_severe;
+extern const char * const mi_lttng_loglevel_str_jul_warning;
 
 /* String related to loglevel Log4j */
-const char * const mi_lttng_loglevel_str_log4j_off;
-const char * const mi_lttng_loglevel_str_log4j_fatal;
-const char * const mi_lttng_loglevel_str_log4j_error;
-const char * const mi_lttng_loglevel_str_log4j_warn;
-const char * const mi_lttng_loglevel_str_log4j_info;
-const char * const mi_lttng_loglevel_str_log4j_debug;
-const char * const mi_lttng_loglevel_str_log4j_trace;
-const char * const mi_lttng_loglevel_str_log4j_all;
+extern const char * const mi_lttng_loglevel_str_log4j_off;
+extern const char * const mi_lttng_loglevel_str_log4j_fatal;
+extern const char * const mi_lttng_loglevel_str_log4j_error;
+extern const char * const mi_lttng_loglevel_str_log4j_warn;
+extern const char * const mi_lttng_loglevel_str_log4j_info;
+extern const char * const mi_lttng_loglevel_str_log4j_debug;
+extern const char * const mi_lttng_loglevel_str_log4j_trace;
+extern const char * const mi_lttng_loglevel_str_log4j_all;
 
 /* String related to loglevel type */
-const char * const mi_lttng_loglevel_type_all;
-const char * const mi_lttng_loglevel_type_range;
-const char * const mi_lttng_loglevel_type_single;
-const char * const mi_lttng_loglevel_type_unknown;
+extern const char * const mi_lttng_loglevel_type_all;
+extern const char * const mi_lttng_loglevel_type_range;
+extern const char * const mi_lttng_loglevel_type_single;
+extern const char * const mi_lttng_loglevel_type_unknown;
 
 /* Sting related to lttng_calibrate */
-const char * const mi_lttng_element_calibrate;
-const char * const mi_lttng_element_calibrate_function;
+extern const char * const mi_lttng_element_calibrate;
+extern const char * const mi_lttng_element_calibrate_function;
 
 /* String related to a lttng_snapshot */
-const char * const mi_lttng_element_snapshot_ctrl_url;
-const char * const mi_lttng_element_snapshot_data_url;
-const char * const mi_lttng_element_snapshot_max_size;
-const char * const mi_lttng_element_snapshot_n_ptr;
-const char * const mi_lttng_element_snapshot_session_name;
-const char * const mi_lttng_element_snapshots;
+extern const char * const mi_lttng_element_snapshot_ctrl_url;
+extern const char * const mi_lttng_element_snapshot_data_url;
+extern const char * const mi_lttng_element_snapshot_max_size;
+extern const char * const mi_lttng_element_snapshot_n_ptr;
+extern const char * const mi_lttng_element_snapshot_session_name;
+extern const char * const mi_lttng_element_snapshots;
 
 /* Utility string function  */
 const char *mi_lttng_loglevel_string(int value, enum lttng_domain_type domain);
