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