Hello,
I am quite surprised that the static function did not take precedence.
In any case, I have changed the subroutine name to be bround(), and will
push it to the git rep this evening.
Thanks for pointing this out,
Kern
On 3/1/19 8:27 AM, Gary R. Schmidt wrote:
> 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
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/bacula-devel
_______________________________________________
Bacula-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bacula-devel