On Mon, 17 Dec 2007, Evan Cheng wrote:> We always welcome more tests. But it looks like there are two issues > here. > > 1. The autoconf requirement. Is it possible to get one configuration > working without the need for autoconf?One way to do this is to add a "cut down" version of the app to the test suite.> 2. GPL license. Chris?Any open source license that allows unrestricted redistribution is fine in llvm-test -Chris> Evan > > On Dec 14, 2007, at 12:30 PM, Török Edwin wrote: > >> Hi, >> >> I see that you are looking for new programs for the testsuite, as >> described in 'Compile programs with the LLVM compiler', and 'Adding >> programs to the llvm testsuite" on llvm.org/OpenProjects. >> >> My favourite "C source code" is ClamAV (www.clamav.net), and I would >> like to get it included in the testsuite. >> >> This mail is kind of long, but please bear with me, as I want to >> clarify >> how to best integrate Clamav into LLVM-testsuite's buildsystem. >> >> Why include it? >> >> It can be useful to find regressions, or new bugs; it already >> uncovered >> a few bugs in llvm's cbe, llc, and optimizers that I've reported >> through >> bugzilla (and they've been mostly fixed very fast! Thanks!). ClamAV >> was >> also the "victim" of a bug in gcc 4.1.0's optimizer [see 9)] >> >> It can be useful to test new/existing optimizations. There aren't any >> significant differences on its performance when compiled by different >> compilers (gcc, icc, llvm-gcc), so I hope LLVM's optimizers can (in >> the >> future) make it faster ;) >> >> I had a quick look at the build infrastructure, and there are some >> issues with getting it to work with programs that use autoconf (such >> as >> ClamAV), since AFAICT testsuites aren't allowed to run configure >> (listed >> below) >> >> Building issues aside there are some more questions: >> * ClamAV is GPL (but it includes BSD, LGPL parts), ok for testsuite? >> * what version to use? Latest stable, or latest svn? >> [In any case I'll wait till the next stable is published, it should be >> happening *very soon*] >> * what happens if you find bugs that also cause it to fail under gcc >> (unlikely) ? [I would prefer to get an entry on clamav's bugzilla >> then, >> with something in its subject saying it is llvm-testsuite related] >> * what happens if it only fails under llvm-gcc/llc/clang,.. and it is >> not due to a bug in llvm, but because of portability issues in the >> source code (unlikely)? >> I would prefer a clamav bugzilla here too, clamav is meant to be >> "portable" :) >> >> Also after I have set it up in the llvm testsuite, is there an easy >> way >> to run clang on it? Currently I have to hack autoconf generated >> makefiles if I want to test clang on it. >> >> 1. I've manually run, and generated a clamav-config.h. >> This usually just contains HAVE_* macros for headers, which should all >> be available on a POSIX system, so it shouldn't be a problem from this >> perspective for llvm's build farm. >> However there are some target specific macros: >> #define C_LINUX 1 >> #define FPU_WORDS_BIGENDIAN 0 >> #define WORDS_BIGENDIAN 0 >> Also SIZEOF_INT, SIZEOF_LONG,... but they are only used if the system >> doesn't have a proper <stdint.h> >> Also not sure of this: >> /* ctime_r takes 2 arguments */ >> #define HAVE_CTIME_R_2 1 >> >> What OS and CPU do the machines on llvm's buildfarm have? We could >> try a >> config.h that works on Linux (or MacOSX), and try to apply >> that to all, though there might be (non-obvious) failures. >> >> Any solutions to having these macros defined in the LLVM testsuite >> build? (especially for the bigendian macro) >> >> 2. AFAICT the llvm-testsuite build doesn't support a program that is >> built from multiple subdirectories. >> libclamav has its source split into multiple subdirectories, gathering >> those into one also requires changing #include that have relative >> paths. >> I also get files with the same name but from different subdirs, so I >> have to rename them to subdir_filename, and do that in #include too. >> >> I have done this manually, and it works (native, llc, cbe work). >> I could hack together some perl script to do this automatically, or is >> there a better solution? >> >> 3. Comparing output: I've written a small script that compares the >> --debug output, because it needs some adjustments since I also get >> memory addresses in the --debug output that obviously don't match up >> between runs. >> There isn't anything else to compare besides --debug output (besides >> ClamAV saying no virus found), and that can be a fairly good test. >> >> 4. What is the input data? >> Clamav is fast :) >> It needs a lot of input data if you want to get reasonable timings out >> of it (tens, hundreds of MB). >> Scanning multiple small files will be I/O bound, and it'd be mostly >> useless as a benchmark (though still useful for testing >> compiler/optimization correctness). >> >> So I was thinking of using some large files already available in the >> testsuite (oggenc has one), and then maybe point it to scan the last >> *stable* build of LLVM. Or find some files that are scanned slowly, >> but >> that don't presume lots of disk I/O (an archive, with ratio/size >> limits >> disabled, with highly compressable data). >> You won't be able to benchmark clamav in a "real world" scenario >> though, >> since that'd involve making it scanning malware, and I'm sure you >> don't >> want that on your build farm. >> >> You could give it to scan random data, but you'll need it to be >> reproducible, so scanning /dev/random, or /bin of current LLVM tree is >> not a good choice ;) >> >> There's also the problem of eliminating the initial disk I/O time >> out of >> the benchmark, like rerun 3 times automatically or something like >> that? >> >> 5. Library dependencies >> It needs zlib, all the rest is optional (bzip2, gmp, ....). I think I >> can reasonably assume zlib is available on all systems where the >> testsuite is run. >> >> 6. Sample output on using 126Mb of data as input: >> >> $ make TEST=nightly report >> .... >> Program | GCCAS Bytecode LLC compile LLC-BETA compile JIT codegen | >> GCC CBE LLC LLC-BETA JIT | GCC/CBE GCC/LLC GCC/LLC-BETA >> LLC/LLC-BETA >> clamscan | 7.0729 2074308 * * * | >> 17.48 17.55 18.81 * * | 1.00 0.93 n/a n/a >> >> 7. Clamav is multithreaded >> If you're interested in testing if llvm-generated code works when >> multithreaded (I don't see why it wouldn't, but we're talking about a >> testsuite), you'd need to start the daemon (as an unprivileged user is >> just fine), and then connect to it. >> Is it possible to tell the testsuite build system to do this? >> >> 8. Code coverage >> Testing all of clamav code with llvm is ... problematic. Unless you >> create files with every packer/archiver known to clamav it is likely >> there will be files that are compiled in but never used during the >> testsuite run. You can still test that these files compile, but >> thats it. >> >> 9. Configure tests >> Configure has 3 tests that check for gcc bugs known to break ClamAV (2 >> of which you already have, since those are in gcc's testsuite too). >> Add >> as separate "programs" to run in llvm testsuite? >> >> Thoughts? >> >> Best regards, >> Edwin >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >-Chris -- http://nondot.org/sabre/ http://llvm.org/
Chris Lattner wrote:> One way to do this is to add a "cut down" version of the app to the > test suite.I disabled optional features in clamav-config.h> >> 2. GPL license. Chris? > > Any open source license that allows unrestricted redistribution is > fine in llvm-testOk, I have created a script that automatically checks out ClamAV 0.92-stable source code from svn, and moves files to match LLVM testsuite's requirements. It only checks out GPL files, it omits libclamunrar (which is not GPL). Attaching all files. Let me know if you want to upload the entire package somewhere. For the moment I provide a script that automatically checks out sources from ClamAV svn repository (the tagged stable version). Please provide feedback on the scripts, and Makefile. What are the next steps required to add it to the testsuite? Now it knows to do this: edwin at lightspeed2:~/llvm-svn/llvm/projects/llvm-test/MultiSource/Applications/ClamAV$ make ENABLE_OPTIMIZED=1 TEST=nightly report .... Program | GCCAS Bytecode LLC compile LLC-BETA compile JIT codegen | GCC CBE LLC LLC-BETA JIT | GCC/CBE GCC/LLC GCC/LLC-BETA LLC/LLC-BETA clamscan | 6.2900 1728848 7.1709 * * | 12.71 12.75 13.49 * * | 1.00 0.94 n/a n/a Chris Lattner wrote:> > Thanks, having a better testsuite is very very useful!Your welcome, if you encounter any problems with ClamAV (that isn't due to my makefiles) you are welcome to open a bug on http://bugs.clamav.net For LLVM-testsuite build problems contact me directly. Thanks a lot, Edwin -------------- next part -------------- A non-text attachment was scrubbed... Name: clamav-config.h Type: text/x-chdr Size: 9396 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20071218/9c3ac30a/attachment.h> -------------- next part -------------- A non-text attachment was scrubbed... Name: filterdiff.sh Type: application/x-shellscript Size: 472 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20071218/9c3ac30a/attachment.bin> -------------- next part -------------- A non-text attachment was scrubbed... Name: header_rename.sh Type: application/x-shellscript Size: 162 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20071218/9c3ac30a/attachment-0001.bin> -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: Makefile URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20071218/9c3ac30a/attachment.ksh> -------------- next part -------------- A non-text attachment was scrubbed... Name: prepare.sh Type: application/x-shellscript Size: 1713 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20071218/9c3ac30a/attachment-0002.bin> -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: README.LLVM-tests URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20071218/9c3ac30a/attachment-0001.ksh> -------------- next part -------------- A non-text attachment was scrubbed... Name: rename.sh Type: application/x-shellscript Size: 137 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20071218/9c3ac30a/attachment-0003.bin> -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: ls_R URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20071218/9c3ac30a/attachment-0002.ksh>
Török Edwin wrote:> Attaching all files. Let me know if you want to upload the entire > package somewhere. > [...] > Please provide feedback on the scripts, and Makefile. > [...] > What are the next steps required to add it to the testsuiteIs there any chance for this to go in before the code freeze, or do you prefer to add it after? Best regards, --Edwin
Hi Edwin, I ran into two problems. 1. Using your config file and Makefile, I ran into issue compiling with gcc: gcc -I/Users/echeng/LLVM/llvm/projects/llvm-test/MultiSource/ Applications/ClamAV -I/Users/echeng/LLVM/llvm/projects/llvm-test/ MultiSource/Applications/ClamAV -I/\Users/echeng/LLVM/llvm/include -I/ Users/echeng/LLVM/llvm/projects/llvm-test/include -I../../..//include -I/Users/echeng/LLVM/llvm/include -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -O3 -O2 -mdynamic-no-pic -fomit-frame-pointer -c clamscan_clamscan.c - o Output/clamscan_clamscan.o clamscan_clamscan.c:39:26: error: clamscan_opt.h: No such file or directory clamscan_clamscan.c:40:29: error: clamscan/others.h: No such file or directory llvm-gcc compiles this just fine: /Users/echeng/LLVM/install/bin/llvm-gcc -I/Users/echeng/LLVM/llvm/ projects/llvm-test/MultiSource/Applications/ClamAV -I/Users/echeng/ LLVM/llvm/projects/llvm-test\/MultiSource/Applications/ClamAV -I/ Users/echeng/LLVM/llvm/include -I/Users/echeng/LLVM/llvm/projects/ llvm-test/include -I../../..//include -I/Users/echeng/LLVM/\llvm/ include -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -DHAVE_CONFIG_H -Iinclude/ libclamav/regex/ -Iinclude/libclamav/nsis -Iinclude/libclamav/lzma - Iinclude/libclamav\ -Iinclude/shared -Iinclude/clamscan/ -Iinclude/ - DC_DARWIN -DFPU_WORDS_BIGENDIAN=0 -DWORDS_BIGENDIAN=0 -O2 -mdynamic- no-pic -fomit-frame-pointer -O0 -c clamsca\n_clamscan.c -o Output/ clamscan_clamscan.bc -emit-llvm Looks like it's a makefile issue? 2. prepare.sh getdb doesn't work for me because I don't have wget. Is it possible for you to get the complete source in a compilable state and send me a tar file instead? A request: If it's possible, can you flatten the entire tree? That is, everything in the top level directory? Thanks, Evan On Dec 18, 2007, at 1:24 PM, Török Edwin wrote:> Chris Lattner wrote: >> One way to do this is to add a "cut down" version of the app to the >> test suite. > > I disabled optional features in clamav-config.h > >> >>> 2. GPL license. Chris? >> >> Any open source license that allows unrestricted redistribution is >> fine in llvm-test > > Ok, I have created a script that automatically checks out ClamAV > 0.92-stable source code from svn, and moves files to match LLVM > testsuite's requirements. > It only checks out GPL files, it omits libclamunrar (which is not > GPL). > > Attaching all files. Let me know if you want to upload the entire > package somewhere. > For the moment I provide a script that automatically checks out > sources > from ClamAV svn repository (the tagged stable version). > > Please provide feedback on the scripts, and Makefile. > > What are the next steps required to add it to the testsuite? > > Now it knows to do this: > edwin at lightspeed2:~/llvm-svn/llvm/projects/llvm-test/MultiSource/ > Applications/ClamAV$ > make ENABLE_OPTIMIZED=1 TEST=nightly report > .... > Program | GCCAS Bytecode LLC compile LLC-BETA compile JIT codegen | > GCC CBE LLC LLC-BETA JIT | GCC/CBE GCC/LLC GCC/LLC-BETA > LLC/LLC-BETA > clamscan | 6.2900 1728848 7.1709 * * | > 12.71 12.75 13.49 * * | 1.00 0.94 n/a n/a > > > Chris Lattner wrote: >> >> Thanks, having a better testsuite is very very useful! > > Your welcome, if you encounter any problems with ClamAV (that isn't > due > to my makefiles) you are welcome to open a bug on http:// > bugs.clamav.net > For LLVM-testsuite build problems contact me directly. > > > Thanks a lot, > Edwin > /* clamav-config.h. Generated from clamav-config.h.in by > configure. */ > /* clamav-config.h.in. Generated from configure.in by autoheader. */ > > /* enable bind8 compatibility */ > /* #undef BIND_8_COMPAT */ > > /* Define if your snprintf is busted */ > /* #undef BROKEN_SNPRINTF */ > > /* "build clamd" */ > /* #undef BUILD_CLAMD */ > > /* name of the clamav group */ > #define CLAMAVGROUP "clamav" > > /* name of the clamav user */ > #define CLAMAVUSER "clamav" > > /* enable clamuko */ > /* #undef CLAMUKO */ > > /* enable debugging */ > /* #undef CL_DEBUG */ > > /* enable experimental code */ > /* #undef CL_EXPERIMENTAL */ > > /* thread safe */ > /* #undef CL_THREAD_SAFE */ > > /* where to look for the config file */ > #define CONFDIR "/usr/local/etc" > > /* os is aix */ > /* #undef C_AIX */ > > /* os is beos */ > /* #undef C_BEOS */ > > /* Increase thread stack size. */ > /* #undef C_BIGSTACK */ > > /* os is bsd flavor */ > /* #undef C_BSD */ > > /* os is cygwin */ > /* #undef C_CYGWIN */ > > /* os is darwin */ > /* #undef C_DARWIN */ > > /* target is gnu-hurd */ > /* #undef C_GNU_HURD */ > > /* os is hpux */ > /* #undef C_HPUX */ > > /* os is interix */ > /* #undef C_INTERIX */ > > /* os is irix */ > /* #undef C_IRIX */ > > /* target is kfreebsd-gnu */ > /* #undef C_KFREEBSD_GNU */ > > /* target is linux */ > /* #define C_LINUX 1 */ > > /* os is OS/2 */ > /* #undef C_OS2 */ > > /* os is osf/tru64 */ > /* #undef C_OSF */ > > /* os is QNX 6.x.x */ > /* #undef C_QNX6 */ > > /* os is solaris */ > /* #undef C_SOLARIS */ > > /* Path to virus database directory. */ > #define DATADIR "/usr/local/share/clamav" > > /* "default FD_SETSIZE value" */ > #define DEFAULT_FD_SETSIZE 1024 > > /* "build unrar code" */ > /* #undef ENABLE_UNRAR */ > > /* file i/o buffer size */ > #define FILEBUFF 8192 > > /* FPU byte ordering is little endian */ > #define FPU_WORDS_BIGENDIAN 0 > > /* enable workaround for broken DNS servers */ > /* #undef FRESHCLAM_DNS_FIX */ > > /* use "Cache-Control: no-cache" in freshclam */ > /* #undef FRESHCLAM_NO_CACHE */ > > /* access rights in msghdr */ > /* #undef HAVE_ACCRIGHTS_IN_MSGHDR */ > > /* attrib aligned */ > #define HAVE_ATTRIB_ALIGNED 1 > > /* attrib packed */ > #define HAVE_ATTRIB_PACKED 1 > > /* have bzip2 */ > /* #define HAVE_BZLIB_H 1 */ > > /* ancillary data style fd pass */ > /* #define HAVE_CONTROL_IN_MSGHDR 1 */ > > /* Define to 1 if you have the `ctime_r' function. */ > /* #define HAVE_CTIME_R 1 */ > > /* ctime_r takes 2 arguments */ > /* #define HAVE_CTIME_R_2 1 */ > > /* ctime_r takes 3 arguments */ > /* #undef HAVE_CTIME_R_3 */ > > /* Define to 1 if you have the <dlfcn.h> header file. */ > /* #define HAVE_DLFCN_H 1 */ > > /* Define to 1 if fseeko (and presumably ftello) exists and is > declared. */ > #define HAVE_FSEEKO 1 > > /* gethostbyname_r takes 3 arguments */ > /* #undef HAVE_GETHOSTBYNAME_R_3 */ > > /* gethostbyname_r takes 5 arguments */ > /* #undef HAVE_GETHOSTBYNAME_R_5 */ > > /* gethostbyname_r takes 6 arguments */ > /* #undef HAVE_GETHOSTBYNAME_R_6 */ > > /* Define to 1 if you have the `getpagesize' function. */ > /* #define HAVE_GETPAGESIZE 1 */ > > /* have gmp installed */ > /* #undef HAVE_GMP */ > > /* Define to 1 if you have the <grp.h> header file. */ > #define HAVE_GRP_H 1 > > /* Define to 1 if you have the <iconv.h> header file. */ > /* #define HAVE_ICONV_H 1 */ > > /* Define to 1 if you have the `inet_ntop' function. */ > /* #define HAVE_INET_NTOP 1 */ > > /* Define to 1 if you have the `initgroups' function. */ > /* #define HAVE_INITGROUPS 1 */ > > /* Define to 1 if you have the <inttypes.h> header file. */ > /* #define HAVE_INTTYPES_H 1 */ > > /* in_addr_t is defined */ > /* #define HAVE_IN_ADDR_T 1 */ > > /* in_port_t is defined */ > /* #define HAVE_IN_PORT_T 1 */ > > /* Define to 1 if you have the <libmilter/mfapi.h> header file. */ > /* #undef HAVE_LIBMILTER_MFAPI_H */ > > /* Define to 1 if you have the <limits.h> header file. */ > #define HAVE_LIMITS_H 1 > > /* Define to 1 if you have the <malloc.h> header file. */ > /* #define HAVE_MALLOC_H 1 */ > > /* Define to 1 if you have the `memcpy' function. */ > #define HAVE_MEMCPY 1 > > /* Define to 1 if you have the <memory.h> header file. */ > /* #define HAVE_MEMORY_H 1 */ > > /* Define to 1 if you have the `mkstemp' function. */ > #define HAVE_MKSTEMP 1 > > /* Define to 1 if you have a working `mmap' system call. */ > #define HAVE_MMAP 1 > > /* Define to 1 if you have the <ndir.h> header file. */ > /* #undef HAVE_NDIR_H */ > > /* Define to 1 if you have the `poll' function. */ > /* #define HAVE_POLL 1 */ > > /* Define to 1 if you have the <poll.h> header file. */ > /* #define HAVE_POLL_H 1 */ > > /* "pragma pack" */ > /* #undef HAVE_PRAGMA_PACK */ > > /* "pragma pack hppa/hp-ux style" */ > /* #undef HAVE_PRAGMA_PACK_HPPA */ > > /* Define to 1 if you have the <pwd.h> header file. */ > #define HAVE_PWD_H 1 > > /* readdir_r takes 2 arguments */ > /* #undef HAVE_READDIR_R_2 */ > > /* readdir_r takes 3 arguments */ > /* #undef HAVE_READDIR_R_3 */ > > /* Define to 1 if you have the `recvmsg' function. */ > /* #define HAVE_RECVMSG 1 */ > > /* have resolv.h */ > /* #undef HAVE_RESOLV_H */ > > /* Define signed right shift implementation */ > #define HAVE_SAR 1 > > /* Define to 1 if you have the `sendmsg' function. */ > /* #define HAVE_SENDMSG 1 */ > > /* Define to 1 if you have the `setgroups' function. */ > /* #define HAVE_SETGROUPS 1 */ > > /* Define to 1 if you have the `setsid' function. */ > /* #define HAVE_SETSID 1 */ > > /* Define to 1 if you have the `snprintf' function. */ > #define HAVE_SNPRINTF 1 > > /* Define to 1 if you have the <stdbool.h> header file. */ > #define HAVE_STDBOOL_H 1 > > /* Define to 1 if you have the <stdint.h> header file. */ > #define HAVE_STDINT_H 1 > > /* Define to 1 if you have the <stdlib.h> header file. */ > #define HAVE_STDLIB_H 1 > > /* Define to 1 if you have the `strerror_r' function. */ > /* #define HAVE_STRERROR_R 1 */ > > /* Define to 1 if you have the <strings.h> header file. */ > /* #define HAVE_STRINGS_H 1 */ > > /* Define to 1 if you have the <string.h> header file. */ > #define HAVE_STRING_H 1 > > /* Define to 1 if you have the `strlcat' function. */ > /* #undef HAVE_STRLCAT */ > > /* Define to 1 if you have the `strlcpy' function. */ > /* #undef HAVE_STRLCPY */ > > /* Define to 1 if you have the <sys/filio.h> header file. */ > /* #undef HAVE_SYS_FILIO_H */ > > /* Define to 1 if you have the <sys/inttypes.h> header file. */ > /* #undef HAVE_SYS_INTTYPES_H */ > > /* Define to 1 if you have the <sys/int_types.h> header file. */ > /* #undef HAVE_SYS_INT_TYPES_H */ > > /* Define to 1 if you have the <sys/mman.h> header file. */ > #define HAVE_SYS_MMAN_H 1 > > /* Define to 1 if you have the <sys/param.h> header file. */ > #define HAVE_SYS_PARAM_H 1 > > /* "have <sys/select.h>" */ > /* #undef HAVE_SYS_SELECT_H */ > > /* Define to 1 if you have the <sys/stat.h> header file. */ > #define HAVE_SYS_STAT_H 1 > > /* Define to 1 if you have the <sys/types.h> header file. */ > #define HAVE_SYS_TYPES_H 1 > > /* Define to 1 if you have the <sys/uio.h> header file. */ > /* #define HAVE_SYS_UIO_H 1 */ > > /* Define to 1 if you have the <tcpd.h> header file. */ > /* #undef HAVE_TCPD_H */ > > /* Define to 1 if you have the <termios.h> header file. */ > /* #define HAVE_TERMIOS_H 1 */ > > /* Define to 1 if you have the <unistd.h> header file. */ > #define HAVE_UNISTD_H 1 > > /* Define to 1 if you have the `vsnprintf' function. */ > #define HAVE_VSNPRINTF 1 > > /* zlib installed */ > #define HAVE_ZLIB_H 1 > > /* Early Linux doesn't set cmsg fields */ > /* #undef INCOMPLETE_CMSG */ > > /* bzip funtions do not have bz2 prefix */ > /* #undef NOBZ2PREFIX */ > > /* "no fd_set" */ > /* #undef NO_FD_SET */ > > /* Name of package */ > #define PACKAGE "clamav" > > /* Define to the address where bug reports for this package should > be sent. */ > #define PACKAGE_BUGREPORT "" > > /* Define to the full name of this package. */ > #define PACKAGE_NAME "" > > /* Define to the full name and version of this package. */ > #define PACKAGE_STRING "" > > /* Define to the one symbol short name of this package. */ > #define PACKAGE_TARNAME "" > > /* Define to the version of this package. */ > #define PACKAGE_VERSION "" > > /* scan buffer size */ > #define SCANBUFF 131072 > > /* location of Sendmail binary */ > /* #undef SENDMAIL_BIN */ > > /* major version of Sendmail */ > /* #undef SENDMAIL_VERSION_A */ > > /* minor version of Sendmail */ > /* #undef SENDMAIL_VERSION_B */ > > /* subversion of Sendmail */ > /* #undef SENDMAIL_VERSION_C */ > > /* Define to 1 if the `setpgrp' function takes no argument. */ > #define SETPGRP_VOID 1 > > #if 0 > /* lets assume system has proper stdint that defines uintX_t. */ > /* The number of bytes in type int */ > /* #define SIZEOF_INT 4 */ > > /* The number of bytes in type long */ > #define SIZEOF_LONG 8 > > /* The number of bytes in type long long */ > #define SIZEOF_LONG_LONG 8 > > /* The number of bytes in type short */ > #define SIZEOF_SHORT 2 > #endif > > /* Define to 1 if you have the ANSI C header files. */ > #define STDC_HEADERS 1 > > /* use syslog */ > /* #define USE_SYSLOG 1 */ > > /* Version number of package */ > #define VERSION "devel-20071218" > > /* tcpwrappers support */ > /* #undef WITH_TCPWRAP */ > > /* endianess */ > /* #define WORDS_BIGENDIAN 0 */ > > /* Define to 1 to make fseeko visible on some hosts (e.g. glibc > 2.2). */ > /* #undef _LARGEFILE_SOURCE */ > > /* POSIX compatibility */ > /* #undef _POSIX_PII_SOCKET */ > > /* thread safe */ > /* #undef _REENTRANT */ > > /* Define to empty if `const' does not conform to ANSI C. */ > /* #undef const */ > > /* Define to `__inline__' or `__inline' if that's what the C compiler > calls it, or to nothing if 'inline' is not supported under any > name. */ > #ifndef __cplusplus > /* #undef inline */ > #endif > > /* Define to `long int' if <sys/types.h> does not define. */ > /* #undef off_t */ > > /* Define to "int" if <sys/socket.h> does not define. */ > /* #undef socklen_t */<filterdiff.sh><header_rename.sh>LEVEL > = ../../../ > #RUN_OPTIONS > > Source = $(addprefix libclamav_, \ > aspack.c autoit.c binhex.c blob.c cab.c chmunpack.c cvd.c dconf.c > dsig.c\ > elf.c entconv.c filetypes.c fsg.c hashtab.c htmlnorm.c\ > is_tar.c jscript.c line.c lockdb.c matcher-ac.c matcher-bm.c\ > matcher.c mbox.c md5.c message.c mew.c msexpand.c mspack.c > ole2_extract.c\ > others.c packlibs.c pdf.c pe.c petite.c phishcheck.c > phish_domaincheck_db.c phish_whitelist.c\ > pst.c readdb.c rebuildpe.c regex_list.c rtf.c scanners.c sis.c > snprintf.c special.c spin.c str.c suecrypt.c\ > table.c text.c tnef.c unarj.c unsp.c untar.c unzip.c upack.c > upx.c uuencode.c vba_extract.c wwunpack.c yc.c)\ > $(addprefix clamscan_, \ > clamscan.c manager.c others.c treewalk.c)\ > $(addprefix shared_, \ > cdiff.c cfgparser.c getopt.c misc.c network.c options.c output.c > sha256.c)\ > $(addprefix libclamav_regex_, \ > regerror.c, regfree.c, \ > regcomp.c, regexec.c, strlcpy.c)\ > $(addprefix libclamav_nsis_, \ > nulsft.c, bzlib.c, infblock.c, LZMADecode.c ) > # SVN version has these: > # inflate64.c lzma_iface.c > # $(addprefix libclamav_lzma_, \ > # LzmaStateDecode.c) \ > > PROG = clamscan > CFLAGS += -DHAVE_CONFIG_H -Iinclude/libclamav/regex/ -Iinclude/ > libclamav/nsis -Iinclude/libclamav/lzma -Iinclude/libclamav - > Iinclude/shared -Iinclude/clamscan/ -Iinclude/ > > LDFLAGS = -lz > RUN_OPTIONS = --debug --no-summary -ddbdir -r inputs/* > > include $(LEVEL)/Makefile.config > > > # for ClamAV these are in clamav-config.h, but since we can't run > configure, we have to define them here > > > # -- OS macros -- > # It is especially important to get this correctly defined for > windows. > > ifeq ($(OS),Darwin) > CFLAGS += -DC_DARWIN > endif > ifeq ($(OS),AIX) > CFLAGS += -DC_AIX > endif > ifeq ($(OS), IRIX) > CFLAGS += -DC_IRIX > endif > ifeq ($(OS), Cygwin) > CFLAGS += -DC_CYGWIN > endif > ifeq ($(OS), FreeBSD) > CFLAGS += -DC_BSD > endif > ifeq ($(OS), OpenBSD) > CFLAGS += -DC_BSD > endif > ifeq ($(OS), NetBSD) > CFLAGS += -DC_BSD > endif > ifeq ($(OS), HP-UX) > CFLAGS += -DC_HPUX > endif > ifeq ($(OS), Interix) > CFLAGS += -DC_INTERIX -DC_WINDOWS > endif > ifeq ($(OS), Win32) > CFLAGS += -DC_WINDOWS > endif > ifeq ($(OS), mingw) > CFLAGS += -DC_WINDOWS > endif > ifeq ($(OS), Linux) > CFLAGs += -DC_LINUX > endif > > # -- except ARM all arches have WORDS_BIGENDIAN same as ENDIAN. > # for ARM we'd need a runtime autoconf check to detect. > # Only affects autoit.c, not defining this macro will partially > disable it. > > ifneq ($(ARCH),ARM) > ifeq ($(ENDIAN),little) > CFLAGS += -DFPU_WORDS_BIGENDIAN=0 > endif > ifeq ($(ENDIAN),big) > CFLAGS += -DFPU_WORDS_BIGENDIAN=1 > endif > endif > > > # -- endianness detection -- > # It is important to get this correctly, especially for Sparc. > # If arch is little endian the code possibly does unaligned > accesses, that would > # cause a SIGBUS on Sparc. > > ifeq ($(ENDIAN),little) > CFLAGS += -DWORDS_BIGENDIAN=0 > endif > ifeq ($(ENDIAN),big) > CFLAGS += -DWORDS_BIGENDIAN=1 > endif > > include ../../Makefile.multisrc > #must be after all includes > # temp files have random names, filter them > DIFFPROG := $(PROGDIR)/DiffOutput.sh "./filterdiff.sh" > > <prepare.sh>Building ClamAV (www.clamav.net) for llvm's testsuite. > > To get sources from clamav's repository > (currently from 0.92 stable version, you can edit the tag in > prepare.sh) > > $ ./prepare.sh checkout > $ ./prepare.sh copy > $ ./prepare.sh getdb > > Provided files: > prepare.sh > rename.sh: used by prepare.sh > header_rename.sh: used by prepare.sh > clamav-config.h: minimal config header, so we don't have to run > autoconf > Makefile: integrate ClamAV into LLVM-testsuite's build-system > filterdiff.sh: compare --debug output to test code generation > correctness > > Important to know: > > The directory inputs/ contains files (or symlinks to) to be scanned > during the test. > These can be any files, but they must be the same each time you run > the test, to ensure consistency of results. > > The directory dbdir/ contains the virus database. You get an > initial copy with the > prepare.sh. > Note, that the recommended way to update is via freshclam(1). > Updating the database > is not important for the test-suite. > When you import a new version of ClamAV into the testsuite it is > recommended to > use latest DB however. > > When execute clamscan creates files in the system tmp directory > (usually /tmp). > Watch disk space! > > > > BUGREPORTS > ---------- > If you encounter problems with ClamAV itself, please try to > reproduce the problem with > clamav built from latest stable available on www.clamav.net. > > You can report bugs on http://bugs.clamav.net > > If you haven't tried to reproduce problem with the original clamav, > please add a reference to the LLVM bugreport, and a descriptive > text in subject stating > it is related to LLVM testsuite. > > For bugs opened on LLVM bugzilla regarding ClamAV testsuite failures > (that are not due to bugs in LLVM), please CC: edwin at clamav dot net > > <rename.sh>.: > clamav-config.h > clamscan_clamscan.c > clamscan_manager.c > clamscan_others.c > clamscan_treewalk.c > COPYING > dbdir > engine.c > filterdiff.sh > header_rename.sh > include > inputs > libclamav_aspack.c > libclamav_autoit.c > libclamav_binhex.c > libclamav_blob.c > libclamav_cab.c > libclamav_chmunpack.c > libclamav_cvd.c > libclamav_dconf.c > libclamav_dsig.c > libclamav_elf.c > libclamav_entconv.c > libclamav_filetypes.c > libclamav_fsg.c > libclamav_hashtab.c > libclamav_htmlnorm.c > libclamav_is_tar.c > libclamav_jscript.c > libclamav_line.c > libclamav_lockdb.c > libclamav_matcher-ac.c > libclamav_matcher-bm.c > libclamav_matcher.c > libclamav_mbox.c > libclamav_md5.c > libclamav_message.c > libclamav_mew.c > libclamav_msexpand.c > libclamav_mspack.c > libclamav_nsis_bzlib.c > libclamav_nsis_infblock.c > libclamav_nsis_LZMADecode.c > libclamav_nsis_nulsft.c > libclamav_ole2_extract.c > libclamav_others.c > libclamav_packlibs.c > libclamav_pdf.c > libclamav_pe.c > libclamav_petite.c > libclamav_phishcheck.c > libclamav_phish_domaincheck_db.c > libclamav_phish_whitelist.c > libclamav_pst.c > libclamav_readdb.c > libclamav_rebuildpe.c > libclamav_regex_list.c > libclamav_regex_regcomp.c > libclamav_regex_regerror.c > libclamav_regex_regexec.c > libclamav_regex_regfree.c > libclamav_regex_strlcpy.c > libclamav_rtf.c > libclamav_scanners.c > libclamav_sis.c > libclamav_snprintf.c > libclamav_special.c > libclamav_spin.c > libclamav_str.c > libclamav_suecrypt.c > libclamav_table.c > libclamav_text.c > libclamav_tnef.c > libclamav_unarj.c > libclamav_unsp.c > libclamav_untar.c > libclamav_unzip.c > libclamav_upack.c > libclamav_upx.c > libclamav_uuencode.c > libclamav_vba_extract.c > libclamav_wwunpack.c > libclamav_yc.c > Makefile > Output > prepare.sh > README.LLVM-tests > rename.sh > report.nightly.raw.out > report.nightly.txt > shared_cdiff.c > shared_cfgparser.c > shared_getopt.c > shared_misc.c > shared_network.c > shared_options.c > shared_output.c > shared_sha256.c > target.h > test_farm_farm.c > test_libclamav_libclamav.c > test_mbox_debugm.c > test_pe_debugpe.c > tmp_new > tmp_reference > > ./dbdir: > daily.cvd > main.cvd > > ./include: > clamscan > libclamav > shared > > ./include/clamscan: > clamscan_opt.h > global.h > manager.h > others.h > treewalk.h > > ./include/libclamav: > aspack.h > autoit.h > binhex.h > blob.h > cab.h > chmunpack.h > clamav.h > cltypes.h > cvd.h > dconf.h > dsig.h > elf.h > encoding_aliases.h > entconv.h > entitylist.h > execs.h > filetypes.h > fsg.h > hashtab.h > htmlnorm.h > iana_tld.h > is_tar.h > jscript.h > line.h > lockdb.h > matcher-ac.h > matcher-bm.h > matcher.h > mbox.h > md5.h > message.h > mew.h > msexpand.h > mspack.h > nsis > ole2_extract.h > others.h > packlibs.h > pdf.h > pe.h > petite.h > phishcheck.h > phish_domaincheck_db.h > phish_whitelist.h > pst.h > readdb.h > rebuildpe.h > regex > regex_list.h > rtf.h > scanners.h > sis.h > snprintf.h > special.h > spin.h > str.h > suecrypt.h > table.h > text.h > tnef.h > unarj.h > unsp.h > untar.h > unzip.h > upack.h > upx.h > uuencode.h > vba_extract.h > wwunpack.h > yc.h > > ./include/libclamav/nsis: > bzlib_private.h > LZMADecode.h > nsis_bzlib.h > nsis_zconf.h > nsis_zlib.h > nsis_zutil.h > nulsft.h > > ./include/libclamav/regex: > cclass.h > cname.h > regex2.h > regex.h > utils.h > > ./include/shared: > cdiff.h > cfgparser.h > getopt.h > misc.h > network.h > options.h > output.h > sha256.h > > ./inputs: > clam.cab > clamdoc.pdf > clam.exe > clam.exe.bz2 > clam-v2.rar > clam-v3.rar > clam.zip > dbdir > docs > large.pcm > mei16v2.m2v > README > rtf-test > tune > > ./inputs/rtf-test: > Doc11.rtf > Doc1.rtf > Doc22.rtf > Doc2.rtf > doc3.rtf > docCLAMexe.rtf > rtf1.rtf > rtf-novirus.rtf > > ./Output: > clamscan.cbe > clamscan.cbe.c > clamscan_clamscan.bc > clamscan_clamscan.o > clamscan.diff-cbe > clamscan.diff-llc > clamscan.exe-cbe > clamscan.exe-llc > clamscan.linked.bc > clamscan.linked.bc.info > clamscan.linked.rbc > clamscan.llc > clamscan.llc.s > clamscan.llvm > clamscan.llvm.bc > clamscan_manager.bc > clamscan_manager.o > clamscan.native > clamscan.nightly.cbe.report.txt > clamscan.nightly.compile.report.txt > clamscan.nightly.jit.report.txt > clamscan.nightly.llc.report.txt > clamscan.nightly.llc.report.txt.info > clamscan.nightly.nat.report.txt > clamscan.nightly.report.txt > clamscan_others.bc > clamscan_others.o > clamscan.out-cbe > clamscan.out-cbe.time > clamscan.out-jit > clamscan.out-jit.time > clamscan.out-llc > clamscan.out-llc.time > clamscan.out-nat > clamscan.out-nat.time > clamscan_treewalk.bc > clamscan_treewalk.o > libclamav_aspack.bc > libclamav_aspack.o > libclamav_autoit.bc > libclamav_autoit.o > libclamav_binhex.bc > libclamav_binhex.o > libclamav_blob.bc > libclamav_blob.o > libclamav_cab.bc > libclamav_cab.o > libclamav_chmunpack.bc > libclamav_chmunpack.o > libclamav_cvd.bc > libclamav_cvd.o > libclamav_dconf.bc > libclamav_dconf.o > libclamav_dsig.bc > libclamav_dsig.o > libclamav_elf.bc > libclamav_elf.o > libclamav_entconv.bc > libclamav_entconv.o > libclamav_filetypes.bc > libclamav_filetypes.o > libclamav_fsg.bc > libclamav_fsg.o > libclamav_hashtab.bc > libclamav_hashtab.o > libclamav_htmlnorm.bc > libclamav_htmlnorm.o > libclamav_is_tar.bc > libclamav_is_tar.o > libclamav_jscript.bc > libclamav_jscript.o > libclamav_line.bc > libclamav_line.o > libclamav_lockdb.bc > libclamav_lockdb.o > libclamav_matcher-ac.bc > libclamav_matcher-ac.o > libclamav_matcher.bc > libclamav_matcher-bm.bc > libclamav_matcher-bm.o > libclamav_matcher.o > libclamav_mbox.bc > libclamav_mbox.o > libclamav_md5.bc > libclamav_md5.o > libclamav_message.bc > libclamav_message.o > libclamav_mew.bc > libclamav_mew.o > libclamav_msexpand.bc > libclamav_msexpand.o > libclamav_mspack.bc > libclamav_mspack.o > libclamav_nsis_bzlib.bc > libclamav_nsis_bzlib.o > libclamav_nsis_infblock.bc > libclamav_nsis_infblock.o > libclamav_nsis_LZMADecode.bc > libclamav_nsis_LZMADecode.o > libclamav_nsis_nulsft.bc > libclamav_nsis_nulsft.o > libclamav_ole2_extract.bc > libclamav_ole2_extract.o > libclamav_others.bc > libclamav_others.o > libclamav_packlibs.bc > libclamav_packlibs.o > libclamav_pdf.bc > libclamav_pdf.o > libclamav_pe.bc > libclamav_pe.o > libclamav_petite.bc > libclamav_petite.o > libclamav_phishcheck.bc > libclamav_phishcheck.o > libclamav_phish_domaincheck_db.bc > libclamav_phish_domaincheck_db.o > libclamav_phish_whitelist.bc > libclamav_phish_whitelist.o > libclamav_pst.bc > libclamav_pst.o > libclamav_readdb.bc > libclamav_readdb.o > libclamav_rebuildpe.bc > libclamav_rebuildpe.o > libclamav_regex_list.bc > libclamav_regex_list.o > libclamav_regex_regcomp.bc > libclamav_regex_regcomp.o > libclamav_regex_regerror.bc > libclamav_regex_regerror.o > libclamav_regex_regexec.bc > libclamav_regex_regexec.o > libclamav_regex_regfree.bc > libclamav_regex_regfree.o > libclamav_regex_strlcpy.bc > libclamav_regex_strlcpy.o > libclamav_rtf.bc > libclamav_rtf.o > libclamav_scanners.bc > libclamav_scanners.o > libclamav_sis.bc > libclamav_sis.o > libclamav_snprintf.bc > libclamav_snprintf.o > libclamav_special.bc > libclamav_special.o > libclamav_spin.bc > libclamav_spin.o > libclamav_str.bc > libclamav_str.o > libclamav_suecrypt.bc > libclamav_suecrypt.o > libclamav_table.bc > libclamav_table.o > libclamav_text.bc > libclamav_text.o > libclamav_tnef.bc > libclamav_tnef.o > libclamav_unarj.bc > libclamav_unarj.o > libclamav_unsp.bc > libclamav_unsp.o > libclamav_untar.bc > libclamav_untar.o > libclamav_unzip.bc > libclamav_unzip.o > libclamav_upack.bc > libclamav_upack.o > libclamav_upx.bc > libclamav_upx.o > libclamav_uuencode.bc > libclamav_uuencode.o > libclamav_vba_extract.bc > libclamav_vba_extract.o > libclamav_wwunpack.bc > libclamav_wwunpack.o > libclamav_yc.bc > libclamav_yc.o > shared_cdiff.bc > shared_cdiff.o > shared_cfgparser.bc > shared_cfgparser.o > shared_getopt.bc > shared_getopt.o > shared_misc.bc > shared_misc.o > shared_network.bc > shared_network.o > shared_options.bc > shared_options.o > shared_output.bc > shared_output.o > shared_sha256.bc > shared_sha256.o > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev