[Clamav-devel] enabling DMG and XAR support

Brandon Perry bperry.volatile at gmail.com
Wed Mar 26 14:37:26 EDT 2014


You must not have read my email. I was not saying it is your build tool. I said it was your architecture causing the LLVM type to not be implicitly casted to a long int, likely due to register sizes on the PPC platform.

You will need to modify the code to explicitly cast the LLVM type to a long int so that it compiles on your architecture.



Sent from a computer

> On Mar 26, 2014, at 12:58 PM, Dale Walsh <dale at daleenterprise.com> wrote:
> 
> Why do people have to be so stupid and immediately implicate the build tools or environment?
> 
> Because updates and bug-fixes were applied, your assuming that these are not done correctly or in compliance with the OS and build environment or that they are faulty.
> 
> First, you need to stop this bull-crap about non-standard and heavily modified and listen to the details regarding the issue you are told and stop focusing on the build tools which you have no clue about.
> 
> It is best that you accept my word that it is standard and in compliance with the OS, build environment and ADE.
> 
> I have confirmed the issue still exists under gcc-4.4 so it's not a build tool issue.
> 
> I now have generated a fully working  ClamAV 0.98.1 under gcc-3.3, gcc-4.0.0 and gcc 4.0.1 by cleanly autoreconf-ing the source tree.
> 
> Here's my configure for the working builds under the mentioned compilers:
> CFLAGS="-arch ppc -arch i386 -g -Os -pipe -DFD_SETSIZE=2048 -arch ppc -arch i386" CCFLAGS="-arch ppc -arch i386 -g -Os -pipe " CXXFLAGS="-arch ppc -arch i386 -g -Os -pipe " LDFLAGS="-arch ppc -arch i386   "   ./configure --prefix="/usr" --mandir=/usr/share/man --sysconfdir=/etc --enable-bigstack --with-user=clamav --with-group=clamav --with-dbdir=/var/clamav --disable-clamav
> 
> 
> 
> Is using ltmain.sh from Debian-Ubuntu called portability amongst different environments??
> 
> 
> -- Dale
> 
> 
> 
>> On Mar 26, 2014, at 09:06 AM, Brandon Perry wrote:
>> 
>> "I don't use MacPorts or any other non-standard build environment..."
>> 
>> Your entire build system is non-standard if you maintain in the way you say
>> you do.
>> 
>> This is very likely an architecture issue and will require explicit casts
>> in order to work for you (which would cause performance decreases for every
>> other ClamAV user). Would you expect the ClamAV project to maintain this?
>> You say you have submitted code in the past, you will likely need to make
>> this work yourself by adding the explicit casts to the codebase.
>> 
>> This really isn't an issue with ClamAV or LLVM/Clang. You have a system
>> that is relatively unsupportable because of A) age and B) you have
>> *heavily* modified it at this point to attempt to maintain it. Even if one
>> of us had an old PPC with gcc 4.0 (which compiles ClamAV just fine on FC4
>> which makes me think your patching has not been as successful as you
>> think), we would still not have the same environment you do since you claim
>> to maintain your binaries by hand.
>> 
>> Unless you are willing to add the explicit casts yourself, I think you are
>> probably SOL.
>> 
>> 
>> 
>>> On Wed, Mar 26, 2014 at 3:02 AM, Dale Walsh <dale at daleenterprise.com> wrote:
>>> 
>>> You ask for details so here they are.
>>> 
>>> I don't use MacPorts or any other non-standard build environment, I don't
>>> suffer compiler bugs so I don't need  'CCFLAGS="-O0" to correct a buggy
>>> compiler and I have applied every patch and bug-fix released and experience
>>> no build issues with any other software source.
>>> 
>>> 
>>> Here's what I start with:
>>> 
>>> Using gcc-3.3 (it's old but it compiles for ppc)
>>> cd /private/var/tmp/clamav/clamav-1.obj && CFLAGS="-arch ppc -g -Os -pipe
>>> -pipe -no-cpp-precomp -arch ppc" CCFLAGS="-arch ppc -g -Os -pipe "
>>> CXXFLAGS="-arch ppc -g -Os -pipe " LDFLAGS="-arch ppc            "
>>> TEXI2HTML="/usr/bin/texi2html -subdir ." rm -rf /tmp/clamav/Release &&
>>> mkdir -p /tmp/clamav/Debug && ln -sf /CLAMAV_BUILD/Release
>>> /tmp/clamav/Release && CFLAGS="-DFD_SETSIZE=2048" ./configure
>>> --prefix="/usr" --mandir=/usr/share/man --sysconfdir=/etc --enable-bigstack
>>> --with-user=clamav --with-group=clamav --with-dbdir=/var/clamav
>>> --disable-clamav
>>> 
>>> make
>>> make install # no issues with the build or install but nothing seems to
>>> works and segfaults (expected behavior)
>>> 
>>> Using gcc-3.3
>>> cd /private/var/tmp/clamav/clamav-1.obj && CFLAGS="-arch ppc -arch i386
>>> -g -Os -pipe -pipe -no-cpp-precomp -arch ppc -arch i386" CCFLAGS="-arch ppc
>>> -arch i386 -g -Os -pipe " CXXFLAGS="-arch ppc -arch i386 -g -Os -pipe "
>>> LDFLAGS="-arch ppc -arch i386            "  TEXI2HTML="/usr/bin/texi2html
>>> -subdir ." rm -rf /tmp/clamav/Release && mkdir -p /tmp/clamav/Debug && ln
>>> -sf /CLAMAV_BUILD/Release /tmp/clamav/Release && CFLAGS="-DFD_SETSIZE=2048"
>>> ./configure --prefix="/usr" --mandir=/usr/share/man --sysconfdir=/etc
>>> --enable-bigstack --with-user=clamav --with-group=clamav
>>> --with-dbdir=/var/clamav --disable-clamav
>>> 
>>> make
>>> 
>>> fails with:
>>> ld: Undefined symbols:
>>> _lt_libltdlc_LTX_preloaded_symbols
>>> /usr/bin/libtool: internal link edit command failed
>>> 
>>> 
>>> 
>>> Using gcc-3.5 (it's old but it compiles for ppc)
>>> cd /private/var/tmp/clamav/clamav-1.obj && CFLAGS="-arch ppc -g -Os -pipe
>>> -pipe -no-cpp-precomp -arch ppc" CCFLAGS="-arch ppc -g -Os -pipe "
>>> CXXFLAGS="-arch ppc -g -Os -pipe " LDFLAGS="-arch ppc            "
>>> TEXI2HTML="/usr/bin/texi2html -subdir ." rm -rf /tmp/clamav/Release &&
>>> mkdir -p /tmp/clamav/Debug && ln -sf /CLAMAV_BUILD/Release
>>> /tmp/clamav/Release && CFLAGS="-DFD_SETSIZE=2048" ./configure
>>> --prefix="/usr" --mandir=/usr/share/man --sysconfdir=/etc --enable-bigstack
>>> --with-user=clamav --with-group=clamav --with-dbdir=/var/clamav
>>> --disable-clamav
>>> 
>>> make
>>> make install # no issues with the build or install but nothing seems to
>>> works and segfaults (expected behavior)
>>> 
>>> Using gcc-3.5
>>> cd /private/var/tmp/clamav/clamav-1.obj && CFLAGS="-arch ppc -arch i386
>>> -g -Os -pipe -pipe -no-cpp-precomp -arch ppc -arch i386" CCFLAGS="-arch ppc
>>> -arch i386 -g -Os -pipe " CXXFLAGS="-arch ppc -arch i386 -g -Os -pipe "
>>> LDFLAGS="-arch ppc -arch i386            "  TEXI2HTML="/usr/bin/texi2html
>>> -subdir ." rm -rf /tmp/clamav/Release && mkdir -p /tmp/clamav/Debug && ln
>>> -sf /CLAMAV_BUILD/Release /tmp/clamav/Release && CFLAGS="-DFD_SETSIZE=2048"
>>> ./configure --prefix="/usr" --mandir=/usr/share/man --sysconfdir=/etc
>>> --enable-bigstack --with-user=clamav --with-group=clamav
>>> --with-dbdir=/var/clamav --disable-clamav
>>> 
>>> make
>>> 
>>> fails with:
>>> ld: Undefined symbols:
>>> _lt_libltdlc_LTX_preloaded_symbols
>>> /usr/bin/libtool: internal link edit command failed
>>> 
>>> 
>>> Using gcc-4.0.0
>>> cd /private/var/tmp/clamav/clamav-1.obj && CFLAGS="-arch ppc -g -Os -pipe
>>> -pipe -no-cpp-precomp -arch ppc" CCFLAGS="-arch ppc -g -Os -pipe "
>>> CXXFLAGS="-arch ppc -g -Os -pipe " LDFLAGS="-arch ppc            "
>>> TEXI2HTML="/usr/bin/texi2html -subdir ." rm -rf /tmp/clamav/Release &&
>>> mkdir -p /tmp/clamav/Debug && ln -sf /CLAMAV_BUILD/Release
>>> /tmp/clamav/Release && CFLAGS="-DFD_SETSIZE=2048" ./configure
>>> --prefix="/usr" --mandir=/usr/share/man --sysconfdir=/etc --enable-bigstack
>>> --with-user=clamav --with-group=clamav --with-dbdir=/var/clamav
>>> --disable-clamav
>>> 
>>> make
>>> fails with  ./llvm/lib/VMCore/TypesContext.h:311: error: invalid
>>> conversion from 'const llvm::Type*' to 'long int'
>>> 
>>> Using gcc-4.0.1
>>> cd /private/var/tmp/clamav/clamav-1.obj && CFLAGS="-arch ppc -g -Os -pipe
>>> -pipe -no-cpp-precomp -arch ppc" CCFLAGS="-arch ppc -g -Os -pipe "
>>> CXXFLAGS="-arch ppc -g -Os -pipe " LDFLAGS="-arch ppc            "
>>> TEXI2HTML="/usr/bin/texi2html -subdir ." rm -rf /tmp/clamav/Release &&
>>> mkdir -p /tmp/clamav/Debug && ln -sf /CLAMAV_BUILD/Release
>>> /tmp/clamav/Release && CFLAGS="-DFD_SETSIZE=2048" ./configure
>>> --prefix="/usr" --mandir=/usr/share/man --sysconfdir=/etc --enable-bigstack
>>> --with-user=clamav --with-group=clamav --with-dbdir=/var/clamav
>>> --disable-clamav
>>> 
>>> make
>>> fails with  ./llvm/lib/VMCore/TypesContext.h:311: error: invalid
>>> conversion from 'const llvm::Type*' to 'long int'
>>> 
>>> Using gcc-4.1.0
>>> cd /private/var/tmp/clamav/clamav-1.obj && CFLAGS="-arch ppc -g -Os -pipe
>>> -pipe -no-cpp-precomp -arch ppc" CCFLAGS="-arch ppc -g -Os -pipe "
>>> CXXFLAGS="-arch ppc -g -Os -pipe " LDFLAGS="-arch ppc            "
>>> TEXI2HTML="/usr/bin/texi2html -subdir ." rm -rf /tmp/clamav/Release &&
>>> mkdir -p /tmp/clamav/Debug && ln -sf /CLAMAV_BUILD/Release
>>> /tmp/clamav/Release && CFLAGS="-DFD_SETSIZE=2048" ./configure
>>> --prefix="/usr" --mandir=/usr/share/man --sysconfdir=/etc --enable-bigstack
>>> --with-user=clamav --with-group=clamav --with-dbdir=/var/clamav
>>> --disable-clamav
>>> 
>>> make
>>> fails with  ./llvm/lib/VMCore/TypesContext.h:311: error: invalid
>>> conversion from 'const llvm::Type*' to 'long int'
>>> 
>>> 
>>> 
>>> -- Dale
>>> 
>>> 
>>> 
>>> 
>>> On Mar 25, 2014, at 18:29 PM, Brandon Perry wrote:
>>> 
>>> Thanks, I don't have a PPC here, but I am going to install fedora core 4
>>>> x86 and x86_64 inside of virtual machines and will see if I run into any
>>>> issues.
>>>> 
>>>> Legacy systems are unfortunate. However, I think you would be hard
>>>> pressed to find any open source project today supporting that, so I
>>>> don't think it is that ridiculous to not expend the effort to actively
>>>> support it. I wouldn't be surprised if the code required to make it
>>>> compile on your system *and* modern systems caused performance decreases
>>>> (or even not compile on modern gcc!).
>>>> 
>>>> There might be a small chance that you would need to maintain a separate
>>>> patchset to maintain this compatibility since having it compile on both
>>>> your legacy and modern systems would be detrimental to other ClamAV users.
>>>> 
>>>> _______________________________________________
>>>> http://lurker.clamav.net/list/clamav-devel.html
>>>> Please submit your patches to our Bugzilla: http://bugs.clamav.net
>>>> 
>>>> 
>>>> 
>>> _______________________________________________
>>> http://lurker.clamav.net/list/clamav-devel.html
>>> Please submit your patches to our Bugzilla: http://bugs.clamav.net
>>> 
>> 
>> 
>> 
>> -- 
>> http://volatile-minds.blogspot.com -- blog
>> http://www.volatileminds.net -- website
>> _______________________________________________
>> http://lurker.clamav.net/list/clamav-devel.html
>> Please submit your patches to our Bugzilla: http://bugs.clamav.net
>> 
> 
> _______________________________________________
> http://lurker.clamav.net/list/clamav-devel.html
> Please submit your patches to our Bugzilla: http://bugs.clamav.net



More information about the clamav-devel mailing list