Package: emoslib
Version: 000392+dfsg.1-2
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.

[...]
# Link them into libemos.so
/usr/bin/make -f debian/build-shlib R64= DESTDIR=`pwd`/debian/tmp/ 
LIBDIR=/usr/lib/x86_64-linux-gnu
make[2]: Entering directory 
`/srv/jenkins-slave/workspace/sid-goto-cc-emoslib/emoslib-000392+dfsg.1'
cc -shared  -o debian/libemos.so.0d -Wl,-z,relro -Wl,-z,now -Wl,-O1 
-Wl,-soname,libemos.so.0d  bufrdc/bbuprs0.o bufrdc/bbuprs1.o ...

error: conflicting function declarations "dsgnbt_"
old definition in module dsgnbt file dsgnbt.c line 14
void (signed long int *kout, signed long int *kin, signed long int *kpos, 
signed long int *kret)
new definition in module PBGroutines file PBGroutines.c line 36
void (signed int *, signed int *, signed int *, signed int *)

Note that the above types are the result of expansion by the preprocessor, as
the source names all of them as fortint:

http://sources.debian.net/src/emoslib/000392%2Bdfsg.1-2/gribex/dsgnbt.c#L34
http://sources.debian.net/src/emoslib/000392%2Bdfsg.1-2/pbio/PBGroutines.c#L36

Yet these are expanded in different ways:

http://sources.debian.net/src/emoslib/000392%2Bdfsg.1-2/gribex/fortint.h?hl=22#L22
http://sources.debian.net/src/emoslib/000392%2Bdfsg.1-2/pbio/PBGroutines.h?hl=26#L26

For any system where sizeof(long)!=sizeof(int) (such as amd64 and several
others), the results will be broken in arbitrary ways as the implementation will
try to read uninitialized register or stack values.

Best,
Michael

Attachment: pgpyuw6DTkeRz.pgp
Description: PGP signature

Reply via email to