It can be done...

Michael Felt michael at
Tue Aug 1 10:48:36 UTC 2017

FYI: the nice news first --

'build' finished successfully (....)
root at x064:[/data/prj/samba/samba-4.4.15]

But to get here I had to refer to a few known issues re: AIX and using 
xlc as a compiler. Also, a few 'comments' about the configure process.

a) cannot build "out of tree"

Otherwise get error:
python: can't open file './buildtools/bin/waf': [Errno 2] No such file 
or directory

b) re: - cannot find 
python development headers

I occasionally get this message - not because the python headers are not 
available, but because the ABI aka OBJECT_MODE is not correct. If python 
is 64-bit - messages like this occur during configure/make when 
OBJECT_MODE is unset, or set to 32.

This is hint I would have added to bugzilla - but no account yet.

c) Bug 11621 time.c - needed (iirc is applied to samba-4.7)

d) Bug 11746 tdbtool.c - the patch works, do not see that it has been 
accepted yet.

e) (new) bug: "source4/dsdb/samdb/ldb_modules/tombstone_reanimate.c" : 
xlc (v11) does not know __PRETTY_FUNCTION__

The hack here is not a proper patch suggestion. Needs to be tied to the 
compiler used, not the OS.

   337  #ifndef _AIX
   338  /* actually needs to be something to identify if GCC, or not */
   339          ldb_debug(ldb, LDB_DEBUG_TRACE, "%s\n", 
   340  #else
   341          ldb_debug(ldb, LDB_DEBUG_TRACE, "%s\n", __FUNCTION__);
   342  #endif

f) Bug 11748: ../source4/torture/smb2/lock.c", line 2897.35: 1506-196 
(S) Initialization between types "unsigned long" and "struct 
smb2_handle" is not allowed.

This patch works, but will not be mainstream. Just noting here that it 
occurred, and also in file source4/torture/smb2/replay.c (I expect 
changes since the original bug).
Sadly for me, a patch for xlc v13 may never find it's into xlc v11 
(which is what I have).

g) Bug 12822: O_NOFOLLOW - eventually, it may come to AIX, but unlikely 
it will be on current levels of AIX - and packaging will be difficult.

A "patch" such as:
/* code using O_NOFOLLOW */
worked for me to build.

After these, the build completed (as mentioned above).

Footnote: initially, no LDAP support. And, as waf configure takes some 
time - I would have greatly appreciated more caching of the previous 
results, rather than have to repeat it so many times to establish SAMBA 

All in all - impressed.


p.s. I am hoping the build process accepts something like make 
DESTDIR=/some/where/else install - if not, instructions greatly appreciated!

More information about the samba-technical mailing list