IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changes between Version 1 and Version 2 of Ubuntu_1804_Install


Ignore:
Timestamp:
Oct 22, 2018, 9:04:13 AM (8 years ago)
Author:
eugene
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Ubuntu_1804_Install

    v1 v2  
    5050 * http://wiki.debian.org/ToolChain/DSOLinking
    5151
     52=== Other issues encountered for Ubuntu 18.04 ===
     53
     54Each new release of gcc adds additional tests and warnings for C-code concerns.  Since the IPP build uses -Wall and -Werror flags, any C-build warning raises and error and breaks the build.  For the current version of gcc (7.3.0), a warning was added to cases calls to snprint in which the compiler is concerned that the buffer limit may result in truncation.  For example:
     55
     56{{{
     57char line[10];
     58int i;
     59// i assigned to some arbitrary value
     60snprintf (line, 10, "TESTLINE%d", i);
     61}}}
     62
     63In this case, gcc does not know if 'i' will be only 1 digit (in which case the output fits in the 10 chars of 'line') or more (in which case the output will be truncated).  Note that the purpose of snprintf is to truncate the length of the output to fit in the buffer, so there is no danger of a buffer overflow.  Instead, the result is perhaps an unintended text truncation.  However, this situation is sometimes (a) avoided by a limited allowed range of values for `i` (which gcc cannot know) or uninteresting (since the user may not care that a message was truncated).  But, since a warning is an error, this situation breaks the IPP build.
     64
     65To avoid such cases, I have added a version of snprintf which does not trigger the warning : snprintf_nowarn (actually, one is added to Ohana and another to psLib, ps_snprintf_nowarn).  This function tests the output from snprintf and then ignores a problem in a way that lets gcc think we are carefully handling the error. 
     66
     67=== Perl modules in Ubuntu 18.04 ===
     68
     69The Perl modules have evolved so much over time that it is not possible to have a single set of modules which will work on the older (e.g., gentoo) builds and more recent builds.  The current psconfig directory now contains a new tagset for Ubuntu which supplies a complete, internally-compatible, set of Perl modules.  This means it is necessary to distinguish the tagsets for the Gentoo and Ubuntu builds.  At the moment, the Ubuntu tagset is the default, so the builder must supply the tageset for the Gentoo builds:
     70
     71Ubuntu: psbuild -extbuild -clean -rebuild -dev -optimize -no-as-needed
     72Gentoo: psbuild -extbuild -clean -rebuild -dev -optimize ipp-3.1
     73
    5274(see [wiki:Ubuntu_1204_Build_Issues] for other issues affecting the build)