[Clamav-devel] enabling DMG and XAR support
Brandon Perry
bperry.volatile at gmail.com
Thu Mar 27 10:39:11 EDT 2014
I have found a friend with an old G5 PPC that he is willing to lend for a couple days. When I get it probably this weekend I will be able to attempt to repro the issues you are having. Let me know if the --enable-llvm=no flag does/doesnt work for you.
However, if I can repro and I can fix the code up to compile correctly, I do no expect that patch to be merged into mainline codebase. I dont expect sourcefire to officially support your system in its current state since the current codebase works fine for 99.9% of people.
Sent from a computer
> On Mar 26, 2014, at 2:22 PM, Brandon Perry <bperry.volatile at gmail.com> wrote:
>
> This also might be worth trying.
>
> Dale, could you try appending this to your configure line and see if it resolves the issue with your 4.x compiler?
>
> Sent from a computer
>
>> On Mar 26, 2014, at 2:19 PM, Steven Morgan <smorgan at sourcefire.com> wrote:
>>
>> FYI, This just in (from clamdoc.pdf):
>>
>> <quote>
>> The following packages are optional, but required for bytecode JIT support:
>>
>> GCC C and C++ compilers (minimum 4.1.3, recommended 4.3.4 or newer)
>> the package for these compilers are usually called: gcc, g++, or gcc-c++.
>> </quote>
>>
>> Mileage may be better in those cases by using ./configure --enable-llvm=no
>>
>>
>> On Wed, Mar 26, 2014 at 3:06 PM, Brandon Perry <bperry.volatile at gmail.com>wrote:
>>
>>> FWIW i am currently asking friends if they have a PPC that i can try this
>>> one.
>>>
>>> Sent from a computer
>>>
>>>>> On Mar 26, 2014, at 1:37 PM, Brandon Perry <bperry.volatile at gmail.com>
>>>> wrote:
>>>>
>>>> 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
>>> _______________________________________________
>>> 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