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

Reply via email to