[Debian-med-packaging] Bug#747015: Conflicting declarations of function clinica_resource_manager_setup_extension_set

Michael Tautschnig mt at debian.org
Sun May 4 19:04:36 UTC 2014


Package: clinica
Version: 0.3.0-1
Usertags: goto-cc

During a rebuild of all packages in a clean sid chroot (and cowbuilder+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.

http://sources.debian.net/src/clinica/0.3.0-1/

[...]
/usr/bin/cc  -fPIC -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2   -Wl,-z,relro -shared -Wl,-soname,libclinica.so.0 -o libclinica.so.0.3.0 CMakeFiles/clinica.dir/AboutDialog.c.o CMakeFiles/clinica.dir/Application.c.o CMakeFiles/clinica.dir/AuthDomain.c.o CMakeFiles/clinica.dir/AuthenticationDialog.c.o CMakeFiles/clinica.dir/BackupEngine.c.o CMakeFiles/clinica.dir/Buildable.c.o CMakeFiles/clinica.dir/Builder.c.o CMakeFiles/clinica.dir/CalendarEventList.c.o CMakeFiles/clinica.dir/CalendarHeader.c.o CMakeFiles/clinica.dir/CalendarToolbar.c.o CMakeFiles/clinica.dir/Calendar.c.o CMakeFiles/clinica.dir/CalendarView.c.o CMakeFiles/clinica.dir/CalendarWindow.c.o CMakeFiles/clinica.dir/CoreActivatable.c.o CMakeFiles/clinica.dir/DataProvider.c.o CMakeFiles/clinica.dir/DataServer.c.o CMakeFiles/clinica.dir/DateHandler.c.o CMakeFiles/clinica.dir/DateSwitcher.c.o CMakeFiles/clinica.dir/DateTimePicker.c.o CMakeFiles/clinica.dir/Day.c.o CMakeFiles/clinica.dir/DoctorContextMenu.c.o CMakeFiles/clinica.dir/DoctorEditor.c.o CMakeFiles/clinica.dir/DoctorFilteredStore.c.o CMakeFiles/clinica.dir/DoctorListPage.c.o CMakeFiles/clinica.dir/DoctorListStore.c.o CMakeFiles/clinica.dir/DoctorListView.c.o CMakeFiles/clinica.dir/Doctor.c.o CMakeFiles/clinica.dir/EmptyVisitIterator.c.o CMakeFiles/clinica.dir/EventDetail.c.o CMakeFiles/clinica.dir/EventEditor.c.o CMakeFiles/clinica.dir/EventIterator.c.o CMakeFiles/clinica.dir/EventListStore.c.o CMakeFiles/clinica.dir/Event.c.o CMakeFiles/clinica.dir/FileDetail.c.o CMakeFiles/clinica.dir/FileObject.c.o CMakeFiles/clinica.dir/FileStore.c.o CMakeFiles/clinica.dir/FindEntry.c.o CMakeFiles/clinica.dir/ImportDialog.c.o CMakeFiles/clinica.dir/LocalFileStore.c.o CMakeFiles/clinica.dir/LocalMedicinesDatabase.c.o CMakeFiles/clinica.dir/MedicineBrowserDialog.c.o CMakeFiles/clinica.dir/MedicineDetailDialog.c.o CMakeFiles/clinica.dir/MedicineEditor.c.o CMakeFiles/clinica.dir/MedicineSearchEngine.c.o CMakeFiles/clinica.dir/MedicineSearchPage.c.o CMakeFiles/clinica.dir/MedicineTreeView.c.o CMakeFiles/clinica.dir/Medicine.c.o CMakeFiles/clinica.dir/NetworkedDataProvider.c.o CMakeFiles/clinica.dir/Page.c.o CMakeFiles/clinica.dir/PatientContextMenu.c.o CMakeFiles/clinica.dir/PatientDetail.c.o CMakeFiles/clinica.dir/PatientEditorActivatable.c.o CMakeFiles/clinica.dir/PatientEditor.c.o CMakeFiles/clinica.dir/PatientEntry.c.o CMakeFiles/clinica.dir/PatientFilteredStore.c.o CMakeFiles/clinica.dir/PatientListPage.c.o CMakeFiles/clinica.dir/PatientListStore.c.o CMakeFiles/clinica.dir/PatientListView.c.o CMakeFiles/clinica.dir/Patient.c.o CMakeFiles/clinica.dir/ResourceManager.c.o CMakeFiles/clinica.dir/Service.c.o CMakeFiles/clinica.dir/SettingsManager.c.o CMakeFiles/clinica.dir/Settings.c.o CMakeFiles/clinica.dir/Sidebar.c.o CMakeFiles/clinica.dir/SidebarCalendarEntry.c.o CMakeFiles/clinica.dir/SidebarEntry.c.o CMakeFiles/clinica.dir/SidebarPageEntry.c.o CMakeFiles/clinica.dir/SqliteDataProvider.c.o CMakeFiles/clinica.dir/SqliteDoctorIterator.c.o CMakeFiles/clinica.dir/SqlitePatientIterator.c.o CMakeFiles/clinica.dir/SqliteVisitIterator.c.o CMakeFiles/clinica.dir/StartPage.c.o CMakeFiles/clinica.dir/Toolbar.c.o CMakeFiles/clinica.dir/ToolbarItem.c.o CMakeFiles/clinica.dir/UIManager.c.o CMakeFiles/clinica.dir/UserInterfaceActivatable.c.o CMakeFiles/clinica.dir/UserInterface.c.o CMakeFiles/clinica.dir/Utils.c.o CMakeFiles/clinica.dir/VisitActions.c.o CMakeFiles/clinica.dir/VisitBrowser.c.o CMakeFiles/clinica.dir/VisitDetail.c.o CMakeFiles/clinica.dir/VisitFileManager.c.o CMakeFiles/clinica.dir/VisitListStore.c.o CMakeFiles/clinica.dir/VisitPage.c.o CMakeFiles/clinica.dir/VisitPrinter.c.o CMakeFiles/clinica.dir/VisitSchedulerDialog.c.o CMakeFiles/clinica.dir/VisitTab.c.o CMakeFiles/clinica.dir/VisitToolbar.c.o CMakeFiles/clinica.dir/Visit.c.o CMakeFiles/clinica.dir/WaitDialog.c.o CMakeFiles/clinica.dir/PluginEngine.c.o CMakeFiles/clinica.dir/PluginManager.c.o CMakeFiles/clinica.dir/CoreActivatableExtensionSet.c.o CMakeFiles/clinica.dir/PatientEditorExtensionSet.c.o CMakeFiles/clinica.dir/UserInterfaceExtensionSet.c.o CMakeFiles/clinica.dir/Resources.c.o -lgee -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lsqlite3 -lsoup-2.4 -lrsvg-2 -lm -lgio-2.0 -lgdk_pixbuf-2.0 -lgobject-2.0 -lglib-2.0 -lcairo -ljansson -lgee -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lsqlite3 -lsoup-2.4 -lrsvg-2 -lm -lgio-2.0 -lgdk_pixbuf-2.0 -lgobject-2.0 -lglib-2.0 -lcairo -ljansson -lpeas-gtk-1.0 -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lpeas-1.0 -Wl,--export-dynamic -lgmodule-2.0 -pthread -lgio-2.0 -lgirepository-1.0 -lgobject-2.0 -lglib-2.0 -lpeas-gtk-1.0 -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lpeas-1.0 -lgmodule-2.0 -lgio-2.0 -lgirepository-1.0 -lgobject-2.0 -lglib-2.0 -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lsqlite3 -lsoup-2.4 -lrsvg-2 -lm -lgio-2.0 -lgdk_pixbuf-2.0 -lgobject-2.0 -lglib-2.0 -lcairo -ljansson -lgee -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lsqlite3 -lsoup-2.4 -lrsvg-2 -lm -lgio-2.0 -lgdk_pixbuf-2.0 -lcairo -ljansson -lpeas-gtk-1.0 -lpeas-1.0 -lgmodule-2.0 -lgirepository-1.0 -lpeas-gtk-1.0 -lpeas-1.0 -lgmodule-2.0 -lgirepository-1.0 

error: conflicting function declarations "clinica_resource_manager_setup_extension_set"
old definition in module ResourceManager file /srv/jenkins-slave/workspace/sid-goto-cc-clinica/clinica-0.3.0/obj-x86_64-linux-gnu/libclinica/ResourceManager.c line 577
struct _PeasExtensionSet * (struct _ClinicaResourceManager *, struct _ClinicaPluginEngine *)
new definition in module CoreActivatableExtensionSet file /srv/jenkins-slave/workspace/sid-goto-cc-clinica/clinica-0.3.0/libclinica/CoreActivatableExtensionSet.c line 22
struct _PeasExtensionSet * (struct _ClinicaResourceManager *rm, struct _PeasEngine *engine)

reason for conflict at .parent_instance in types listed below (struct/struct):
composite type component counts differ (2/4)
struct _PeasEngine {
  struct _GObject parent;
  struct _PeasEnginePrivate * priv;
}
struct _GObject {
  struct _GTypeInstance g_type_instance;
  volatile unsigned int ref_count;
  unsigned int $pad0;
  struct _GData * qdata;
}

The problem here is that a _ClinicaPluginEngine is a _PeasEngine at the level of
Vala:

http://sources.debian.net/src/clinica/0.3.0-1/libclinica/PluginEngine.vala?hl=22#L22

But C doesn't use virtual tables or any other mechanism that would make it
understand inheritance - hence the C function
clinica_resource_manager_setup_extension_set (defined in
CoreActivatableExtensionSet.c) will not cope correctly with the derived (Vala)
type PluginEngine.

The likely fix is making clinica_resource_manager_setup_extension_set of
CoreActivatableExtensionSet.c take a _ClinicaPluginEngine-typed argument.

Best,
Michael

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 859 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/debian-med-packaging/attachments/20140504/18e059d2/attachment.sig>


More information about the Debian-med-packaging mailing list