Package: avida
Version: 2.0b7-3
Severity: important

Hi Miry,

The avida package is failing to build on alpha (all versions) because it
expects IEEE-compatible floating point math while also invoking the
compiler with -ffast-math:

[...]
if alpha-linux-gnu-gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" 
-DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" 
-DPACKAGE=\"avida\" -DVERSION=\"2.0b7\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 
-DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 
-DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 
-DHAVE_NCURSES_H=1  -I. -I.   -O3 -ffast-math   -MT trionan.o -MD -MP -MF 
".deps/trionan.Tpo" \
  -c -o trionan.o `test -f 'trionan.c' || echo './'`trionan.c; \
then mv -f ".deps/trionan.Tpo" ".deps/trionan.Po"; \
else rm -f ".deps/trionan.Tpo"; exit 1; \
fi
trionan.c:83:4: error: #error "Must be compiled with option -mieee"
make[4]: *** [trionan.o] Error 1
make[4]: Leaving directory 
/build/buildd/avida-2.0b7/source/third-party/trio-1.9'
make[3]: *** [all-recursive] Error 1
[...]

A full build log can be found at
<http://buildd.debian.org/fetch.php?&pkg=avida&ver=2.0b7-3.1&arch=alpha&stamp=1128406238&file=log&as=raw>.

The problem is that gcc is being invoked with -ffmast-math, which is
completely the opposite of -mieee.  Upstream needs to make up its mind
whether it wants fast, or correct.  (In Debian, gcc defaults to "correct"
fwiw; but using -ffast-math overrides this.)

It appears that this error can be fixed trivially by adding --enable-debug
to the arguments to configure; which, btw, also enables -g -Wall, which is
what Debian policy recommends anyway.

Strangely, even after making this change, I get another failure further on
in the source:

if alpha-linux-gnu-g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" 
-DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" 
-DPACKAGE=\"avida\" -DVERSION=\"2.0b7\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 
-DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 
-DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 
-DHAVE_NCURSES_H=1  -I. -I. -I./../event -I../event -I./../cpu  -g -Wall 
-pedantic -DDEBUG   -MT genotype.o -MD -MP -MF ".deps/genotype.Tpo" \
  -c -o genotype.o `test -f 'genotype.cc' || echo './'`genotype.cc; \
then mv -f ".deps/genotype.Tpo" ".deps/genotype.Po"; \
else rm -f ".deps/genotype.Tpo"; exit 1; \
fi
inst_lib.hh:6: warning: ‘class cInstLibBase’ has virtual functions but 
non-virtual destructor
genotype.cc:157: error: extra ‘;’

I have no idea why this error would appear on alpha but not on other
architectures.

Also, your debian/rules clean target isn't very clean, because upstream
appears to not have a "distclean" target in the toplevel makefile...

Cheers,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
[EMAIL PROTECTED]                                   http://www.debian.org/

Attachment: signature.asc
Description: Digital signature

Reply via email to