[Pkg-phototools-devel] Bug#748105: Inconsistent use of _XOPEN_SOURCE, _GNU_SOURCE
Michael Tautschnig
mt at debian.org
Wed May 14 10:53:12 UTC 2014
Package: gphoto2
Version: 2.5.4-1
Usertags: goto-cc
Tags: upstream
Forwarded: https://sourceforge.net/p/gphoto/bugs/979/
During a rebuild of all Debian 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.
[...]
libtool: link: gcc -I.. -I../gphoto2 -I/usr/include/gphoto2 -I/usr/include/libexif -DLOCALEDIR=\"/usr/share/locale\" -D_GPHOTO2_INTERNAL_CODE -D_FORTIFY_SOURCE=2 -I/usr/local/include -I/usr/include -I/usr/include/libexif -I/usr/include -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -Wmissing-declarations -Wmissing-prototypes -g -Wl,-z -Wl,relro -Wl,-z -Wl,defs -Wl,--as-needed -g -o gphoto2 gphoto2-gphoto2-cmd-capture.o gphoto2-gphoto2-cmd-config.o gphoto2-actions.o gphoto2-foreach.o gphoto2-gp-params.o gphoto2-spawnve.o gphoto2-main.o gphoto2-version.o gphoto2-range.o gphoto2-shell.o -lgphoto2 -lgphoto2_port -L/usr/local/lib -lcdk -lncurses -L/usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/libaa.so -ljpeg -lpthread -lexif -lreadline -L/usr/ /usr/lib/x86_64-linux-gnu/libpopt.so -lm
error: conflicting function declarations "mktime"
old definition in module gphoto2-cmd-config file /usr/include/time.h line 199
signed long int (struct tm *)
new definition in module actions file /usr/include/time.h line 199
signed long int (struct tm *)
Makefile:708: recipe for target 'gphoto2' failed
make[3]: *** [gphoto2] Error 64
make[3]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-gphoto2/gphoto2-2.5.4/gphoto2'
Makefile:453: recipe for target 'all-recursive' failed
While these two declarations appear to be the same, the component names actually
differ (which makes them different types according to the C standard):
names of component 10 differ (__tm_gmtoff/tm_gmtoff)
struct tm {
signed int tm_sec;
signed int tm_min;
signed int tm_hour;
signed int tm_mday;
signed int tm_mon;
signed int tm_year;
signed int tm_wday;
signed int tm_yday;
signed int tm_isdst;
unsigned int $pad0;
signed long int __tm_gmtoff;
const char * __tm_zone;
}
struct tm {
signed int tm_sec;
signed int tm_min;
signed int tm_hour;
signed int tm_mday;
signed int tm_mon;
signed int tm_year;
signed int tm_wday;
signed int tm_yday;
signed int tm_isdst;
unsigned int $pad0;
signed long int tm_gmtoff;
const char * tm_zone;
}
This is caused by _XOPEN_SOURCE and _GNU_SOURCE being defined in a single file
only rather than on the compiler command line or in the common config.h file:
http://sources.debian.net/src/gphoto2/2.5.4-1/gphoto2/actions.c?hl=21,22,23
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/pkg-phototools-devel/attachments/20140514/57eaffe3/attachment.sig>
More information about the Pkg-phototools-devel
mailing list