Hi,

pt., 25 paź 2024 o 13:35 Thomas Beierlein <tom...@gentoo.org> napisał(a):

> Hello,
>
> building bacula-15.0.2 here on Gentoo with
> '-Werror=lto-type-mismatch -Werror=strict-aliasing -Werror=odr -flto'
> failes with the following error:
>
> +++
> Linking bacula-fd ...
> /var/tmp/portage/app-backup/bacula-15.0.2/work/bacula-15.0.2/libtool
> --silent --tag=CXX --mode=link /usr/bin/x86_64-pc-linux-gnu-g++  -Wl,-O1
> -Wl,--as-needed -Wl,--hash-style=gnu -Werror=lto-type-mismatch
> -Werror=strict-aliasing -Werror=odr -flto -L../lib -L../findlib -o
> bacula-fd filed.o authenticate.o backup.o crypto.o win_efs.o estimate.o
> fdcollect.o fd_plugins.o accurate.o bacgpfs.o filed_conf.o runres_conf.o
> heartbeat.o hello.o job.o fd_snapshot.o restore.o status.o verify.o
> verify_vol.o fdcallsdir.o suspend.o org_filed_dedup.o bacl.o bacl_linux.o
> bxattr.o bxattr_linux.o \
>    -lacl              -lz -lbacfind -lbaccfg -lbac -lm \
>   -rpath /usr/lib64   -lssl -lcrypto -lpthread  -lcap  -llzo2 -lzstd
> ../jcr.h:203:7: error: type 'struct JCR' violates the C++ One Definition
> Rule [-Werror=odr]
>   203 | class JCR {
>       |       ^
> ../jcr.h:203:7: note: a different type is defined in another translation
> unit
>   203 | class JCR {
>       |       ^
> ../jcr.h:472:11: note: the first difference of corresponding definitions
> is field 'sd_calls_client_bsock'
>   472 |    BSOCK *sd_calls_client_bsock;      /* Socket used by
> SDCallsClient feature */
>       |           ^
> ../jcr.h:203:7: note: a type with different number of fields is defined in
> another translation unit
>   203 | class JCR {
>       |       ^
> lto1: some warnings being treated as errors
> lto-wrapper: fatal error: /usr/bin/x86_64-pc-linux-gnu-g++ returned 1 exit
> status
> compilation terminated.
> /usr/lib/gcc/x86_64-pc-linux-gnu/15/../../../../x86_64-pc-linux-gnu/bin/ld:
> error: lto-wrapper failed
> +++
>
> Looks like the optional extensions of JCR are clashing with the JCR
> definition
> without extensions.
>

JCR is handcrafted differently for every component (#ifdef DIRECTOR_DAEMON,
#ifdef FILE_DAEMON, #ifdef STORAGE_DAEMON) having a common part at the
beginning of the struct.
Looks like file daemon compilation is not separated enough from other
component builds.


>
> See https://bugs.gentoo.org/940695 for original bug and
> https://940695.bugs.gentoo.org/attachment.cgi?id=904745 for full build
> log.
>
>
Any chance you can report this bug at: https://gitlab.bacula.org/ ?

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