[Pkg-clamav-devel] package status for jessie

Andreas Cadhalpun andreas.cadhalpun at googlemail.com
Sun Aug 24 22:38:55 UTC 2014


Hi Sebastian,

On 23.08.2014 20:58, Sebastian Andrzej Siewior wrote:
> On Sat, Aug 23, 2014 at 05:07:48PM +0200, Andreas Cadhalpun wrote:
>>>> Perhaps it would be better to use ftruncate64.
>>>
>>> Yes, but this is nothing you should specify. The define should do it. So just
>>> digged a little into it.
>>
>> We could define it:
>> #define ftruncate ftruncate64
>
> no, since it wouldn't help.

Indeed, because the problem is in LLVM's static libraries.

>>> I've been looking where that truncate() user is coming from and I did not find
>>> a single user in the source.
>>
>> Did you use codesearch? It finds 4 uses of ftruncate [1].
>
> I search for truncate() not for ftruncate() exactly for that reason (because
> there are ftruncate() users in tree).

Sorry, I confused truncate and ftruncate.

>>> Anyway, it looks like we linking llvm staticly instead of using the external
>>> library. This isn't on purpose right?
>>
>> I think it is on purpose, because clamav upstream didn't want to ship shared
>> LLVM libraries...
> This makes sense as long as you use the in-tree llvm code.
>
>> But for Debian it would be better, if it was dynamically linked. (Otherwise
>> we don't benefit from bug fixes in LLVM minor versions without recompiling
>> clamav.)
>
> Good. So I guess that there is a -static switch which we are getting rid of.
> Otherwise I can't explain it :)

Unfortunately, it is not only a superfluous '-static'.
As far as I can tell, llvm only ships the static libraries!
Looking at the file list of llvm-3.4-dev [1], only one static library, 
libLTO.a, has a corresponding .so symlink.

Unless I'm missing something, linking statically against LLVM is the 
only option.

Therefore I think we must add a Built-Using field [2] containing the 
corresponding LLVM version.

Looking at LLVM's build log [3] one finds many uses of 
'-D_FILE_OFFSET_BITS=64', but it seems there is some problem in LLVM's 
build system, because not everything is built with that.

After adding '-D_FILE_OFFSET_BITS=64' to CXXFLAGS in LLVM's 
debian/rules, rebuilding LLVM and then rebuilding clamav against this 
LLVM, libclamav doesn't contain any non-LFS symbols anymore.

So I opened a bug against LLVM [4].

> Do you know by any chance what is the progress by upstream using external llvm?

I'm afraid I don't have any news about that. FWIW, the upstream bug [5] 
says the target milestone is 0.98.6.

Best regards,
Andreas


1: https://packages.debian.org/sid/amd64/llvm-3.4-dev/filelist
2: 
https://www.debian.org/doc/debian-policy/ch-relationships.html#s-built-using
3: 
https://buildd.debian.org/status/fetch.php?pkg=llvm-toolchain-3.4&arch=i386&ver=1%3A3.4.2-8&stamp=1408438465
4: https://bugs.debian.org/759162
5: https://bugzilla.clamav.net/show_bug.cgi?id=10981



More information about the Pkg-clamav-devel mailing list