[Debian-astro-maintainers] Bug#1069909: dcraw: FTBFS due to conflicting memmem prototype

Filip Hroch hroch at physics.muni.cz
Mon May 27 18:48:36 BST 2024


Dear Steve,

thank you for your support. The build fail is appearing in Debian 
now, as the compiler update consequence.

Best regards,
FH


On Fri, 26 Apr 2024 15:01:22 -0700 Steve Langasek
<steve.langasek at ubuntu.com> wrote:
> Package: dcraw
> Version: 9.28-5
> Severity: normal
> Tags: patch
> User: ubuntu-devel at lists.ubuntu.com
> Usertags: origin-ubuntu noble ubuntu-patch
> 
> Hi Filip,
> 
> In Ubuntu, dcraw was failing to build because of a local
implementation of
> memmem() whose prototype conflicts with the glibc prototype:
> 
> [...]
> gcc -DPACKAGE_NAME=\"dcraw\" -DPACKAGE_TARNAME=\"dcraw\" -
DPACKAGE_VERSION=\"9.28\" -DPACKAGE_STRING=\"dcraw\ 9.28\" -
DPACKAGE_BUGREPORT=\"hroch at physics.muni.cz\" -DPACKAGE_URL=\"\" -
DPACKAGE=\"dcraw\" -DVERSION=\"9.28\" -DHAVE_LIBM=1 -DHAVE_STDIO_H=1 -
DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -
DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -
DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -
DHAVE_JPEGLIB_H=1 -DHAVE_LIBJPEG=1 -DHAVE_LCMS2_H=1 -DHAVE_LIBLCMS2=1 -
I.   -Wdate-time -D_FORTIFY_SOURCE=3  -g -O2 -fno-omit-frame-pointer -
mno-omit-leaf-frame-pointer -ffile-prefix-map=/<<PKGBUILDDIR>>=. -
flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-
protection -Wformat -Werror=format-security -fcf-protection -fdebug-
prefix-map=/<<PKGBUILDDIR>>=/usr/src/dcraw-9.28-5build1 -O4 -c -o
parse.o parse.c
> [...]
> parse.c:1216:7: error: conflicting types for ‘memmem’; have ‘char
*(char *, size_t,  char *, size_t)’ {aka ‘char *(char *, long unsigned
int,  char *, long unsigned int)’}
>  1216 | char *memmem (char *haystack, size_t haystacklen,
>       |       ^~~~~~
> In file included from parse.c:13:
> /usr/include/string.h:389:14: note: previous declaration of ‘memmem’
with type ‘void *(const void *, size_t,  const void *, size_t)’ {aka
‘void *(const void *, long unsigned int,  const void *, long unsigned
int)’}
>   389 | extern void *memmem (const void *__haystack, size_t
__haystacklen,
>       |              ^~~~~~
> [...]
> 
>  
(https://launchpad.net/ubuntu/+source/dcraw/9.28-5build1/+build/28000832
)
> 
> This is not currently a build failure in Debian, but that is strictly
a
> question of compiler behavior, and this may start to FTBFS in Debian
at some
> later point.
> 
> And anyway, there's no reason to reimplement memmem() here, it's
probably
> less performant than the version provided by glibc.
> 
> We have applied the attached patch in Ubuntu to fix the build
failure.  I
> think it would be a good idea to apply it in Debian as well.
> 
> Thanks for considering,
> -- 
> Steve Langasek                   Give me a lever long enough and a
Free OS
> Debian Developer                   to set it on, and I can move the
world.
> Ubuntu Developer                                  
https://www.debian.org/
> slangasek at ubuntu.com                                    
vorlon at debian.org

-- 
F. Hroch <hroch at physics.muni.cz>, Masaryk University Brno,
Dept. of theor. physics and astrophysics, Kotlarska 2, CZ-611 37.



More information about the Debian-astro-maintainers mailing list