• Michael Cree's avatar
    Bug#822848: mpd FTBFS on Alpha; misaligned arrays in the test suite · 72637d00
    Michael Cree authored
    Source: mpd
    Version: 0.19.14-2
    Severity: important
    Justification: fails to build form source (but built in the past)
    Tags: patch
    User: debian-alpha@lists.debian.org
    Usertags: alpha
    
    mpd FTBFS on Alpha with a failure in the test suite [1]:
    
    FAIL: test/test_byte_reverse
    ============================
    
    .F...
    
    !!!FAILURES!!!
    Test Results:
    Run:  4   Failures: 1   Errors: 0
    
    1) test: ByteReverseTest::TestByteReverse2 (F) line: 58 test/test_byte_reverse.cxx
    assertion failed
    - Expression: strcmp(result, (const char *)dest) == 0
    
    This occurs because the test suite (in test/test_byte_reversal.cxx)
    allocates static char arrays and passes the char arrays to functions
    whose respective arguments were declared to be uint16_t *, etc., in
    the main code.
    
    This is in the realm of undefined behaviour on architectures with
    strict memory alignment requirements.  Although the test only fails
    on Alpha (because Alpha has a particular CPU load instruction that
    gcc likes to use to add bugs ..., ahem,  optimise the code on the
    assumption of alignment) it is potentially a latent bug for other
    architectures with strict alignment requirements.
    
    Since the code is compiled with the c++11 standard I attach a patch
    that modifies the test suite to align the non-compliant strings with
    the alignas() attribute.  The test suite now passes on Alpha with
    that patch.
    
    Cheers
    Michael
    
    [1] https://buildd.debian.org/status/fetch.php?pkg=mpd&arch=alpha&ver=0.19.14-2&stamp=1461542099
    72637d00
To find the state of this project's repository at the time of any of these versions, check out the tags.
NEWS 54.9 KB