>>>>> On Mon, 27 Aug 2018 18:53:01 -0400, Dan Langille said: > > > On Aug 14, 2018, at 11:16 AM, Martin Simmons <mar...@lispworks.com> wrote: > > > >>>>>> On Tue, 14 Aug 2018 16:34:07 +0200, Radosław Korzeniewski said: > >> > >> Hello Martin, > >> > >> 2018-08-14 12:56 GMT+02:00 Martin Simmons <mar...@lispworks.com>: > >> > >>> Sorry to say that it doesn't compile on FreeBSD (see below). > >>> > >>> The warnings about BSOCK::recv are probably generic and occur in every > >>> file. > >>> > >> > >> A standard Linux compile does not raise any warnings here. > > > > The warning will depend on the C compiler. I'm using the default FreeBSD > > clang-based C compiler and passing -Wall. It looks like gcc (gcc7 at least) > > does not issue this warning unless you explicitly pass -Woverloaded-virtual. > > > > > >>> > >>> There is some hack for ENODATA in bsockcore.c, but not in bsock.c. > >>> > >> > >> Yes, it should be in bsock.c too. > >> > >> Could you check the following patch: > >> > >> diff --git a/bacula/src/lib/bsock.c b/bacula/src/lib/bsock.c > >> index a6e4d98c3..c6bed981d 100644 > >> --- a/bacula/src/lib/bsock.c > >> +++ b/bacula/src/lib/bsock.c > >> @@ -40,6 +40,10 @@ > >> > >> #define BSOCK_DEBUG_LVL 900 > >> > >> +#if !defined(ENODATA) /* not defined on BSD systems */ > >> +#define ENODATA EPIPE > >> +#endif > >> + > >> /* Commands sent to Director */ > >> static char hello[] = "Hello %s calling\n"; > > > > Yes, thanks, that fixes the compilation. > > I didn't know about the above problem when I upgraded the FreeBSD port to > 9.2.1, which compiles fine on FreeBSD 11.2 > > Overnight received a report of a failure on FreeBSD 10.4 > > Tonight, I ran tests on both FreeBSD 11.2 and 10.4 to reproduce the problem. > Indeed, it fails on 10.4 > > I am not sure where to look for ENODATA which is used by Bacula, but I found > it defined on both systems. Details here: > > https://gist.github.com/dlangille/1c91c184618e336b6ec8d231329b2308 > > ### > > root@104amd64-default:~ # grep -r ENODATA /usr/include/ > /usr/include/bsm/audit_errno.h:#define BSM_ERRNO_ENODATA > 61 /* Solaris/Darwin/Linux-specific. */ > /usr/include/c++/v1/cerrno:#ifndef ENODATA > /usr/include/c++/v1/cerrno:#define ENODATA 9919 > /usr/include/c++/v1/system_error: no_message_available, // > ENODATA > /usr/include/c++/v1/system_error:#ifdef ENODATA > /usr/include/c++/v1/system_error: no_message_available = > ENODATA, > /usr/include/c++/v1/tr1/cerrno:#ifndef ENODATA > /usr/include/c++/v1/tr1/cerrno:#define ENODATA 9919 > /usr/include/c++/v1/tr1/system_error: no_message_available, > // ENODATA > /usr/include/c++/v1/tr1/system_error:#ifdef ENODATA > /usr/include/c++/v1/tr1/system_error: no_message_available > = ENODATA, > root@104amd64-default:~ # > ### > > Are any of those what Bacula needs? Could it be that Bacula on 10.4 is not > pulling in the appropriate include files?
The files in /usr/include/c++/v1/ seem to be part of LLVM/clang, as used by the system compiler, so will not be used if you want to compile with the GNU compiler (e.g. lang/gcc7). The patch mentioned by Radosław is the right approach. __Martin ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Bacula-devel mailing list Bacula-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-devel