PRUNERS / FLiT

A project to quickly detect discrepancies in floating point computation across hardware, compilers, libraries and software.
Other
36 stars 6 forks source link

Incremental Build test does not correctly test executable build #338

Open JohnJacobsonIII opened 3 years ago

JohnJacobsonIII commented 3 years ago

Bug Report

Description

The incremental build test in tst_incremental_build.py currently relies on make --touch to test the make system. Due to the PHONY indirection added to fix #333 this no longer works; make --touch assumes a recipe updates its target directly and thus touches the target, but the separation of recursive calls means executables are built indirectly in recursive make calls, and not directly by the no-op recipe in their rule.

Suggested Fix

Per @mikebentley15, using the existing fake compilers fake_gcc4.py or fake_clang34.py should correctly identify when Make generates the file, instead of relying on the make --touch logic, but will also still allow for efficient testing.

Alternatively (if for some reason this doesn't work) we could call make and inspect modification times directly, or use some method to determine when files are being updated to maintain this test.