Compile bareos on IBM AIX.

492 views
Skip to first unread message

Alberto Ernestini

unread,
Aug 27, 2013, 11:38:24 AM8/27/13
to bareos...@googlegroups.com
Hello to everyone,
I want to try to compile the bareos-fd client on IBM AIX, this because it's possible to compile a almost updated version of the bacula-fd client .
There is any chance?
I see no more references of IBM AIX on the sources.
Thanks in advance.
Ciao.
Alberto.

Marco van Wieringen

unread,
Aug 27, 2013, 11:46:37 AM8/27/13
to bareos...@googlegroups.com
Alberto Ernestini <a.ernestini <at> gmail.com> writes:

>
> Hello to everyone,
> I want to try to compile the bareos-fd client on IBM AIX, this because it's
> possible to compile a almost updated version of the bacula-fd client .
> There is any chance?
I don't see why it would not be possible to compile on AIX.

> I see no more references of IBM AIX on the sources.
I don't see where you got the idea that we removed support for AIX.
Its just that we don't have access to an AIX environment at the moment
and as such only have been compiling on Linux/Windows and Solaris.

In essence things should just work as well as on Bacula some of the
new stuff might not work on AIX but that is mostly for things like
LTO encryption etc as that is only implemented for Linux, Solaris and
FreeBSD. But for the filed I see no things that shouldn't work I added
some extra AIX stuff in the xattr/acl stuff on Bareos so you might
get a compile error there as I couldn't check it on a live platform.

If you have any particular problems on AIX just send me the output
of your build and I can probably fix the more obvious problems (if
they even occur.)

--
Marco van Wieringen marco.van...@bareos.com
Bareos GmbH & Co. KG Phone: +49-221-63069389
http://www.bareos.com

Sitz der Gesellschaft: Köln | Amtsgericht Köln: HRA 29646
Komplementär: Bareos Verwaltungs-GmbH
Geschäftsführer: Stephan Dühr, M. Außendorf, J. Steffens,
P. Storz, M. v. Wieringen

Visit us at the Open Source Backup Conference, http://osbconf.org,
25th September 2013 in Cologne, Germany

Alberto Ernestini

unread,
Sep 27, 2013, 9:54:08 AM9/27/13
to bareos...@googlegroups.com
Hello again,
i will be able to try again to compile bareos.
I've restarted from scratch following those instructions :http://wiki.bacula.org/doku.php?id=howto_compile_bacula_client_on_aix ( and some old writing i had made )  that made me compile succesfully bacula client in the past on the same system.

This is the "new" situation :
configure status :
Configuration on Fri Sep 27 14:11:54 NFT 2013:

   Host:                    powerpc-ibm-aix5.3.0.0 -- aix 3
   Bareos version:          Bareos 13.3.0 (01 August 2013)
   Source code location:    .
   Install binaries:        /bareos/sbin
   Install libraries:       /usr/lib
   Install config files:    /bareos/conf
   Scripts directory:       /bareos/script
   Archive directory:       /tmp
   Working directory:       /bareos/work
   PID directory:           /bareos/work
   Subsys directory:        /bareos/work
   Man directory:           ${datarootdir}/man
   Data directory:          /usr/share
   Plugin directory:        /usr/lib
   C Compiler:              gcc 4.1.1
   C++ Compiler:            /usr/local/bin/g++ 4.1.1
   Compiler flags:           -g -O2 -Wall -fno-strict-aliasing -fno-exceptions
   Linker flags:
   Libraries:               -lpthread  -lintl
   Statically Linked Tools: no
   Statically Linked FD:    no
   Statically Linked SD:    no
   Statically Linked DIR:   no
   Statically Linked CONS:  no
   Database backends:       None
   Database port:
   Database name:           bareos
   Database user:           bareos
   Database version:        2001

   Job Output Email:        root@localhost
   Traceback Email:         root@localhost
   SMTP Host Address:       localhost

   Director Port:           9101
   File daemon Port:        9102
   Storage daemon Port:     9103

   Director User:
   Director Group:
   Storage Daemon User:
   Storage DaemonGroup:
   File Daemon User:
   File Daemon Group:

   Large file support:      no
   Bareos conio support:    no
   readline support:        no
   TCP Wrappers support:    no
   TLS support:             no
   Encryption support:      no
   OpenSSL support:         no
   GNUTLS support:          no
   ZLIB support:            yes
   LZO support:             no
   FASTLZ support:          no
   NDMP support:            no
   enable-smartalloc:       yes
   enable-lockmgr:          no
   bat support:             no
   tray-monitor support:    no
   client-only:             yes
   build-dird:              yes
   build-stored:            yes
   Plugin support:          no
   AFS support:             no
   ACL support:             yes
   XATTR support:           yes
   SCSI Crypto support:     no
   Python support:          no
   systemd support:         no
   Batch insert enabled:    None

Compile goes, then i get this error :

==>Entering directory /home11/xx/bareos-master/src/findlib
Compiling acl.c
acl.c: In function 'bacl_exit_code aix_parse_acl_streams(JCR*, acl_data_t*, int, char*, u_int32_t)':
acl.c:401: error: cannot convert 'POOLMEM*' to 'acl_data_t*' for argument '2' to 'bool aix_query_acl_support(JCR*, acl_data_t*, u_int64_t, acl_type_t*)'
acl.c:409: error: invalid conversion from 'long long unsigned int' to 'acl_data_t*'
acl.c:409: error: invalid conversion from 'acl_type_t*' to 'u_int64_t'
acl.c:357: error: too few arguments to function 'bool aix_query_acl_support(JCR*, acl_data_t*, u_int64_t, acl_type_t*)'
acl.c:409: error: at this point in file
make: 1254-004 The error code from the last command is 1.


Stop.


  ====== Error in /home11/xx/bareos-master/src/findlib ======


make: 1254-004 The error code from the last command is 1.


Stop.



I've got then the old config.out from the bacula 5.0.2 client and this is the config :
Configuration on Thu May 10 16:34:54 NFT 2012:

   Host:                    powerpc-ibm-aix5.3.0.0 -- aix 3
   Bacula version:          Bacula 5.0.2 (28 April 2010)
   Source code location:    .
   Install binaries:        /bacula/sbin
   Install libraries:       /usr/lib
   Install config files:    /bacula/conf
   Scripts directory:       /bacula/script
   Archive directory:       /tmp
   Working directory:       /bacula/work
   PID directory:           /bacula/work
   Subsys directory:        /bacula/work
   Man directory:           ${datarootdir}/man
   Data directory:          /usr/share
   Plugin directory:        /usr/lib
   C Compiler:              xlc
   C++ Compiler:            /usr/vacpp/bin/xlC
   Compiler flags:           -g
   Linker flags:
   Libraries:               -lpthread  -lintl
   Statically Linked Tools: no
   Statically Linked FD:    no
   Statically Linked SD:    no
   Statically Linked DIR:   no
   Statically Linked CONS:  no
   Database type:           None
   Database port:
   Database lib:
   Database name:           bacula
   Database user:           bacula

   Job Output Email:        root@localhost
   Traceback Email:         root@localhost
   SMTP Host Address:       localhost

   Director Port:           9101
   File daemon Port:        9102
   Storage daemon Port:     9103

   Director User:
   Director Group:
   Storage Daemon User:
   Storage DaemonGroup:
   File Daemon User:bat support:             no
   enable-gnome:            no
   enable-bwx-console:      no
   enable-tray-monitor:     no
   client-only:             yes
   build-dird:              yes
   build-stored:            yes
   Plugin support:          no
   ACL support:             no
   XATTR support:           no
   Python support:          no
   Batch insert enabled:    no

   File Daemon Group:

   SQL binaries Directory

   Large file support:      no
   Bacula conio support:    no
   readline support:        no
   TCP Wrappers support:    no
   TLS support:             no
   Encryption support:      no
   ZLIB support:            yes
   enable-smartalloc:       yes
   enable-lockmgr:          no
   bat support:             no
   enable-gnome:            no

Going much deeper i've discovered i've used xlC ( the IBM C compiler ) than the gcc and looks that if i try to use the xlC compiler for bareos the make does NOT starts... :


   net-js20#make
==>Entering directory /home11/xx/bareos-master/src
Target "all" is up to date.
==>Entering directory /home11/xx/bareos-master/scripts
Target "all" is up to date.
==>Entering directory /home11/xx/bareos-master/src/lib
Compiling address_conf.c
"../include/baconfig.h", line 528.1: 1506-166 (S) Definition of function class requires parentheses.
"../include/baconfig.h", line 528.7: 1506-276 (S) Syntax error: possible missing '{'?
"../include/baconfig.h", line 669.8: 1506-166 (S) Definition of function bool requires parentheses.
"../include/baconfig.h", line 669.8: 1506-691 (W) The inline keyword can only be applied to functions.
"../include/baconfig.h", line 669.13: 1506-276 (S) Syntax error: possible missing '{'?
"../include/baconfig.h", line 669.46: 1506-045 (S) Undeclared identifier ch.
"../include/baconfig.h", line 671.20: 1506-343 (S) Redeclaration of first_path_separator differs from previous declaration on line 670 of "../include/baconfig.h".
"../include/baconfig.h", line 671.20: 1506-050 (I) Return type "const char*" in redeclaration is not compatible with the previous return type "char*".
"../include/baconfig.h", line 725.15: 1506-166 (S) Definition of function bool requires parentheses.
"../include/baconfig.h", line 725.15: 1506-691 (W) The inline keyword can only be applied to functions.
"../include/baconfig.h", line 725.20: 1506-276 (S) Syntax error: possible missing '{'?
"../lib/smartall.h", line 49.26: 1506-275 (S) Unexpected text bufdump encountered.
"../lib/smartall.h", line 49.35: 1506-335 (S) Parameter identifier list contains multiple occurrences of bool.
"../lib/smartall.h", line 49.40: 1506-277 (S) Syntax error: possible missing ')' or ','?
"../lib/smartall.h", line 49.13: 1506-282 (S) The type of the parameters must be specified in a prototype.
"../lib/smartall.h", line 103.1: 1506-166 (S) Definition of function class requires parentheses.
"../lib/smartall.h", line 103.7: 1506-275 (S) Unexpected text SMARTALLOC encountered.
"../lib/smartall.h", line 107.1: 1506-275 (S) Unexpected text 'void' encountered.
"../lib/smartall.h", line 107.7: 1506-045 (S) Undeclared identifier operator.
"../lib/smartall.h", line 107.16: 1506-277 (S) Syntax error: possible missing ';' or ','?
"../lib/smartall.h", line 107.42: 1506-045 (S) Undeclared identifier fname.
"../lib/smartall.h", line 107.53: 1506-045 (S) Undeclared identifier line.
"../lib/smartall.h", line 109.19: 1506-045 (S) Undeclared identifier s.
"../lib/smartall.h", line 114.16: 1506-277 (S) Syntax error: possible missing ';' or ','?
"../lib/smartall.h", line 114.55: 1506-160 (S) Object line cannot be declared as type void.
"../lib/smartall.h", line 122.7: 1506-160 (S) Object operator cannot be declared as type void.
"../lib/smartall.h", line 122.16: 1506-277 (S) Syntax error: possible missing ';' or ','?
"../lib/smartall.h", line 124.4: 1506-045 (S) Undeclared identifier ptr.
"../lib/smartall.h", line 126.7: 1506-160 (S) Object operator cannot be declared as type void.
"../lib/smartall.h", line 126.16: 1506-277 (S) Syntax error: possible missing ';' or ','?
"../lib/smartall.h", line 131.7: 1506-160 (S) Object operator cannot be declared as type void.
"../lib/smartall.h", line 131.16: 1506-277 (S) Syntax error: possible missing ';' or ','?
"../lib/mem_pool.h", line 97.30: 1506-041 (E) The invocation of macro strcpy contains fewer arguments than required by the macro definition.
"../lib/mem_pool.h", line 98.30: 1506-041 (E) The invocation of macro strcat contains fewer arguments than required by the macro definition.
make: 1254-004 The error code from the last command is 1.


Stop.


  ====== Error in /home11/xx/bareos-master/src/lib ======


make: 1254-004 The error code from the last command is 1.


Stop.

I am sure that there is a chance to compile it with gcc, but currently i am stuck on it.
Any ideas about?
Thanks.
Ciao.
Alberto.





2013/8/27 Alberto Ernestini <a.ern...@gmail.com>

Marco van Wieringen

unread,
Sep 28, 2013, 2:50:18 AM9/28/13
to bareos...@googlegroups.com
Alberto Ernestini <a.ernestini <at> gmail.com> writes:
>
> Compile goes, then i get this error :
>
>
> ==>Entering directory /home11/xx/bareos-master/src/findlib
> Compiling acl.c
> acl.c: In function 'bacl_exit_code aix_parse_acl_streams(JCR*,
acl_data_t*, int, char*, u_int32_t)':
>
> acl.c:401: error: cannot convert 'POOLMEM*' to 'acl_data_t*' for argument
'2' to 'bool aix_query_acl_support(JCR*, acl_data_t*, u_int64_t, acl_type_t*)'
> acl.c:409: error: invalid conversion from 'long long unsigned int' to
'acl_data_t*'
>
> acl.c:409: error: invalid conversion from 'acl_type_t*' to 'u_int64_t'
> acl.c:357: error: too few arguments to function 'bool
aix_query_acl_support(JCR*, acl_data_t*, u_int64_t, acl_type_t*)'
>
> acl.c:409: error: at this point in file
> make: 1254-004 The error code from the last command is 1.
>
>
> Stop.
It seems I have made some typos while converting the acl code to
be able to use it from every program by adding it to findlib, as this
code is only compiled on AIX I never got a chance to test it.
I committed a patch last night that should fix it. Just pull
the new master code and retry. If you run into other problems
you can send me an private email so I can look into it and fix it.

Its good to see that configure now seems to behave similar on
Bacula and Bareos and you even get acl and xattr enabled now by default.
I still see you don't get plugins etc but that is probably because
you disable libtool. I would leave it enabled as I think both shared
libs and plugins is something you want.

We hope to have access to a AIX 7 machine ourself soon so then I can
compile things myself and fix any other problems that may exist with
Bareos on AIX.

> Going much deeper i've discovered i've used xlC ( the IBM C compiler )
than the gcc and looks that if i try to use the xlC compiler for bareos the
make does NOT starts... :
>
>    net-js20#make
> ==>Entering directory /home11/xx/bareos-master/srcTarget "all" is up to
date.==>Entering directory /home11/xx/bareos-master/scriptsTarget "all" is
up to date.==>Entering directory /home11/xx/bareos-master/src/lib
Error in /home11/xx/bareos-master/src/lib ======make: 1254-004 The error
code from the last command is 1.
> Stop.
>
> I am sure that there is a chance to compile it with gcc, but currently i
am stuck on it.
>
The above looks strange it looks like it using the C-compiler not the
C++-compiler as its barfing on some C++ constructs. I think most of the
things it complains about are one on one copies from Bacula so it looks
strange. Further more I think that also Bacula is saying nowadays they
optimize things for gcc so it could be it also no longer compiles with
the native compiler on AIX. I also don't know how good the AIX compiler
is. On Solaris (my development platform) I use the SUN/Oracle compiler
and all our code compiles ok there with that C++ compiler and default
non GNU make. But for most platforms GCC/G++ is the prefered compiler.

The problems you ran into are some small typos, hopefully you get further
now but compiling without libtool e.g. making static binaries is something
we don't put an enormous effort in mostly because more and more platforms
don't even support static linking anymore and also for disaster recovery
static binaries is no longer an absolute requirement.
Reply all
Reply to author
Forward
0 new messages