debian/rules honors CC and CXX

Goal description

This goal aims to make sure that any package in the archive could be rebuild with the command CC=foo CXX=bar dpkg-buildpackage

This might be an important step for an other release goal Clang as secondary compiler.

Current status

In some packages, there is an assumption that the compiler is always gcc/g++. This blocks any initiative to rebuild the archive with an other compiler or with some analyzer tools.

A study of the percentage of failure is on-going.

Caveats

This release goal conflicts with ReleaseGoals/CrossBuildableBase. For cross building the host compiler must be distinguished from the build compiler. Typically this is done by using $(DEB_HOST_GNU_TYPE)-gcc. By changing such an invocation to use $(CC) instead, the cross compilation goal is broken. As a long term solution it might be possible to use $(CC) and $(BUILDCC) or $(CC_FOR_BUILD), but these variables are currently not set by default.

How to help

Advocates

Volunteers