Hello Phil,

sob., 27 lut 2021 o 23:50 Phil Stracchino <ph...@caerllewys.net> napisał(a):

> On 2/27/21 4:18 PM, Phil Stracchino wrote:
> >
> > make[1]: Entering directory `/netstore/src/bacula-11.0.1/src/lib'
> > Compiling bsockcore.c
> > "bsockcore.c", line 88: Error: Badly formed expression.
> > "bsockcore.c", line 98: Error: Badly formed expression.
> > "bsockcore.c", line 101: Error: Badly formed expression.
> > 3 Error(s) detected.
> > make[1]: *** [bsockcore.lo] Error 1
>
>
> Got a fix.  The problem is that typeof() is not standard C, and Solaris
> compilers do not implement it.  __typeof() is available and can be used
> instead.
>
>
> --- src/lib/serial.h.orig       2021-02-27 17:29:59.288402523 -0500
> +++ src/lib/serial.h    2021-02-27 17:29:19.585632589 -0500
> @@ -77,12 +77,12 @@
>                           expected length s.  */
>  #define ser_check(x, s) ASSERT(ser_length(x) == ((uint32_t)(s)))
>  #define unser_check(x, s) ASSERT(unser_length(x) == ((uint32_t)(s)))
>
>  /*  ser_assign(ptr, len) -- assign current position to ptr and go len
> bytes forward  */
> -#define ser_assign(ptr, len) { ptr = (typeof(ptr))ser_ptr; ser_ptr +=
> (len); }
> -#define unser_assign(ptr, len) { ptr = (typeof(ptr))ser_ptr; ser_ptr +=
> (len); }
> +#define ser_assign(ptr, len) { ptr = (__typeof(ptr))ser_ptr; ser_ptr +=
> (len); }
> +#define unser_assign(ptr, len) { ptr = (__typeof(ptr))ser_ptr; ser_ptr
> += (len); }
>
>  /*                          Serialisation                   */
>
>  /*  8 bit signed integer  */
>  #define ser_int8(x)     *ser_ptr++ = (x)
>
>
Bacula configure script is checking for typeof() and sets HAVE_TYPEOF if
found. I think the proper fix should use:

#ifdef HAVE_TYPEOF
...
#else
...
#endif

This scheme is used in Bacula in a few places already. Could you add this
issue to bugs.bacula.org, please.

Also, the last line of src/filed/suspend.h does not have a newline,
>

Is it a real problem for SDS?


> and building 11.0.x in the Solaris Developer Studio requires that
> CFLAGS/CPPFLAGS include -features=zla to allow declaring zero-length
> arrays.
>

Could you point to the code where you have this, I think it should be fixed
as the new c11 standard forbids zero length arrays explicitly.


> With these, it builds on Solaris 11; with many warnings, but it does
> build, and thus far the warnings have been harmless.
>

The build with a newest clang compiler throws a lot of warnings too which
we systematically resolve. :)

best regards
-- 
Radosław Korzeniewski
rados...@korzeniewski.net
_______________________________________________
Bacula-devel mailing list
Bacula-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-devel

Reply via email to