Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[ANALYSED] kernel object compilation failure unnoticed ?

On Fri, Mar 05, 2010 at 12:31:11AM +0100, Nicolas Joly wrote:
> Hi,
> I updated my sources while the acpi_button.c file was broken (missing
> semi-column in r1.32, which was fixed soon after).
> I then wanted to compile my own kernel, which succeeded. The
> acpi_button.c compilation failed, but the old object remained and
> kernel link was ok.
> Do anyone else do see such surprising behaviour, where kernel object
> file compilation failure remains unnoticed ?

I found the problem in latest revision which adds
CTF support ... especially with NORMAL_C variable definition.

# Add CTF sections for DTrace
.if defined(CTFCONVERT)
                        ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}; \
                        ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}

# compile rules: rules are named ${TYPE}_${SUFFIX} where TYPE is NORMAL or
# NOPROF and SUFFIX is the file suffix, capitalized (e.g. C for a .c file).
NORMAL_C?=      @${_MKSHMSG} "compile  ${.CURDIR:T}/${.TARGET}"; \
                ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c $<; \
                ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c $<; \

With COMPILE_CTFCONVERT addition, which in my case is a simple echo,
the compilation command exit status is discarded and echo result will
be used instead.

While the `;' could be replaced with `&&' construct; i wonder if there
is a better way to solve this, avoiding awful `a && b && c && d ...'


Nicolas Joly

Biological Software and Databanks.
Institut Pasteur, Paris.

Home | Main Index | Thread Index | Old Index