Package: libcrypt-blowfish-perl
Version: 2.14-1
Severity: wishlist
Usertags: goto-cc
Tags: upstream

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.

[...]
cc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat 
-Werror=format-security -Wl,-z,relro  -shared -L/usr/local/lib 
-fstack-protector Blowfish.o _blowfish.o  -o 
blib/arch/auto/Crypt/Blowfish/Blowfish.so  \
      \

error: conflicting function declarations "blowfish_make_bfkey"
old definition in module Blowfish file blowfish.h line 5
signed int (char *, signed int, char *)
new definition in module _blowfish file _blowfish.c line 400
signed int (unsigned char *key_string, signed int keylength, BFkey_type *bfkey)
Makefile:473: recipe for target 'blib/arch/auto/Crypt/Blowfish/Blowfish.so' 
failed
make[1]: *** [blib/arch/auto/Crypt/Blowfish/Blowfish.so] Error 64
make[1]: Leaving directory 
'/srv/jenkins-slave/workspace/sid-goto-cc-libcrypt-blowfish-perl/libcrypt-blowfish-perl-2.14'
dh_auto_build: make -j1 returned exit code 2

The pair of declaration and definition should be improved in two ways to enable
appropriate compiler diagnostics and to avoid future issues:

- The key_string parameter should become consistent regarding signedness.
- Using void* instead of char* for the bfkey parameter would make explicit that
  the type is hidden.

Best,
Michael

Attachment: pgpMY_FVLhbPl.pgp
Description: PGP signature

Reply via email to