Package: doxygen Version: 1.9.4-2 Tags: hppa, patch Sometimes doxygen aborts on the debian hppa buildd servers like this:
/usr/bin/doxygen /<<PKGBUILDDIR>>/obj-hppa-linux-gnu/src/KF5WidgetsAddons_ECMQchDoxygen.config terminate called after throwing an instance of 'ghc::filesystem::filesystem_error' what(): Value too large for defined data type: '/<<PKGBUILDDIR>>/obj-hppa-linux-gnu/src' Aborted Full log of this example is here: https://buildd.debian.org/status/fetch.php?pkg=kwidgetsaddons&arch=hppa&ver=5.97.0-1&stamp=1660610441&raw=0) I've tracked the issue down to the fact, that doxygen is built by default without large file support on 32-bit platforms. Thus the same issue *may* happen *randomly* on armel, armhf, i386, mipsel, m68k, powerpc, sh4 and x32 debian build targets, if doxygen is running on large filesystems and if the files it should process are located in "upper" disc areas on the filesystem. Adding CFLAGS += -D_LARGE_FILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 CXXFLAGS += -D_LARGE_FILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 to the debian/rules file fixes the issue. I've locally built doxygen with those flags enabled and tested that this fixes the error. Can you please add those flags to the next upload of doxygen? A patch is attached. Thanks! Helge PS: This is triggered when doxygen does a directory scan. Indirectly it calls the getdents64() syscall which returns 64-bit d_off values in the linux_dirent64 struct, which then are tried to be stored in 32-bit variables and then triggers this error if the returned values are bigger than what a 32-bit variable can hold.
--- debian/rules.org 2022-08-17 06:09:55.850853504 +0000 +++ debian/rules 2022-08-17 06:10:21.906723720 +0000 @@ -13,6 +13,8 @@ CFLAGS := $(shell dpkg-buildflags --get CPPFLAGS; dpkg-buildflags --get CFLAGS) CXXFLAGS := $(shell dpkg-buildflags --get CPPFLAGS; dpkg-buildflags --get CXXFLAGS) LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS) +CFLAGS += -D_LARGE_FILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 +CXXFLAGS += -D_LARGE_FILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 export CFLAGS export CXXFLAGS export LDFLAGS