Package: anjuta Version: 2:3.8.4-3 Severity: minor Usertags: goto-cc During a rebuild of all Debian packages in a clean sid chroot (using cowbuilder and pbuilder) the build failed with the following error. Please note that we use our research compiler tool-chain (using tools from the cbmc package), which permits extended reporting on type inconsistencies at link time.
[...]
libtool: link: gcc -Wall -Wstrict-prototypes -Wnested-externs
-Werror=missing-prototypes -Werror=implicit-function-declaration
-Werror=pointer-arith -Werror=init-self -Werror=format-security
-Werror=format=2 -Werror=missing-include-dirs -g -O2 -fstack-protector
--param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -pthread
-Wl,--export-dynamic -pthread -pthread -Wl,-z -Wl,relro -Wl,-O1 -o
.libs/benchmark benchmark.o ../../../../libanjuta/.libs/libanjuta-3.so
-lgmodule-2.0 -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0
/usr/lib/x86_64-linux-gnu/libcairo-gobject.so
/usr/lib/x86_64-linux-gnu/libcairo.so -lgio-2.0 -lgdk_pixbuf-2.0 -lgda-5.0
-lgobject-2.0 -lgthread-2.0 -lglib-2.0 -lxml2 -Wl,--as-needed
../../.libs/libanjuta-symbol-db.so -lutil -pthread -Wl,-rpath
-Wl,/usr/lib/anjuta
error: conflicting function declarations "symbol_db_engine_new_full"
old definition in module benchmark file ../../symbol-db-engine-core.h line 88
struct _SymbolDBEngine * (const char *, const char *)
new definition in module symbol-db-engine-core file symbol-db-engine-core.c
line 2397
struct _SymbolDBEngine * (const char *ctags_path, const char *database_name)
reason for conflict at _SymbolDBEngine.priv in types listed below
(struct/struct):
composite type component counts differ (42/41)
struct _SymbolDBEnginePriv {
char * anjuta_db_file;
char * ctags_path;
struct _GdaConnection * db_connection;
struct _GdaSqlParser * sql_parser;
char * db_directory;
char * project_directory;
char * cnc_string;
signed int scan_process_id_sequence;
signed int current_scan_process_id;
struct _GAsyncQueue * scan_aqueue;
struct _GAsyncQueue * updated_syms_id_aqueue;
struct _GAsyncQueue * updated_scope_syms_id_aqueue;
struct _GAsyncQueue * inserted_syms_id_aqueue;
signed int is_scanning;
unsigned int $pad0;
char * shared_mem_str;
struct _IO_FILE * shared_mem_file;
signed int shared_mem_fd;
unsigned int $pad1;
struct _AnjutaLauncher * ctags_launcher;
struct _GList * removed_launchers;
signed int shutting_down;
signed int is_first_population;
unsigned long int symbols_scanned_count;
struct _GAsyncQueue * waiting_scan_aqueue;
unsigned long int waiting_scan_handler;
union _GMutex mutex;
struct _GAsyncQueue * signals_aqueue;
struct _GThreadPool * thread_pool;
signed int timeout_trigger_handler;
signed int trigger_closure_retries;
signed int thread_closure_retries;
unsigned int $pad2;
struct _GHashTable * sym_type_conversion_hash;
struct _GHashTable * garbage_shared_mem_files;
struct _GHashTable * kind_cache;
struct _GHashTable * access_cache;
struct _GHashTable * implementation_cache;
struct _GHashTable * language_cache;
struct _GQueue * tmp_heritage_tablemap;
struct _static_query_node *[32l] static_query_list;
struct _GTimer * first_scan_timer_DEBUG;
}
struct _SymbolDBEnginePriv {
char * anjuta_db_file;
char * ctags_path;
struct _GdaConnection * db_connection;
struct _GdaSqlParser * sql_parser;
char * db_directory;
char * project_directory;
char * cnc_string;
signed int scan_process_id_sequence;
signed int current_scan_process_id;
struct _GAsyncQueue * scan_aqueue;
struct _GAsyncQueue * updated_syms_id_aqueue;
struct _GAsyncQueue * updated_scope_syms_id_aqueue;
struct _GAsyncQueue * inserted_syms_id_aqueue;
signed int is_scanning;
unsigned int $pad0;
char * shared_mem_str;
struct _IO_FILE * shared_mem_file;
signed int shared_mem_fd;
unsigned int $pad1;
struct _AnjutaLauncher * ctags_launcher;
struct _GList * removed_launchers;
signed int shutting_down;
signed int is_first_population;
unsigned long int symbols_scanned_count;
struct _GAsyncQueue * waiting_scan_aqueue;
unsigned long int waiting_scan_handler;
union _GMutex mutex;
struct _GAsyncQueue * signals_aqueue;
struct _GThreadPool * thread_pool;
signed int timeout_trigger_handler;
signed int trigger_closure_retries;
signed int thread_closure_retries;
unsigned int $pad2;
struct _GHashTable * sym_type_conversion_hash;
struct _GHashTable * garbage_shared_mem_files;
struct _GHashTable * kind_cache;
struct _GHashTable * access_cache;
struct _GHashTable * implementation_cache;
struct _GHashTable * language_cache;
struct _GQueue * tmp_heritage_tablemap;
struct _static_query_node *[32l] static_query_list;
}
Makefile:469: recipe for target 'benchmark' failed
make[7]: *** [benchmark] Error 64
make[7]: Leaving directory
'/srv/jenkins-slave/workspace/sid-goto-cc-anjuta/anjuta-3.8.4/plugins/symbol-db/benchmark/symbol-db'
Makefile:465: recipe for target 'all-recursive' failed
make[6]: *** [all-recursive] Error 1
Reviewing the code, it seems that the difference lies in the macro DEBUG not
being defined uniformly:
http://sources.debian.net/src/anjuta/2:3.8.4-3/plugins/symbol-db/symbol-db-engine-priv.h?hl=223#L223
As in particular the actual definition allocates memory *not* containing the
first_scan_timer_DEBUG field, invalid memory accesses may occur. Yet the path
name suggests this is some benchmark only, thus setting the severity to minor.
Best,
Michael
pgpO1XSRz993p.pgp
Description: PGP signature

