On 2019-02-06 20:33, Kern Sibbald wrote:
Hello,

We are pleased to announce the release of Bacula version 9.4.2.  It is
already released to Source Forge and bacula.org.  Binaries for selected
should be available in the near future.

This is a bug fix release to the prior version (9.4.1) that includes a
number of bug fixes and patches. Thanks to the community for your
participation.  9 bug reports were closed. In addition this version
should fix virtually all the build problems found on FreeBSD.

We recommend that all users upgrade to this release.

Thanks for using Bacula,

Kern


After not trying 9.4.1, due to being about to go on hols, and thereby ducking a bullet, and having caught up, I thought I would try 9.4.2...

Building on Solaris 11.3 fails using g++ 7.3.0 fails.

----------------------------------------------------------
$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/opt/local/bin/../libexec/gcc/x86_64-pc-solaris2.11/7.3.0/lto-wrapper
Target: x86_64-pc-solaris2.11
Configured with: ../gcc-7.3.0/configure
Thread model: posix
gcc version 7.3.0 (GCC)
$
$ ./configure \
        CFLAGS="-g -O -m64" \
        LDFLAGS="-m64" \
        --prefix=/opt/bacula \
        --with-postgresql=/opt/postgres \
        --enable-smartalloc \
        --enable-lockmgr \
        --enable-batch-insert \
        --with-x \
        --x-includes=/usr/include/X11 \
        --with-smtp-host=mail

$ gmake NO_ECHO=
==>Entering directory /home/garys/src/bacula/bacula-9.4.2/src
gmake[1]: Entering directory `/home/garys/src/bacula/bacula-9.4.2/src'
gmake[1]: Nothing to be done for `all'.
gmake[1]: Leaving directory `/home/garys/src/bacula/bacula-9.4.2/src'
==>Entering directory /home/garys/src/bacula/bacula-9.4.2/scripts
gmake[1]: Entering directory `/home/garys/src/bacula/bacula-9.4.2/scripts'
gmake[1]: Nothing to be done for `all'.
gmake[1]: Leaving directory `/home/garys/src/bacula/bacula-9.4.2/scripts'
==>Entering directory /home/garys/src/bacula/bacula-9.4.2/src/lib
gmake[1]: Entering directory `/home/garys/src/bacula/bacula-9.4.2/src/lib'
Compiling attr.c
/opt/local/bin/g++ -c -x c++ -fno-strict-aliasing -fno-exceptions -fno-rtti -I. -I.. -g -O -m64 -x c++ -fno-strict-aliasing -fno-exceptions -fno-rtti attr.c
...
Compiling bsnprintf.c
/opt/local/bin/g++ -c -x c++ -fno-strict-aliasing -fno-exceptions -fno-rtti -I. -I.. -g -O -m64 -x c++ -fno-strict-aliasing -fno-exceptions -fno-rtti bsnprintf.c
bsnprintf.c: In function 'int64_t round(double)':
bsnprintf.c:622:35: error: 'int64_t round(double)' conflicts with a previous declaration
 static int64_t round(LDOUBLE value)
                                   ^
In file included from /opt/local/lib/gcc/x86_64-pc-solaris2.11/7.3.0/include-fixed/math.h:25:0,
                 from /opt/local/include/c++/7.3.0/bits/std_abs.h:40,
                 from /opt/local/include/c++/7.3.0/cstdlib:77,
                 from /opt/local/include/c++/7.3.0/stdlib.h:36,
                 from ../bacula.h:70,
                 from bsnprintf.c:36:
/usr/include/iso/math_c99.h:490:15: note: previous declaration 'double std::round(double)'
 extern double round __P((double));
               ^~~~~
bsnprintf.c: In function 'int32_t fmtfp(char*, int32_t, int32_t, double, int, int, int)': bsnprintf.c:688:55: error: call of overloaded 'round(double)' is ambiguous
    fracpart = round((pow10(max)) * (ufvalue - intpart));
                                                       ^
bsnprintf.c:622:16: note: candidate: int64_t round(double)
 static int64_t round(LDOUBLE value)
                ^~~~~
In file included from /opt/local/lib/gcc/x86_64-pc-solaris2.11/7.3.0/include-fixed/math.h:25:0,
                 from /opt/local/include/c++/7.3.0/bits/std_abs.h:40,
                 from /opt/local/include/c++/7.3.0/cstdlib:77,
                 from /opt/local/include/c++/7.3.0/stdlib.h:36,
                 from ../bacula.h:70,
                 from bsnprintf.c:36:
/usr/include/iso/math_c99.h:490:15: note: candidate: double std::round(double)
 extern double round __P((double));
               ^~~~~
In file included from /opt/local/lib/gcc/x86_64-pc-solaris2.11/7.3.0/include-fixed/math.h:25:0,
                 from /opt/local/include/c++/7.3.0/bits/std_abs.h:40,
                 from /opt/local/include/c++/7.3.0/cstdlib:77,
                 from /opt/local/include/c++/7.3.0/stdlib.h:36,
                 from ../bacula.h:70,
                 from bsnprintf.c:36:
/usr/include/iso/math_c99.h:777:15: note: candidate: float std::round(float)
  inline float round(float __X) { return __roundf(__X); }
               ^~~~~
/usr/include/iso/math_c99.h:822:21: note: candidate: long double std::round(long double)
  inline long double round(long double __X) { return __roundl(__X); }
                     ^~~~~
gmake[1]: *** [bsnprintf.o] Error 1
gmake[1]: Leaving directory `/home/garys/src/bacula/bacula-9.4.2/src/lib'


  ====== Error in /home/garys/src/bacula/bacula-9.4.2/src/lib ======


gmake: *** [all] Error 1
$
----------------------------------------------------------
Note that the same error occurs when building a 32-bit version (i.e. without the "-m64" option).

I've tried varying the g++ standard flags, using -std=gnu++11, gnu++14, and gnu++1z, just for fun, and unsurprisingly got no change.

Changing "round" to "bacula_round" fixes this problem, as it is a static function; on to the next (if there is one).

        Cheers,
                Gary    B-)


_______________________________________________
Bacula-devel mailing list
Bacula-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-devel

Reply via email to