[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#749622: libxt: Inconsistent LONG64 defines



Package: libxt
Version: 1:1.1.4-1
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 -shared  -fPIC -DPIC  .libs/ActionHook.o .libs/Alloc.o .libs/ArgList.o .libs/Callback.o .libs/ClickTime.o .libs/Composite.o .libs/Constraint.o .libs/Convert.o .libs/Converters.o .libs/Core.o .libs/Create.o .libs/Destroy.o .libs/Display.o .libs/Error.o .libs/Event.o .libs/EventUtil.o .libs/Functions.o .libs/GCManager.o .libs/Geometry.o .libs/GetActKey.o .libs/GetResList.o .libs/GetValues.o .libs/HookObj.o .libs/Hooks.o .libs/Initialize.o .libs/Intrinsic.o .libs/Keyboard.o .libs/Manage.o .libs/NextEvent.o .libs/Object.o .libs/PassivGrab.o .libs/Pointer.o .libs/Popup.o .libs/PopupCB.o .libs/RectObj.o .libs/ResConfig.o .libs/Resources.o .libs/Selection.o .libs/SetSens.o .libs/SetValues.o .libs/SetWMCW.o .libs/Shell.o .libs/TMaction.o .libs/TMgrab.o .libs/TMkey.o .libs/TMparse.o .libs/TMprint.o .libs/TMstate.o .libs/Threads.o .libs/VarCreate.o .libs/VarGet.o .libs/Varargs.o .libs/Vendor.o .libs/sharedlib.o .libs/StringDefs.o   -lSM -lICE -lX11  -O2 -Wl,-z -Wl,relro   -Wl,-soname -Wl,libXt.so.6 -o .libs/libXt.so.6.0.0

error: conflicting function declarations "XtWidgetToApplicationContext"
old definition in module Callback file ../../include/X11/Intrinsic.h line 1534
struct _XtAppStruct * (struct _WidgetRec *)
new definition in module Core file ../../include/X11/Intrinsic.h line 1534
struct _XtAppStruct * (struct _WidgetRec *)

reason for conflict at _XtAppStruct.destroy_callbacks in types listed below (struct/struct):
composite type component counts differ (4/3)
struct internalCallbackRec {
  unsigned short int count;
  char is_padded;
  char call_state;
  unsigned int align_pad;
}
struct internalCallbackRec {
  unsigned short int count;
  char is_padded;
  char call_state;
}
Makefile:525: recipe for target 'libXt.la' failed
make[4]: *** [libXt.la] Error 64
make[4]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-libxt/libxt-1.1.4/build/src'
Makefile:454: recipe for target 'all' failed
make[3]: *** [all] Error 2

Having structs of different size is dangerous enough, but here it seems to
highlight that LONG64 is not defined uniformly:

http://sources.debian.net/src/libxt/1:1.1.4-1/include/X11/CallbackI.h?hl=66#L66

As X11 makes heavy use of the macro, several inconsistencies may be hidden here.

Best,
Michael

Attachment: pgpWESLmU6fO5.pgp
Description: PGP signature


Reply to: