Compiler baselines

Stephan Bergmann sbergman at redhat.com
Fri Dec 14 08:04:11 UTC 2018


On 08/12/2018 19:35, Markus Mohrhard wrote:
> Gandalf is not a CentOS based buildbot but the self-built gcc is now 
> available under "/opt/rh/devtoolset-7/root/usr/bin/gcc" to reduce the 
> differences between the different buildbots and make it easier to move 
> jobs between different jenkins VMs. The only difference is that the gcc 
> is version 8.2 instead of 7.3.
> 
> Additionally, I have now also used the same CC and CXX setting for the 
> random config build bot 
> (https://cgit.freedesktop.org/libreoffice/core/commit/?id=ceb32911f07b63fda074facba377eeb4d5946cdf). 
> Based on that I think gandalf can be used again for the tinderbox job 
> and therefore hopefully take a bit of load of the gerrit build machines.

With the lo_tb_random_config_linux (aka "Random Config Linux builder") 
Jenkins job (which exclusively runs on gandalf) now being built with GCC 
8, the well-known GCC issue kicks in that the --enable-optimized 
--enable-werror combination leads to spurious false warnings (i.e., 
build failure).  For example, 
<https://ci.libreoffice.org/job/lo_tb_random_config_linux/1664/consoleFull#-1762564547e209b9a1-3e4c-444e-abdb-15b2afb02055>:

> /lo/home/tdf/lode/jenkins/workspace/lo_tb_random_config_linux/sal/osl/unx/pipe.cxx: In function ‘oslPipeImpl* osl_psz_createPipe(const sal_Char*, oslPipeOptions, oslSecurity)’:
> /lo/home/tdf/lode/jenkins/workspace/lo_tb_random_config_linux/sal/osl/unx/pipe.cxx:248:12: error: ‘char* strncpy(char*, const char*, size_t)’ output may be truncated copying 107 bytes from a string of length 4096 [-Werror=stringop-truncation]
>      strncpy(addr.sun_path, name, sizeof(addr.sun_path) - 1);
>      ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /lo/home/tdf/lode/jenkins/workspace/lo_tb_random_config_linux/sal/osl/unx/pipe.cxx:288:16: error: ‘char* strncpy(char*, const char*, size_t)’ output may be truncated copying 4096 bytes from a string of length 4096 [-Werror=stringop-truncation]
>          strncpy(pPipe->m_Name, name, sizeof(pPipe->m_Name) - 1);
>          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /lo/home/tdf/lode/jenkins/workspace/lo_tb_random_config_linux/sal/osl/unx/pipe.cxx: In function ‘void osl_closePipe(oslPipe)’:
> /lo/home/tdf/lode/jenkins/workspace/lo_tb_random_config_linux/sal/osl/unx/pipe.cxx:376:16: error: ‘char* strncpy(char*, const char*, size_t)’ output may be truncated copying 107 bytes from a string of length 4096 [-Werror=stringop-truncation]
>          strncpy(addr.sun_path, pPipe->m_Name, sizeof(addr.sun_path) - 1);
>          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> cc1plus: all warnings being treated as errors

Not sure whether it is worth to address this in any way (e.g., by 
preventing this fuzzing combination in configure.ac, or by trying to 
make the affected places in the code ignore those errors, but which 
would lead to rather awkward code wards; the other jobs that build 
--enable-optimized with GCC 7/8 explicitly --disable-werror).  But then 
again, output from that job is probably not widely consumed, so leaving 
things as-is is, and having the lo_tb_random_config_linux job 
occasionally fail in this known-broken way, is likely tolerable.


More information about the LibreOffice mailing list