ICAMAX/IZAMAX tests

Bug #202870 reported by Konstantin L. Metlov
This bug report is a duplicate of:  Bug #202869: ICAMAX/IZAMAX tests. Edit Remove
2
Affects Status Importance Assigned to Milestone
blas (Ubuntu)
New
Undecided
Unassigned

Bug Description

Binary package hint: blas

On architectures with internel floating point precision higher than that of the varibles (such as 68000, x86) files src/icamax.f and src/izamax.f must necessarily be compiled with -ffloat-store option. Otherwise the corresponding functions do not perform to their specification and the corresponding blas level 1 tests fail. This, in particular, prevents atlas-3.6.0-21.1ubuntu2 from building on i386.

It is, of course, an overkill to enable -ffloat-store for the whole BLAS, but enabling it only for two said files works well and the impact on performance is negligible.

This can be acomplished by the following changes to debian/rules
BOBJ:=$(BSRC:.f=.o)
+BOBJ1:=$(filter-out src/izamax.o,$(filter-out src/icamax.o,$(BOBJ)))
+BOBJ2:=src/icamax.o src/izamax.o

....

debian/shared_dir debian/static_dir debian/test_dir:
        mkdir -p $(subst _dir,,$(@))
        touch $@

!$(subst src/,debian/static/,$(BOBJ1)): \
        debian/static/%.o : src/%.f debian/static_dir debian/patch_applied

        $(F77) $(F77FLAGS) -c $< -o $@

+$(subst src/,debian/static/,$(BOBJ2)): \
+ debian/static/%.o : src/%.f debian/static_dir +debian/patch_applied
+
+ $(F77) $(F77FLAGS) -ffloat-store -c $< -o $@

The resulting library passes all of the BLAS test suite. This also fixes atlas-3.6.0-21.1ubuntu2 build problem.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.