Bug 9911 - Build Samba 4.0.x on AIX with IBM XL C/C++ (gettext detection issues)
Summary: Build Samba 4.0.x on AIX with IBM XL C/C++ (gettext detection issues)
Status: RESOLVED FIXED
Alias: None
Product: Samba 4.0
Classification: Unclassified
Component: Build (show other bugs)
Version: 4.0.6
Hardware: PPC AIX
: P5 normal (vote)
Target Milestone: ---
Assignee: Karolin Seeger
QA Contact: Samba QA Contact
URL:
Keywords:
Depends on:
Blocks: 9306
  Show dependency treegraph
 
Reported: 2013-05-28 14:13 UTC by Yannick Bergeron (mail address dead)
Modified: 2014-03-25 09:36 UTC (History)
5 users (show)

See Also:


Attachments
test patch (945 bytes, patch)
2013-06-12 19:48 UTC, Christian Ambach
no flags Details
proposed patch (2.72 KB, patch)
2013-06-20 16:27 UTC, Christian Ambach
no flags Details
patchset for testing (6.71 KB, patch)
2013-06-25 16:38 UTC, Christian Ambach
no flags Details
Next try (9.65 KB, patch)
2013-06-30 10:14 UTC, Christian Ambach
no flags Details
(Hopefully) final patchset (12.56 KB, patch)
2013-08-03 10:19 UTC, Christian Ambach
no flags Details
(Hopefully) final patchset (12.92 KB, patch)
2013-08-03 10:51 UTC, Christian Ambach
no flags Details
Revised patchset (255.48 KB, patch)
2013-08-07 20:52 UTC, Christian Ambach
no flags Details
Revised patchset (13.67 KB, patch)
2013-08-07 21:02 UTC, Christian Ambach
no flags Details
Patches for 4.x and 4.1 with cherry-pick information (14.33 KB, patch)
2013-08-12 18:00 UTC, Christian Ambach
bjacke: review+
Details
AIX 6.1 XL/C 11.1 config.log (316.54 KB, application/x-gzip)
2013-11-14 00:33 UTC, John Janosik
no flags Details
possible patch (1.32 KB, patch)
2013-11-26 20:23 UTC, Christian Ambach
no flags Details
bin/config.log running configure with proposed patch on AIX 7.1 XL/C 12 (306.97 KB, application/x-gzip)
2013-11-26 21:22 UTC, John Janosik
no flags Details
next try (2.77 KB, patch)
2013-12-03 19:31 UTC, Christian Ambach
no flags Details
proposed patch (6.97 KB, patch)
2014-01-06 20:12 UTC, Christian Ambach
no flags Details
Patches for 4.0 and 4.1 with cherry-pick information (12.80 KB, patch)
2014-03-03 20:26 UTC, Christian Ambach
abartlet: review+
Details
Patches for 4.0 and 4.1 with cherry-pick information (11.32 KB, patch)
2014-03-03 20:33 UTC, Christian Ambach
abartlet: review+
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Yannick Bergeron (mail address dead) 2013-05-28 14:13:57 UTC
Hi,

I'm trying to build Samba 4.0.6 on AIX 7.1 TL1 SP6 with IBM XL C/C++ 12.1 following this procedure:

export PATH=$PATH:/usr/vacpp/bin
export PATH=/usr/src/samba-4.0.6/buildtools/bin:$PATH
export PATH=$PATH:/usr/local/Python-2.7.5/bin

gzip -cd samba-4.0.6.tar.gz |tar xf -
cd samba-4.0.6
waf configure --enable-developer --prefix=/usr/local/samba-4.0.6
waf


On the "waf" command, I get the following error, which comes with a lot of warnings that have been seen in previous step of the build
[ 496/3697] Compiling lib/talloc/talloc.c
/usr/vacpp/bin/xlc_r: 1501-289 (W) Option -Wall was incorrectly specified. The option will be ignored.
/usr/vacpp/bin/xlc_r: 1501-289 (W) Option -Wshadow was incorrectly specified. The option will be ignored.
/usr/vacpp/bin/xlc_r: 1501-289 (W) Option -Werror=strict-prototypes was incorrectly specified. The option will be ignored.
/usr/vacpp/bin/xlc_r: 1501-289 (W) Option -Wstrict-prototypes was incorrectly specified. The option will be ignored.
/usr/vacpp/bin/xlc_r: 1501-289 (W) Option -Werror=pointer-arith was incorrectly specified. The option will be ignored.
/usr/vacpp/bin/xlc_r: 1501-289 (W) Option -Wpointer-arith was incorrectly specified. The option will be ignored.
/usr/vacpp/bin/xlc_r: 1501-289 (W) Option -Wcast-align was incorrectly specified. The option will be ignored.
/usr/vacpp/bin/xlc_r: 1501-289 (W) Option -Werror=write-strings was incorrectly specified. The option will be ignored.
/usr/vacpp/bin/xlc_r: 1501-289 (W) Option -Wwrite-strings was incorrectly specified. The option will be ignored.
/usr/vacpp/bin/xlc_r: 1501-289 (W) Option -Werror-implicit-function-declaration was incorrectly specified. The option will be ignored.
/usr/vacpp/bin/xlc_r: 1501-289 (W) Option -Wformat=2 was incorrectly specified. The option will be ignored.
/usr/vacpp/bin/xlc_r: 1501-289 (W) Option -Wno-format-y2k was incorrectly specified. The option will be ignored.
/usr/vacpp/bin/xlc_r: 1501-289 (W) Option -Wmissing-prototypes was incorrectly specified. The option will be ignored.
/usr/vacpp/bin/xlc_r: 1501-289 (W) Option -Werror=address was incorrectly specified. The option will be ignored.
/usr/vacpp/bin/xlc_r: 1501-289 (W) Option -Wcast-qual was incorrectly specified. The option will be ignored.
/usr/vacpp/bin/xlc_r: 1501-289 (W) Option -Werror=format was incorrectly specified. The option will be ignored.
"../lib/socket/interfaces.c", line 150.42: 1506-045 (S) Undeclared identifier IFF_UP.
"../lib/socket/interfaces.c", line 204.44: 1506-045 (S) Undeclared identifier IFF_BROADCAST.
"../lib/socket/interfaces.c", line 204.58: 1506-045 (S) Undeclared identifier IFF_LOOPBACK.
"../lib/socket/interfaces.c", line 208.51: 1506-045 (S) Undeclared identifier IFF_POINTOPOINT.
Waf: Leaving directory `/usr/src/samba-4.0.6/bin'
Build failed:  -> task failed (err #1): 
        {task: cc interfaces.c -> interfaces_1.o}




There is also a lot of warnings in the idl.
example:
[ 220/3697] Compiling IDL source3/librpc/idl/smbXsrv.idl
/usr/src/samba-4.0.6/source3/librpc/idl/libnet_join.idl:69: warning: helper() is pidl-specific and deprecated. Use `include' instead
/usr/src/samba-4.0.6/source3/librpc/idl/libnet_join.idl:33: warning: [out] argument `account_name' not a pointer
/usr/src/samba-4.0.6/source3/librpc/idl/libnet_join.idl:34: warning: [out] argument `netbios_domain_name' not a pointer
/usr/src/samba-4.0.6/source3/librpc/idl/libnet_join.idl:35: warning: [out] argument `dns_domain_name' not a pointer
/usr/src/samba-4.0.6/source3/librpc/idl/libnet_join.idl:36: warning: [out] argument `forest_name' not a pointer
/usr/src/samba-4.0.6/source3/librpc/idl/libnet_join.idl:37: warning: [out] argument `dn' not a pointer
/usr/src/samba-4.0.6/source3/librpc/idl/libnet_join.idl:39: warning: [out] argument `modified_config' not a pointer
/usr/src/samba-4.0.6/source3/librpc/idl/libnet_join.idl:40: warning: [out] argument `error_string' not a pointer
/usr/src/samba-4.0.6/source3/librpc/idl/libnet_join.idl:42: warning: [out] argument `domain_is_ad' not a pointer
/usr/src/samba-4.0.6/source3/librpc/idl/libnet_join.idl:60: warning: [out] argument `netbios_domain_name' not a pointer
/usr/src/samba-4.0.6/source3/librpc/idl/libnet_join.idl:61: warning: [out] argument `dns_domain_name' not a pointer
/usr/src/samba-4.0.6/source3/librpc/idl/libnet_join.idl:62: warning: [out] argument `forest_name' not a pointer
/usr/src/samba-4.0.6/source3/librpc/idl/libnet_join.idl:63: warning: [out] argument `modified_config' not a pointer
/usr/src/samba-4.0.6/source3/librpc/idl/libnet_join.idl:64: warning: [out] argument `error_string' not a pointer
/usr/src/samba-4.0.6/source3/librpc/idl/libnet_join.idl:65: warning: [out] argument `disabled_machine_account' not a pointer
/usr/src/samba-4.0.6/source3/librpc/idl/libnet_join.idl:67: warning: [out] argument `deleted_machine_account' not a pointer



I'm not building Samba 4 for an immediate need.
I'm currently using Samba 3.6.5 and plan to update to the latest 3.6.x release before April 2014.
We were planning to move on Samba 4.x before you stop providing security fixes for Samba 3.6.x.
However, with the release planning for 4.1, a few proposals took my attention (removing autoconf build system, removing password level and maybe remove cleartext password).
Andrew Bartlett mentionned that he might need me to test his changes so that it doesn't break our environment.
However, as I don't have any working environment on Samba 4 and I'm not able to build Samba 4.0.6, I might not be able to test his changes in a short/mid term.
So this bugzilla is to start working slowly for a Samba 4 build in my environment.
I'll try in the upcoming days to checkout the master branch and see if I've more luck with it than with 4.0.6.
If in the meantime you want more information about my environment, log files from the build or want me to test something against 4.0.6, please let me know.



Best regards,

Yannick Bergeron
Comment 1 Yannick Bergeron (mail address dead) 2013-05-28 19:02:32 UTC
I've also tried within source3 with the autoconf build system following this procedure:
export PATH=$PATH:/usr/vacpp/bin
export CFLAGS="-O3 -qmaxmem=-1"

gzip -cd samba-4.0.6.tar.gz |tar xf -
cd samba-4.0.6
cd source3
./configure --prefix=/usr/local/samba-4.0.6 --with-configdir=/etc --with-pam
make


Which resulted in this error:

Compiling lib/system.c
"lib/system.c", line 231.19: 1506-067 (S) A struct or union can only be assigned to a compatible type.
"lib/system.c", line 266.19: 1506-067 (S) A struct or union can only be assigned to a compatible type.
"lib/system.c", line 301.19: 1506-067 (S) A struct or union can only be assigned to a compatible type.
The following command failed:

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


Stop.



Best regards,

Yannick Bergeron
Comment 2 Christian Ambach 2013-06-11 14:57:36 UTC
I can run a waf build on AIX 6.1 with xlc, as long as I do not use configure.developer.
Seems like waf needs to learn which warning flags xlc will not support and which not.

Here is my commandline:
CC=/usr/vac/bin/xlc_r ./configure --prefix=/data/prefix/master ; make
Comment 3 Yannick Bergeron (mail address dead) 2013-06-12 18:54:10 UTC
### test 1

export PATH=$PATH:/usr/vacpp/bin
export PATH=/usr/src/samba-4.0.6/buildtools/bin:$PATH
export PATH=$PATH:/usr/local/Python-2.7.5/bin

gzip -cd samba-4.0.6.tar.gz |tar xf -
cd samba-4.0.6
waf configure --prefix=/usr/local/samba-4.0.6
waf

[ 493/3667] Compiling lib/socket/interfaces.c
"../lib/socket/interfaces.c", line 150.42: 1506-045 (S) Undeclared identifier IFF_UP.
"../lib/socket/interfaces.c", line 204.44: 1506-045 (S) Undeclared identifier IFF_BROADCAST.
"../lib/socket/interfaces.c", line 204.58: 1506-045 (S) Undeclared identifier IFF_LOOPBACK.
"../lib/socket/interfaces.c", line 208.51: 1506-045 (S) Undeclared identifier IFF_POINTOPOINT.
Waf: Leaving directory `/usr/src/samba-4.0.6/bin'
Build failed:  -> task failed (err #1): 
        {task: cc interfaces.c -> interfaces_1.o}


### test 2

export PATH=$PATH:/usr/vacpp/bin
export PATH=$PATH:/usr/local/Python-2.7.5/bin

gzip -cd samba-4.0.6.tar.gz |tar xf -
cd samba-4.0.6
CC=/usr/vac/bin/xlc_r ./configure --prefix=/usr/local/samba-4.0.6
make

[ 494/3667] Compiling lib/talloc/talloc.c
"../lib/socket/interfaces.c", line 150.42: 1506-045 (S) Undeclared identifier IFF_UP.
"../lib/socket/interfaces.c", line 204.44: 1506-045 (S) Undeclared identifier IFF_BROADCAST.
"../lib/socket/interfaces.c", line 204.58: 1506-045 (S) Undeclared identifier IFF_LOOPBACK.
"../lib/socket/interfaces.c", line 208.51: 1506-045 (S) Undeclared identifier IFF_POINTOPOINT.
Waf: Leaving directory `/usr/src/samba-4.0.6/bin'
Build failed:  -> task failed (err #1): 
        {task: cc interfaces.c -> interfaces_1.o}
make: 1254-004 The error code from the last command is 1.


Stop.

###
These values are defined in /usr/include/net/if.h
root@aix71tst ==> grep IFF_BROADCAST /usr/include/net/if.h
#define IFF_BROADCAST   0x2             /* broadcast address valid */
        (IFF_BROADCAST|IFF_POINTOPOINT|IFF_SIMPLEX|IFF_RUNNING|IFF_OACTIVE|IFF_MULTICAST)

A sample program is able to find them
root@aix71tst ==> cat test.c
#include "net/if.h"

int main() {
        printf("test %i\n", IFF_BROADCAST);
}

root@aix71tst ==> cc test.c
root@aix71tst ==> ./a.out
test 2


root@aix71tst ==> find . -exec grep "/if\.h" {} \; -print 2>/dev/null
Checking for header net/if.h
#include <net/if.h>
./bin/config.log
dnl we need to check that net/if.h really can be used, to cope with hpux
AC_CACHE_CHECK([for usable net/if.h],libreplace_cv_USABLE_NET_IF_H,[
                #include <net/if.h>
        AC_DEFINE(HAVE_NET_IF_H, 1, usability of net/if.h)
./lib/replace/libreplace_network.m4
#include <net/if.h>
./lib/replace/system/network.h
    conf.CHECK_HEADERS(headers='sys/socket.h net/if.h', together=True)
./lib/replace/wscript
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for usable net/if.h" >&5
$as_echo_n "checking for usable net/if.h... " >&6; }
                #include <net/if.h>
./source3/configure
/* usability of net/if.h */
./source3/include/autoconf/config.h.in
#include <net/if.h>
./source4/heimdal/lib/krb5/get_addrs.c


The configuration test seems to have succeed
---------------------------------------------------------------------------------
Checking for header net/if.h
==>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <stddef.h>
#include <memory.h>
#include <string.h>
#include <strings.h>
#include <inttypes.h>
#include <stdint.h>
#include <unistd.h>
#include <ctype.h>
#include <standards.h>
#include <stdbool.h>
#include <stdarg.h>
#include <sys/socket.h>
#include <net/if.h>

int main(void) { return 0; }
<==
[1/1] Compiling ^[[32mtest.c^[[0m
['/usr/vac/bin/xlc_r', '-I/usr/local/include', '-D_SAMBA_BUILD_=4', '-DHAVE_CONFIG_H=1', '-D_GNU_SOURCE=1', '-D_XOPEN_SOURCE_EXTENDED=1', '../test.c', '-c', '-o', 'default/test_1.o']
yes


I don't understand why it fails...

root@aix71tst ==> grep "\.h" lib/socket/interfaces.c
#include "includes.h"
#include "system/network.h"
#include "interfaces.h"
#include "lib/util/tsort.h"
root@aix71tst ==> find . -name includes.h
./source3/include/includes.h
./source4/include/includes.h
root@aix71tst ==> grep "\/if.h" ./source3/include/includes.h ./source4/include/includes.h
root@aix71tst ==> find . -name "network.h"
./lib/replace/system/network.h
root@aix71tst ==> grep "\/if.h" ./lib/replace/system/network.h
#include <net/if.h>
root@aix71tst ==> find . -name "interfaces.h"
./lib/socket/interfaces.h
./source4/libcli/raw/interfaces.h
root@aix71tst ==> grep "\/if.h" ./lib/socket/interfaces.h ./source4/libcli/raw/interfaces.h

root@aix71tst ==> grep -p if.h ./lib/replace/system/network.h
#ifdef HAVE_NET_IF_H
#include <net/if.h>
#endif

root@aix71tst ==> find . -exec grep HAVE_NET_IF_H {} \; -print 2>/dev/null |uniq
#define HAVE_NET_IF_H 1
./bin/config.log
#define HAVE_NET_IF_H 1
./bin/default/include/config.h


don't really understand why it these values cannot be found
Comment 4 Christian Ambach 2013-06-12 19:48:06 UTC
Created attachment 8964 [details]
test patch

Can you try this patch?
On AIX, lots of defines and symbols are only accessible when using -DALL_SOURCE
We already set that for AIX 5 and 6, so maybe we need it on AIX7 as well.

I never noticed that in my testing as I do not have AIX 7 available.
Comment 5 Yannick Bergeron (mail address dead) 2013-06-13 12:10:25 UTC
The patch helped to go a lot further.
So please push it to the master branch and see if it can be included in v4.0-test also.

Now I'm getting this error:

[2408/3669] Compiling source3/lib/system.c
[2409/3669] Compiling source3/lib/sendfile.c
[2410/3669] Compiling source3/lib/recvfile.c
"../source3/lib/system.c", line 231.19: 1506-067 (S) A struct or union can only be assigned to a compatible type.
"../source3/lib/system.c", line 266.19: 1506-067 (S) A struct or union can only be assigned to a compatible type.
"../source3/lib/system.c", line 301.19: 1506-067 (S) A struct or union can only be assigned to a compatible type.
Waf: Leaving directory `/usr/src/samba-4.0.6/bin'
Build failed:  -> task failed (err #1): 
        {task: cc system.c -> system_45.o}

this is the same error that I was getting by using the autoconf build system
Comment 6 Christian Ambach 2013-06-13 15:43:42 UTC
source3/wscript has the following lines:

1045     conf.CHECK_STRUCTURE_MEMBER('struct stat', 'st_mtim.tv_nsec',
1046                                 define='HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC') # Linux, Solaris
1047     conf.CHECK_STRUCTURE_MEMBER('struct stat', 'st_mtimensec',
1048                                 define='HAVE_STRUCT_STAT_ST_MTIMENSEC') # BSD, if defined _POSIX_SOURCE
1049     conf.CHECK_STRUCTURE_MEMBER('struct stat', 'st_mtimespec.tv_nsec',
1050                                 define='HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC') # BSD, if not defined _POSIX_SOURCE
1051     conf.CHECK_STRUCTURE_MEMBER('struct stat', 'st_mtime_n',
1052                                 define='HAVE_STRUCT_STAT_ST_MTIME_N') # AIX

Looks like with AIX7, the check is able to find  st_mtim.tv_nsec in struct stat.
But the compilation error seems to indicate that this field member is not a struct timespec.
Can you examine headers on your machine to see what AIX uses here?

This check fails on AIX6, so the error does not show up on my test machine.
Comment 7 Christian Ambach 2013-06-13 15:55:01 UTC
Also look out for the definition of struct timespec in time.h

stat.h should have st_mtim as struct timespec

on my AIX, it is time_t which is just a long (through sys/types.h)

Maybe that changed on AIX7
Comment 8 Yannick Bergeron (mail address dead) 2013-06-13 18:36:00 UTC
On AIX 7.1, looks like the right struct to use is st_timespec instead of timespec (even if both are defined)
On AIX 6.1, it was time_t struct instead.


in struct stat
#if _XOPEN_SOURCE>=700
        st_timespec_t st_atim;  /* Time of last access  */
        st_timespec_t st_mtim;  /* Time of last data modification */
        st_timespec_t st_ctim;  /* Time of last file status change */
#else
        time_t  st_atime;       /* Time of last access  */
        int     st_atime_n;
        time_t  st_mtime;       /* Time of last data modification */
        int     st_mtime_n;
        time_t  st_ctime;       /* Time of last file status change */
        int     st_ctime_n;
#endif

in struct stat64
#if _XOPEN_SOURCE>=700
        struct timespec64 st_atim;      /* 16: Time of last access */
        struct timespec64 st_mtim;      /* 16: Time of last data mod */
        struct timespec64 st_ctim;      /* 16: Time of last status change */
#else
        time64_t        st_atime;       /* 8: Time of last access */
        int32_t         st_atime_n;     /* 4: nanoseconds */
        int32_t         st_pad1;        /* 4: padding */
        time64_t        st_mtime;       /* 8: Time of last data modification */
        int32_t         st_mtime_n;     /* 4: nanoseconds */
        int32_t         st_pad2;        /* 4: padding */
        time64_t        st_ctime;       /* 8: Time of last file status change */
        int32_t         st_ctime_n;     /* 4: nanoseconds */
        int32_t         st_pad3;        /* 4: padding */
#endif

and the struct timespec and st_timespec
#if _XOPEN_SOURCE>=700
#ifndef _TIMESPEC
#define _TIMESPEC
struct timespec {
        time_t  tv_sec;         /* seconds */
        long    tv_nsec;        /* and nanoseconds */
};
#endif

/* internal timespec to preserve binary compatibility */
typedef struct st_timespec {
        time_t  tv_sec;         /* seconds */
        int     tv_nsec;        /* and nanoseconds */
A
} st_timespec_t;
#endif
Comment 9 Christian Ambach 2013-06-20 16:27:04 UTC
Created attachment 8987 [details]
proposed patch

this should fix it.. please give it a try
Comment 10 Yannick Bergeron (mail address dead) 2013-06-20 19:59:21 UTC
your patch solve the previous issue
here is a new one, lot of warning, I don't see where is the exact error

it doesn't seem to like if condition like this:
domains[i] ? domains[i] : _("*unknown*")

I've tried to add ( before and ) after, doesn't help

Waf: Entering directory `/usr/src/samba-4.0.6/bin'
    Selected embedded Heimdal build
[   8/3669] Generating VERSION
[  43/3669] Generating smbd/build_options.c
[2837/3669] Compiling source3/utils/net_rpc.c
[2839/3669] Compiling source3/utils/net_rpc_join.c
"../source3/utils/net_rpc_join.c", line 354.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc_join.c", line 361.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc_join.c", line 473.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc_join.c", line 501.51: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc_join.c", line 542.40: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc_join.c", line 544.32: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc_join.c", line 567.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc_join.c", line 576.33: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc_join.c", line 581.16: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 88.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 281.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 389.24: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 446.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 482.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 487.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 539.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 546.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 559.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 565.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 580.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 582.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 583.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 585.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 586.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 587.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 645.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 731.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 736.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 769.27: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 773.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 805.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 820.27: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 824.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 852.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 857.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 889.41: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 906.25: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 949.25: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 988.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1170.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1176.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1183.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1273.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1342.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1370.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1417.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1446.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1466.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1615.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1621.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1632.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1638.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1652.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1658.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1672.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1678.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1690.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1698.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1705.33: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1720.41: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1728.41: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1740.41: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1749.41: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1757.50: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1768.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1779.42: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1791.50: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1818.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1823.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1838.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1847.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1850.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1887.25: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1892.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1920.25: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1925.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2057.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2064.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2126.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2212.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2222.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2233.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2239.27: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2312.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2319.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2377.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2465.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2475.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2486.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2492.27: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2603.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2930.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2934.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2948.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2957.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2964.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2979.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2990.43: 1506-226 (S) The ":" operator is not allowed between "char*" and "int".
"../source3/utils/net_rpc.c", line 2991.41: 1506-226 (S) The ":" operator is not allowed between "char*" and "int".
"../source3/utils/net_rpc.c", line 3081.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3097.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3104.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3141.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3155.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3256.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3257.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3329.24: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3517.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3534.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3540.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3552.24: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3564.24: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3633.24: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3646.32: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3651.32: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3658.32: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3698.24: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3758.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3763.32: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3780.32: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3808.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3814.24: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3840.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3849.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3882.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3887.24: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3954.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3965.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3974.43: 1506-226 (S) The ":" operator is not allowed between "int" and "char[1]".
"../source3/utils/net_rpc.c", line 3969.24: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 4004.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 4013.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 4046.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 4116.24: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 4135.32: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 4141.32: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 4181.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 4216.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 4714.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 4723.27: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5098.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5210.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5276.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5277.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5278.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5279.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5391.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5455.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5456.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5503.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5548.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5643.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5703.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5881.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6039.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6046.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6059.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6067.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6085.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6092.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6105.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6113.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6120.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6398.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6648.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6693.47: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6828.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6869.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6888.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7022.50: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7027.51: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7030.42: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7257.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7313.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7345.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7377.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7409.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7442.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7736.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7737.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7764.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7766.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7768.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7771.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7773.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7775.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7777.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7779.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7781.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7786.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7841.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7842.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
Waf: Leaving directory `/usr/src/samba-4.0.6/bin'
Build failed:  -> task failed (err #1): 
        {task: cc net_rpc.c -> net_rpc_126.o}
Comment 11 Christian Ambach 2013-06-21 09:51:11 UTC
Was able to diagnose directly on the machine:

it has /usr/lib/libintl.a but libintl.h. libintl.a came in with AIX package for RPM.

So the configure tests are able to find the gettext function, but the prototype is missing in the code and so the compiler assumes a default return type of int and that conflicts with the expected char *.

Not sure how to improve the configure checks here, maybe you should install gettext on the machine to also get the header.
Comment 12 Björn Jacke 2013-06-21 10:03:42 UTC
we've have exactly the same libintl problems on solaris since a long time. I strongly believe that you cannot get a reproducable stable build environment if you have different libraries with the same name at different places in the system, that are both in the library search path. the library search path order is not stable because it is being influenced by some other things. In situations like this you can just pray or hack some so that it works on your system - which does not mean that it works on other people's system though. I gave up trying to find a way out of that mess.

It would be better to build without gettext by default, hoping that libintl is out of the game then. Who wants to use gettext can explicitly enable it.
Comment 13 Yannick Bergeron (mail address dead) 2013-06-21 12:33:56 UTC
As Christian mentionned, there is a libintl.a provided with the rpm package on AIX: /usr/lib/libintl.a -> /usr/opt/freeware/lib/libintl.a
The rpm package is mandatory so we cannot uninstall it.

Just to test if this was the real cause and to see if other error would occur after this one, I've removed this symbolic link and the compilation completed successfully
'build' finished successfully (20m57.457s)

I believe the best compromise would be to add an option --without-gettext
Any thought?


Best regards,

Yannick Bergeron
Comment 14 Björn Jacke 2013-06-24 12:38:43 UTC
> I believe the best compromise would be to add an option --without-gettext
> Any thought?

+1
Comment 15 Christian Ambach 2013-06-25 16:38:28 UTC
Created attachment 8998 [details]
patchset for testing

Can you give this patchset a try? It includes the previous ones and adds a --without-gettext option
Comment 16 Björn Jacke 2013-06-26 05:32:01 UTC
(In reply to comment #15)
> Created attachment 8998 [details]
> patchset for testing
> 
> Can you give this patchset a try? It includes the previous ones and adds a
> --without-gettext option

as we still maintain the autoconf build, the --with{out}-gettext option is needed for that one also.
Comment 17 Yannick Bergeron (mail address dead) 2013-06-26 13:13:35 UTC
The latest patch doesn't seem to work for me:

export PATH=$PATH:/usr/vacpp/bin
export PATH=/usr/src/samba-4.0.6/buildtools/bin:$PATH
export PATH=$PATH:/usr/local/Python-2.7.5/bin

gzip -cd samba-4.0.6.tar.gz |/usr/local/tar/bin/tar xf -
cd samba-4.0.6
/usr/local/patch-2.7.1/bin/patch -p1 < /usr/src/9911.patch
waf configure --prefix=/usr/local/samba-4.0.6 --with-configdir=/etc --with-pam --without-gettext
waf


Waf: Entering directory `/usr/src/samba-4.0.6/bin'
    Selected embedded Heimdal build
[   8/3669] Generating VERSION
[  43/3669] Generating smbd/build_options.c
[2837/3669] Compiling source3/utils/net_rpc.c
[2839/3669] Compiling source3/utils/net_rpc_join.c
"../source3/utils/net_rpc_join.c", line 354.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc_join.c", line 361.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc_join.c", line 473.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc_join.c", line 501.51: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc_join.c", line 542.40: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc_join.c", line 544.32: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc_join.c", line 567.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc_join.c", line 576.33: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc_join.c", line 581.16: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
[2840/3669] Compiling source3/utils/net_time.c
"../source3/utils/net_rpc.c", line 88.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 281.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 389.24: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 446.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 482.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 487.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 539.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 546.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 559.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 565.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 580.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 582.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 583.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 585.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 586.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 587.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 645.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 731.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 736.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 769.27: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 773.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 805.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 820.27: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 824.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 852.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 857.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 889.41: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 906.25: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 949.25: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 988.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1170.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1176.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1183.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1273.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1342.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1370.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1417.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1446.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1466.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1615.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1621.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1632.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1638.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1652.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1658.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1672.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1678.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1690.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1698.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1705.33: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1720.41: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1728.41: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1740.41: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1749.41: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1757.50: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1768.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1779.42: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1791.50: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1818.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1823.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1838.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1847.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1850.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1887.25: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1892.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1920.25: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 1925.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2057.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2064.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2126.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2212.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2222.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2233.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2239.27: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2312.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2319.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2377.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2465.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2475.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2486.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2492.27: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2603.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2930.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2934.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2948.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2957.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2964.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2979.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 2990.43: 1506-226 (S) The ":" operator is not allowed between "char*" and "int".
"../source3/utils/net_rpc.c", line 2991.41: 1506-226 (S) The ":" operator is not allowed between "char*" and "int".
"../source3/utils/net_rpc.c", line 3081.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3097.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3104.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3141.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3155.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3256.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3257.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3329.24: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3517.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3534.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3540.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3552.24: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3564.24: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3633.24: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3646.32: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3651.32: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3658.32: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3698.24: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3758.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3763.32: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3780.32: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3808.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3814.24: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3840.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3849.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3882.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3887.24: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3954.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3965.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 3974.43: 1506-226 (S) The ":" operator is not allowed between "int" and "char[1]".
"../source3/utils/net_rpc.c", line 3969.24: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 4004.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 4013.43: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 4046.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 4116.24: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 4135.32: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 4141.32: 1506-280 (W) Function argument assignment between types "const char* restrict" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 4181.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 4216.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 4714.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 4723.27: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5098.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5210.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5276.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5277.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5278.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5279.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5391.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5455.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5456.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5503.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5548.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5643.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5703.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 5881.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6039.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6046.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6059.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6067.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6085.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6092.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6105.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6113.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6120.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6398.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6648.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6693.47: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6828.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6869.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 6888.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7022.50: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7027.51: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7030.42: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7257.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7313.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7345.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7377.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7409.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7442.26: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7736.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7737.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7764.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7766.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7768.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7771.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7773.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7775.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7777.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7779.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7781.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7786.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7841.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_rpc.c", line 7842.34: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_time.c", line 39.33: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_time.c", line 47.33: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_time.c", line 86.18: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_time.c", line 110.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
"../source3/utils/net_time.c", line 221.35: 1506-280 (W) Function argument assignment between types "const char*" and "int" is not allowed.
Waf: Leaving directory `/usr/src/samba-4.0.6/bin'
Build failed:  -> task failed (err #1): 
        {task: cc net_rpc.c -> net_rpc_126.o}
Comment 18 Christian Ambach 2013-06-27 22:08:19 UTC
Can you upload your bin/config.log and bin/default/include/config.h, please?

Seems like it still found gettext() somewhere
Comment 19 Christian Ambach 2013-06-30 10:14:48 UTC
Created attachment 9007 [details]
Next try

new patchset that should make it work with the waf build.

Can you give this one a try, please?
Comment 20 Yannick Bergeron (mail address dead) 2013-07-02 12:28:22 UTC
Hi,

Sorry it was a long weekend in Canada and I was also quite busy last Friday.
I've compiled with your latest patch and 4.0.6

Here is what I get:

==# waf
Waf: Entering directory `/usr/src/samba-4.0.6/bin'
    Selected embedded Heimdal build
Checking project rules ...
Unknown dependency 'intl' in 'pamwinbind'
Comment 21 Yannick Bergeron (mail address dead) 2013-07-02 13:52:33 UTC
There was still a dependency on intl in nsswitch/wscript_build
I've removed it and started the build.
'build' finished successfully (17m29.392s)

I'll also attempt to build with 4.0.7
Comment 22 Yannick Bergeron (mail address dead) 2013-07-02 15:01:26 UTC
export PATH=$PATH:/usr/vacpp/bin
export PATH=/usr/src/samba-4.0.7/buildtools/bin:$PATH
export PATH=$PATH:/usr/local/Python-2.7.5/bin

gzip -cd samba-4.0.7.tar.gz |/usr/local/tar/bin/tar xf -
cd samba-4.0.7
/usr/local/patch-2.7.1/bin/patch -p1 < /usr/src/9911.patch
# manually removed the dependency on "intl" in nsswitch/wscript_build
waf configure --prefix=/usr/local/samba-4.0.7 --with-configdir=/etc --with-pam --without-gettext
waf
'build' finished successfully (17m23.487s)
Comment 23 Christian Ambach 2013-07-02 20:38:18 UTC
I wrote the test against master, that one does not have a dependency on intl in nsswitch, so I missed this one.
Good to hear that this enables you to build successfully. I have to do more due diligence to make sure that this does not add new breakage before converting it into an official patch. Stay tuned.
Comment 24 Christian Ambach 2013-07-02 20:41:57 UTC
Sorry, it's there in master, but only enabled when running with --with-pam. So I didn't see it in my testing.

The dependency of pam_winbindd to libintl seems to be unnecessary completely, so I might probably remove it completely.
Comment 25 Yannick Bergeron (mail address dead) 2013-07-12 17:50:37 UTC
Hi Christian,

any idea when you believe this could be pushed in master / v4.1-test / v4.0-test ?

Best regards,

Yannick Bergeron
Comment 26 Christian Ambach 2013-07-17 21:10:00 UTC
Not sure when the patch set will be ready for upstream inclusion.. I have to verify that it still works on systems that run with and without GNU libc. So I am still working on it, but I cannot give a firm target date
Comment 27 Christian Ambach 2013-08-01 19:50:38 UTC
Yannick,

is libintl.h present on your system? I think I never noted this down completely, but it will be vital for the final patch.
Comment 28 Christian Ambach 2013-08-03 10:19:04 UTC
Created attachment 9106 [details]
(Hopefully) final patchset

Yannick,

this is the hopefully final patchset that adds --without-gettext for platforms like yours.

Please give it a try and report about the results.
If they are positive, I can get the patches into master and from there back into 4.1 (and 4.0 if needed)
Comment 29 Christian Ambach 2013-08-03 10:51:29 UTC
Created attachment 9107 [details]
(Hopefully) final patchset

Sorry, previous one still contained a small issue.. please try this one
Comment 30 Yannick Bergeron (mail address dead) 2013-08-05 17:19:42 UTC
Hi Christian,

Only libintl.a is on the system, there is no libintl.h

I'll test your latest patch this week.
I would appreciate if it could go in 4.0 and 4.1.


Best regards,

Yannick Bergeron
Comment 31 Yannick Bergeron (mail address dead) 2013-08-05 18:42:00 UTC
It worked with this procedure

export PATH=$PATH:/usr/vacpp/bin
export PATH=/usr/src/samba-4.0.8/buildtools/bin:$PATH
export PATH=$PATH:/usr/local/Python-2.7.5/bin

gzip -cd samba-4.0.8.tar.gz |/usr/local/tar/bin/tar xf -
cd samba-4.0.8
/usr/local/patch-2.7.1/bin/patch -p1 < /usr/src/9911_2.patch
waf configure --prefix=/usr/local/samba-4.0.8 --with-configdir=/etc --with-pam --without-gettext
waf
# 'build' finished successfully (17m22.674s)
Comment 32 Christian Ambach 2013-08-05 21:01:59 UTC
Thanks for the confirmation.

I'll get the patches upstream now in order to be able to cherry-pick them back onto 4.1
4.0 will be a different deal (as Björn already mentioned), as it will require fixing the autoconf based build, too.
Comment 33 Christian Ambach 2013-08-07 20:52:36 UTC
Created attachment 9114 [details]
Revised patchset

Patchset incorporating a change request that came in on samba-technical

Yannick, can you please run another test with this one?
Thanks
Comment 34 Christian Ambach 2013-08-07 21:02:39 UTC
Created attachment 9115 [details]
Revised patchset

Gna.. please ignore the previous one.. that included too many unrelated patches

This here should hopefully still do the trick
Comment 35 Yannick Bergeron (mail address dead) 2013-08-09 12:24:19 UTC
Hi Christian,

compilation has worked with this procedure:
export PATH=$PATH:/usr/vacpp/bin
export PATH=/usr/src/samba-4.0.8/buildtools/bin:$PATH
export PATH=$PATH:/usr/local/Python-2.7.5/bin

gzip -cd samba-4.0.8.tar.gz |/usr/local/tar/bin/tar xf -
cd samba-4.0.8
/usr/local/patch-2.7.1/bin/patch -p1 < /usr/src/9911_3.patch
waf configure --prefix=/usr/local/samba-4.0.8 --with-configdir=/etc --with-pam --without-gettext
waf
'build' finished successfully (17m16.003s)


Best regards,

Yannick Bergeron
Comment 36 Christian Ambach 2013-08-12 18:00:02 UTC
Created attachment 9127 [details]
Patches for 4.x and 4.1 with cherry-pick information

Cherry-picked patches from master for inclusion into 4.1 and 4.0

We can debate if the 4.0 patchset is complete as it does not fix autoconf based builds, but I am not sure if it is worth the effort
Comment 37 Christian Ambach 2013-08-15 19:50:37 UTC
Björn,

can you please review? Or shall I ask somebody else?
Comment 38 Björn Jacke 2013-08-15 20:23:17 UTC
Comment on attachment 9127 [details]
Patches for 4.x and 4.1 with cherry-pick information

looks reasonable, I have no AIX box to test it though.
Comment 39 Karolin Seeger 2013-08-20 08:51:17 UTC
Pushed to autobuild-v4-1-test and autobuild-v4-0-test.
Comment 40 Karolin Seeger 2013-08-21 06:50:24 UTC
Pushed to v4-0-test and v4-1-test.
Closing out bug report.

Thanks!
Comment 41 John Janosik 2013-11-14 00:33:05 UTC
Created attachment 9419 [details]
AIX 6.1 XL/C 11.1 config.log
Comment 42 Björn Jacke 2013-11-14 15:49:17 UTC
even though I reviewed+ the patch in the first place I need to reopen this as I found a regression.

Build on OS X (and any other system without gettext support) fails with this patch because gettext support is defaulted to "yes" now. It should be "auto" so that it is being used when available and usable. If it isn't found it should not be used and it should not be required to use a --without-gettext explicitly. A configure run should fail when --with-gettext is given as a configure option and gettext is not available like on OS X. The explicit --without-gettext gettext option should be an implicit one like with the other --with-foo parameters also.

Ambi: do you think you can change the configure tests accordingly?
Comment 43 John Janosik 2013-11-14 19:14:42 UTC
I'm having problems with the waf build on AIX besides the gettext issue.  It seems this bug was addressing multiple problems building on AIX but not sure if I should comment here or open new bugs for each specific problem.

The next problem I have hit is with shared library installation and the library search path in the binaries.  Please let me know if I should open a new bug.  


[root@rchutl02] > /usr/local/samba/bin/testparm
Could not load program /usr/local/samba/bin/testparm:
        Dependent module libpopt_samba3.so could not be loaded.
Could not load module libpopt_samba3.so.
System error: No such file or directory

For example after a successful configure, make, and make install with all defaults (besides --without-gettext) the library search path in the installed binaries looks like:

[root@rchutl02] > dump -H /usr/local/samba/bin/testparm 

/usr/local/samba/bin/testparm:

                        ***Loader Section***
                      Loader Header Information
VERSION#         #SYMtableENT     #RELOCent        LENidSTR
0x00000001       0x0000005a       0x00000068       0x00000780       

#IMPfilID        OFFidSTR         LENstrTBL        OFFstrTBL
0x00000043       0x00000d70       0x000004ec       0x000014f0       


                        ***Import File Strings***
INDEX  PATH                          BASE                MEMBER              
0      /opt/freeware/lib:default/libds/common:default/libcli/ldap:default/auth:default/lib/ldb-samba:default/source4/dsdb:default/libcli/auth:default/source4/auth/kerberos:default/auth/credentials:default/lib/ldb:default/auth/gensec:default/lib/krb5_wrap:default/lib/ntdb:default/lib/param:default/source4/lib/events:default/source4/heimdal_build:default/libcli/registry:default/libcli/smb:default/lib/tdb:default/lib/tdb_wrap:default/lib/popt:default/librpc:default/lib:default/lib/talloc:default/libcli/util:default/libcli/security:default/lib/dbwrap:default/lib/tevent:default/lib/ccan:default/lib/replace:default/lib/socket:default/lib/util:default/source3:/usr/local/lib:/usr/vac/lib:/usr/lib:/lib   

I think perhaps default in each of these paths should be replaced by /usr/local/samba/lib?  Even after setting the LIBPATH env variable so that all the samba lib directories are checked some are not there:

[root@rchutl02] > export LIBPATH=/usr/local/samba/lib:/usr/local/samba/lib/auth:/usr/local/samba/lib/bind9:/usr/local/samba/lib/charset:/usr/local/samba/lib/gensec:/usr/local/samba/lib/gpext:/usr/local/samba/lib/idmap:/usr/local/samba/lib/ldb:/usr/local/samba/lib/nss_info:/usr/local/samba/lib/pdb:/usr/local/samba/lib/perfcount:/usr/local/samba/lib/pkgconfig:/usr/local/samba/lib/private:/usr/local/samba/lib/process_model:/usr/local/samba/lib/python2.6:/usr/local/samba/lib/python2.6/site-packages:/usr/local/samba/lib/python2.6/site-packages/samba:/usr/local/samba/lib/python2.6/site-packages/samba/dcerpc:/usr/local/samba/lib/python2.6/site-packages/samba/external:/usr/local/samba/lib/python2.6/site-packages/samba/external/dns:/usr/local/samba/lib/python2.6/site-packages/samba/external/dns/rdtypes:/usr/local/samba/lib/python2.6/site-packages/samba/external/dns/rdtypes/ANY:/usr/local/samba/lib/python2.6/site-packages/samba/external/dns/rdtypes/IN:/usr/local/samba/lib/python2.6/site-packages/samba/external/subunit:/usr/local/samba/lib/python2.6/site-packages/samba/external/subunit/tests:/usr/local/samba/lib/python2.6/site-packages/samba/external/testtools:/usr/local/samba/lib/python2.6/site-packages/samba/external/testtools/matchers:/usr/local/samba/lib/python2.6/site-packages/samba/external/testtools/testresult:/usr/local/samba/lib/python2.6/site-packages/samba/external/testtools/tests:/usr/local/samba/lib/python2.6/site-packages/samba/external/testtools/tests/matchers:/usr/local/samba/lib/python2.6/site-packages/samba/netcmd:/usr/local/samba/lib/python2.6/site-packages/samba/provision:/usr/local/samba/lib/python2.6/site-packages/samba/samba3:/usr/local/samba/lib/python2.6/site-packages/samba/tests:/usr/local/samba/lib/python2.6/site-packages/samba/tests/blackbox:/usr/local/samba/lib/python2.6/site-packages/samba/tests/dcerpc:/usr/local/samba/lib/python2.6/site-packages/samba/tests/samba_tool:/usr/local/samba/lib/python2.6/site-packages/samba/web_server:/usr/local/samba/lib/security:/usr/local/samba/lib/service:/usr/local/samba/lib/vfs
[root@rchutl02] > /usr/local/samba/bin/testparm
Could not load program /usr/local/samba/bin/testparm:
        Dependent module libtevent.so could not be loaded.
Could not load module libtevent.so.
System error: No such file or directory
[root@rchutl02] > find /usr/local/samba -name libtevent.so
[root@rchutl02] > 

This library is in the build tree:

[root@rchutl02] > find /usr/src/samba-4.1.0 -name libpopt_samba3.so
/usr/src/samba-4.1.0/bin/default/source3/libpopt_samba3.so
/usr/src/samba-4.1.0/bin/shared/private/libpopt_samba3.so
Comment 44 Christian Ambach 2013-11-14 19:22:51 UTC
(In reply to comment #43)
> I'm having problems with the waf build on AIX besides the gettext issue.  It
> seems this bug was addressing multiple problems building on AIX but not sure if
> I should comment here or open new bugs for each specific problem.
> 
> The next problem I have hit is with shared library installation and the library
> search path in the binaries.  Please let me know if I should open a new bug.  

We already have Bug 9557 to track the issue with the libraries.
Comment 45 Christian Ambach 2013-11-14 19:26:32 UTC
(In reply to comment #42)
> even though I reviewed+ the patch in the first place I need to reopen this as I
> found a regression.
> 
> Build on OS X (and any other system without gettext support) fails with this
> patch because gettext support is defaulted to "yes" now. It should be "auto" so
> that it is being used when available and usable. If it isn't found it should
> not be used and it should not be required to use a --without-gettext
> explicitly. A configure run should fail when --with-gettext is given as a
> configure option and gettext is not available like on OS X. The explicit
> --without-gettext gettext option should be an implicit one like with the other
> --with-foo parameters also.

I sent a remark about this to samba-technical a while ago as it also caused lots of build farm hosts to stop building, see https://lists.samba.org/archive/samba-technical/2013-August/094272.html


> Ambi: do you think you can change the configure tests accordingly?

I'll have a look while checking why it failed to detect gettext properly for John.
Comment 46 Yannick Bergeron (mail address dead) 2013-11-14 19:34:47 UTC
fyi

While trying to help John off the samba-technical mailing list, I've also found this new error on 4.1.1 when I'm compiling with waf.
[ 515/3709] Compiling lib/util/util_net.c
"../lib/util/util.c", line 128.15: 1506-343 (S) Redeclaration of file_check_permissions differs from previous declaration on line 631 of "../source4/../lib/util/samba_util.h".
"../lib/util/util.c", line 128.15: 1506-377 (I) The type "struct stat64*" of parameter 4 differs from the previous type "struct stat*".
Waf: Leaving directory `/usr/src/samba-4.1.1/bin'
Build failed:  -> task failed (err #1): 
        {task: cc util.c -> util_1.o}



I'm missing time to test 4.1.0 and 4.0.x (x > 7) as my last successful attempt was with 4.0.7
If I can find when this issue started, I'll open a new bugzilla


Best regards,

Yannick Bergeron
Comment 47 Christian Ambach 2013-11-14 19:40:31 UTC
(In reply to comment #46)
> fyi
> 
> While trying to help John off the samba-technical mailing list, I've also found
> this new error on 4.1.1 when I'm compiling with waf.
> [ 515/3709] Compiling lib/util/util_net.c
> "../lib/util/util.c", line 128.15: 1506-343 (S) Redeclaration of
> file_check_permissions differs from previous declaration on line 631 of
> "../source4/../lib/util/samba_util.h".
> "../lib/util/util.c", line 128.15: 1506-377 (I) The type "struct stat64*" of
> parameter 4 differs from the previous type "struct stat*".
> Waf: Leaving directory `/usr/src/samba-4.1.1/bin'
> Build failed:  -> task failed (err #1): 
>         {task: cc util.c -> util_1.o}
> 
> 
> 
> I'm missing time to test 4.1.0 and 4.0.x (x > 7) as my last successful attempt
> was with 4.0.7
> If I can find when this issue started, I'll open a new bugzilla
> 

This came in with the security patches for 4.1.1.. so please file a seperate bug for that.
Thanks
Comment 48 Yannick Bergeron (mail address dead) 2013-11-18 12:57:10 UTC
Hi Christian,

I've opened Bugzilla 10276 to follow the build error on 4.1.1
Feel free to add yourself in CC ;)


Best regards,

Yannick Bergeron
Comment 49 Christian Ambach 2013-11-26 20:23:26 UTC
Created attachment 9482 [details]
possible patch

Does this one fix the build for you, John?

If yes, I can work on implementing the tri-state config option as requested by Björn
Comment 50 Yannick Bergeron (mail address dead) 2013-11-26 20:49:13 UTC
To complement John's comment on lib not in LIBPATH, we had a similar issue for a long time but for which we've created 3 symlinks

Samba 3.6.5
root@aix61tst ==> ls /usr/lib/libwbclient.so /usr/lib/libtalloc.so /usr/lib/libtdb.so
lrwxrwxrwx    1 root     system           33 May 09 2012  /usr/lib/libtalloc.so -> /usr/local/samba/lib/libtalloc.so
lrwxrwxrwx    1 root     system           30 May 09 2012  /usr/lib/libtdb.so -> /usr/local/samba/lib/libtdb.so
lrwxrwxrwx    1 root     system           35 May 09 2012  /usr/lib/libwbclient.so -> /usr/local/samba/lib/libwbclient.so


With the latest 3.6.x release, a 4th is required.

Samba 3.6.20
root@aix71tst ==#> ls /usr/lib/libwbclient.so /usr/lib/libtalloc.so /usr/lib/libtdb.so /usr/lib/libtevent.so
lrwxrwxrwx    1 root     system           33 Nov 19 10:49 /usr/lib/libtalloc.so -> /usr/local/samba/lib/libtalloc.so
lrwxrwxrwx    1 root     system           30 Nov 19 10:49 /usr/lib/libtdb.so -> /usr/local/samba/lib/libtdb.so
lrwxrwxrwx    1 root     system           33 Nov 19 10:51 /usr/lib/libtevent.so -> /usr/local/samba/lib/libtevent.so
lrwxrwxrwx    1 root     system           35 Nov 19 10:49 /usr/lib/libwbclient.so -> /usr/local/samba/lib/libwbclient.so



As he's suggesting, it would be great if each "default" could be replaced by prefix/lib or libdir (/usr/local/samba/lib in my/our case)

Best regards,

Yannick Bergeron
Comment 51 John Janosik 2013-11-26 21:22:03 UTC
Created attachment 9483 [details]
bin/config.log running configure with proposed patch on AIX 7.1 XL/C 12
Comment 52 John Janosik 2013-11-26 21:23:35 UTC
Running configure with no options still detects gettext with the proposed patch and the build fails as before.  My build machine is now AIX 7.1 with XL/C 12 but the error is the same as before with or without the patch.  The bin/config.log from this configure run is attached.
Comment 53 Christian Ambach 2013-12-03 19:31:06 UTC
Created attachment 9500 [details]
next try

Can you try with this one please?
Comment 54 John Janosik 2013-12-04 15:24:28 UTC
With the latest patch with configure with only the prefix set I get:

/usr/src/samba-4.1.0/lib/replace/wscript:401: error: library gettext not found, try specifying the path to it with --with-gettext=</path/to/gettext> or --without-gettext to build without

Re-running the configure with the --without-gettext option completes ok.  I don't have a working gettext library to point at to test the --with-gettext=<path> option, but it looks good to me.
Comment 55 John Janosik 2013-12-04 23:01:35 UTC
Not sure if this belongs here or not, but posting in case Samba cannot work without gettext functions.  I've made some other changes to the Samba build that I'm testing here for AFS support and setting the library search path for AIX, but I don't think that is related to this problem.  After building with my changes and --without-gettext smbd fails to start.  The errors seem like they might be related to me:

[2013/12/04 16:54:26,  0] ../source3/smbd/server.c:1198(main)
  smbd version 4.1.0 started.
  Copyright Andrew Tridgell and the Samba Team 1992-2013
[2013/12/04 16:54:26.799574,  0] ../lib/util/charset/convert_string.c:391(convert_string_talloc_handle)
  convert_string_talloc: Conversion not supported.
[2013/12/04 16:54:26.800195,  0] ../lib/util/charset/convert_string.c:391(convert_string_talloc_handle)
  convert_string_talloc: Conversion not supported.
[2013/12/04 16:54:26.800434,  0] ../lib/util/charset/convert_string.c:391(convert_string_talloc_handle)
  convert_string_talloc: Conversion not supported.
[2013/12/04 16:54:27.241895,  0] ../lib/util/charset/convert_string.c:391(convert_string_talloc_handle)
  convert_string_talloc: Conversion not supported.
[2013/12/04 16:54:27.242417,  0] ../lib/util/charset/convert_string.c:391(convert_string_talloc_handle)
  convert_string_talloc: Conversion not supported.
[2013/12/04 16:54:27.242687,  0] ../lib/util/charset/convert_string.c:391(convert_string_talloc_handle)
  convert_string_talloc: Conversion not supported.
[2013/12/04 16:54:28.180388,  0] ../lib/util/charset/convert_string.c:391(convert_string_talloc_handle)
  convert_string_talloc: Conversion not supported.
[2013/12/04 16:54:28.180711,  0] ../source3/auth/auth_util.c:1128(copy_session_info)
  copy_session_info(): ndr_pull_auth_session_info failed: Character Conversion Error
[2013/12/04 16:54:28.180859,  0] ../source3/rpc_server/rpc_ncacn_np.c:78(make_internal_rpc_pipe_p)
  open_rpc_pipe_p: copy_serverinfo failed
[2013/12/04 16:54:28.181002,  0] ../source3/rpc_client/cli_winreg_int.c:123(_winreg_int_openkey)
  dcerpc_winreg_int_openkey: Could not connect to winreg pipe: NT_STATUS_NO_MEMORY
[2013/12/04 16:54:28.181385,  0] ../source3/rpc_server/svcctl/srv_svcctl_reg.c:600(svcctl_init_winreg)
  svcctl_init_winreg: Could not open SYSTEM\CurrentControlSet\Services - NT_STATUS_NO_MEMORY
[2013/12/04 16:54:28.181967,  0] ../source3/rpc_server/srv_pipe_register.c:222(rpc_srv_register)
  rpc_srv_register: Failed to call the svcctl init function!
Comment 56 John Janosik 2013-12-04 23:17:14 UTC
I realized I forgot to restore the registry before starting smbd, but even after restoring all the ctdb databases the character conversion problems seem to prevent smbd from starting.  Also the net commands won't set or view the configuration:

> net conf setparm global security user
convert_string_talloc: Conversion not supported.
Error setting value 'security': SBC_ERR_NOMEM


> net conf list
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
convert_string_talloc: Conversion not supported.
[global]
        security = 
        afs username map = 
        hide dot files = 
        wide links = 
        unix extensions = 
        deadtime = 
        log file = 
        debug pid = 
        guest account = 
        invalid users = 
        log level = 
        netbios name =
Comment 57 Christian Ambach 2013-12-05 09:49:50 UTC
Those errors are probably related to a missing/incorrectly detected iconv library, not related to gettext.
Can you file a new bug for them please? :)
Comment 58 Christian Ambach 2013-12-05 09:50:59 UTC
(In reply to comment #54)
> With the latest patch with configure with only the prefix set I get:
> 
> /usr/src/samba-4.1.0/lib/replace/wscript:401: error: library gettext not found,
> try specifying the path to it with --with-gettext=</path/to/gettext> or
> --without-gettext to build without
> 
> Re-running the configure with the --without-gettext option completes ok.  I
> don't have a working gettext library to point at to test the
> --with-gettext=<path> option, but it looks good to me.


Good to hear.. so I finally got the detection to work reliably on AIX. Now I test to test again on other platforms and convert it to a tristate parameter to finally close this bug.
Stay tuned.
Comment 59 Yannick Bergeron (mail address dead) 2013-12-17 15:13:46 UTC
Hi Christian,

I know Samba 3.6 is "security fix only" mode but do you believe it would be able to push the patch from attachment 8987 [details] that fix in source3/lib/system.c, ie: AIX uses struct stat64 with struct timespec64, do direct assignment does
not work any more.

If not, then we'll just maintain a local patch until we can migrate to Samba 4.x


Best regards,

Yannick Bergeron
Comment 60 Christian Ambach 2014-01-02 19:04:11 UTC
(In reply to comment #59)

> I know Samba 3.6 is "security fix only" mode but do you believe it would be
> able to push the patch from attachment 8987 [details] that fix in source3/lib/system.c,
> ie: AIX uses struct stat64 with struct timespec64, do direct assignment does
> not work any more.

I do not think that this possible. The last regular 3.6.x bugfix release was shipped and 4.1 is the most actual version.
Maybe you can make a case on samba-technical for another 3.6 release that adds fixes for AIX because 4.x is very hard to build on AIX due to the issues being discussed in this bug and Bug 9557.

> If not, then we'll just maintain a local patch until we can migrate to Samba
> 4.x
I am afraid that this is what you will need to do until you move to 4.x.
Comment 61 Yannick Bergeron (mail address dead) 2014-01-02 19:19:48 UTC
(In reply to comment #60)
> (In reply to comment #59)
> 
> > I know Samba 3.6 is "security fix only" mode but do you believe it would be
> > able to push the patch from attachment 8987 [details] [details] that fix in source3/lib/system.c,
> > ie: AIX uses struct stat64 with struct timespec64, do direct assignment does
> > not work any more.
> 
> I do not think that this possible. The last regular 3.6.x bugfix release was
> shipped and 4.1 is the most actual version.
> Maybe you can make a case on samba-technical for another 3.6 release that adds
> fixes for AIX because 4.x is very hard to build on AIX due to the issues being
> discussed in this bug and Bug 9557.
> 
> > If not, then we'll just maintain a local patch until we can migrate to Samba
> > 4.x
> I am afraid that this is what you will need to do until you move to 4.x.

I can live with that.
We are currently planning an update to 3.6.22 before April and then we'll be looking for an upgrade to Samba 4 before the EOS of Samba 3.6 or the next security issue affecting this release which will not be patched.

As for Bug 9557, I wasn't aware of this one and it seems tricky/unresolved. I've added myself in CC.


Best regards,

Yannick Bergeron
Comment 62 Christian Ambach 2014-01-06 20:12:33 UTC
Created attachment 9554 [details]
proposed patch

Hi Yannick, hi John,

could you please check if this patch set still makes you able to compile 4.0 or 4.1 on AIX without having to use --without-gettext?

It's based on some review comments I got on samba-technical and I wanted to double-check that it works for you before posting it for final review and push.

Thanks
Comment 63 Björn Jacke 2014-01-07 11:22:43 UTC
compiling with that patch on OS X 10.6 obviously screws up the flags (see the  '-', 'l', 'i', 'c', 'o', 'n', 'v' below) and gives this error during configure:

 [1/2] Compiling test.c
 ['/Users/build/bin/gcc', '-MD', '-I/usr/local/include', '-D_SAMBA_BUILD_=4', '-DHAVE_CONFIG_H=1', '-D_GNU_SOURCE=1', '-D_XOPEN_SOURCE_EXTENDED=1', '../test.c', '-c', '-o', 'default/test_1.o']
 [2/2] Linking default/testprog
 i686-apple-darwin10-llvm-gcc-4.2: l: No such file or directory
 i686-apple-darwin10-llvm-gcc-4.2: i: No such file or directory
 i686-apple-darwin10-llvm-gcc-4.2: c: No such file or directory
 i686-apple-darwin10-llvm-gcc-4.2: o: No such file or directory
 i686-apple-darwin10-llvm-gcc-4.2: n: No such file or directory
 i686-apple-darwin10-llvm-gcc-4.2: v: No such file or directory
 i686-apple-darwin10-llvm-gcc-4.2: -E or -x required when input is from standard input
 ['/Users/build/bin/gcc', 'default/test_1.o', '-o', '/Users/build/build_farm/samba_4_0_test/bin/.conf_check_0/testbuild/default/test_1.o', '-o', '/Users/build/build_farm/samba_4_0_test/bin/.conf_check_0/testbuild/default/testprog', '-fstack-protector', '-', 'l', 'i', 'c', 'o', 'n', 'v', '-L/usr/local/lib', '-lintl']
 command returned 'Build failed:  -> task failed (err #1): \n\t{task: cc_link test_1.o -> testprog}'not found
Comment 64 Christian Ambach 2014-01-07 12:48:30 UTC
(In reply to comment #63)
> compiling with that patch on OS X 10.6 obviously screws up the flags (see the 
> '-', 'l', 'i', 'c', 'o', 'n', 'v' below) and gives this error during configure:
> 
>  [1/2] Compiling test.c
>  ['/Users/build/bin/gcc', '-MD', '-I/usr/local/include', '-D_SAMBA_BUILD_=4',
> '-DHAVE_CONFIG_H=1', '-D_GNU_SOURCE=1', '-D_XOPEN_SOURCE_EXTENDED=1',
> '../test.c', '-c', '-o', 'default/test_1.o']
>  [2/2] Linking default/testprog
>  i686-apple-darwin10-llvm-gcc-4.2: l: No such file or directory
>  i686-apple-darwin10-llvm-gcc-4.2: i: No such file or directory
>  i686-apple-darwin10-llvm-gcc-4.2: c: No such file or directory
>  i686-apple-darwin10-llvm-gcc-4.2: o: No such file or directory
>  i686-apple-darwin10-llvm-gcc-4.2: n: No such file or directory
>  i686-apple-darwin10-llvm-gcc-4.2: v: No such file or directory
>  i686-apple-darwin10-llvm-gcc-4.2: -E or -x required when input is from
> standard input
>  ['/Users/build/bin/gcc', 'default/test_1.o', '-o',
> '/Users/build/build_farm/samba_4_0_test/bin/.conf_check_0/testbuild/default/test_1.o',
> '-o',
> '/Users/build/build_farm/samba_4_0_test/bin/.conf_check_0/testbuild/default/testprog',
> '-fstack-protector', '-', 'l', 'i', 'c', 'o', 'n', 'v', '-L/usr/local/lib',
> '-lintl']
>  command returned 'Build failed:  -> task failed (err #1): \n\t{task: cc_link
> test_1.o -> testprog}'not found

I think this was broken by one of the earlier patches (07b3a048724).
The line 
conf.env['EXTRA_LDFLAGS'].extend("-liconv")
in lib/replace/wscript should probably read
conf.env['EXTRA_LDFLAGS'].extend(["-liconv"])

Can you test that out? If it works, I'll add it to the patchset
Comment 65 Björn Jacke 2014-01-07 13:18:02 UTC
On 2014-01-07 at 12:48 +0000 samba-bugs@samba.org sent off:
> conf.env['EXTRA_LDFLAGS'].extend("-liconv")
> in lib/replace/wscript should probably read
> conf.env['EXTRA_LDFLAGS'].extend(["-liconv"])
> 
> Can you test that out? If it works, I'll add it to the patchset

with that change it works, please add that change to the patchset.

Thanks!
Björn
Comment 66 Yannick Bergeron (mail address dead) 2014-01-07 18:55:27 UTC
Hi,

I've did the following compile and it worked.

export PATH=$PATH:/usr/vacpp/bin
export PATH=/usr/src/samba-4.1.3/buildtools/bin:$PATH
export PATH=$PATH:/usr/local/Python-2.7.6/bin
cd /usr/src
# Must use GNU tar, not AIX tar
/usr/bin/gzip -cd samba-4.1.3.tar.gz |/usr/local/tar/bin/tar xf -
cd samba-4.1.3
# Bugzilla 9911
/usr/local/patch-2.7.1/bin/patch -p1 < /usr/src/9911_5.patch
/usr/bin/perl -i -pe "s/conf.env\['EXTRA_LDFLAGS'\].extend\(\"-liconv\"\)/conf.env\['EXTRA_LDFLAGS'\].extend\(\[\"-liconv\"\]\)/" lib/replace/wscript
# Bugzilla 10276
/usr/local/patch-2.7.1/bin/patch -p1 < /usr/src/10276_4.1.x.patch
waf configure --prefix=/usr/local/samba-4.1.3 --with-configdir=/etc --with-pam
waf
Waf: Leaving directory `/usr/src/samba-4.1.3/bin'
'build' finished successfully (17m55.788s)


Best regards,

Yannick Bergeron
Comment 67 Yannick Bergeron (mail address dead) 2014-01-10 15:32:27 UTC
fyi, just tested with 4.1.4, working

export PATH=$PATH:/usr/vacpp/bin
export PATH=/usr/src/samba-4.1.4/buildtools/bin:$PATH
export PATH=$PATH:/usr/local/Python-2.7.6/bin

cd /usr/src
# Must use GNU tar
/usr/bin/gzip -cd samba-4.1.4.tar.gz |/usr/local/tar/bin/tar xf -
cd samba-4.1.4
# Bugzilla 9911
/usr/local/patch-2.7.1/bin/patch -p1 < /usr/src/9911_5.patch
/usr/bin/perl -i -pe "s/conf.env\['EXTRA_LDFLAGS'\].extend\(\"-liconv\"\)/conf.env\['EXTRA_LDFLAGS'\].extend\(\[\"-liconv\"\]\)/" lib/replace/wscript
waf configure --prefix=/usr/local/samba-4.1.4 --with-configdir=/etc --with-pam
waf
Waf: Leaving directory `/usr/src/samba-4.1.4/bin'
'build' finished successfully (18m31.137s)
Comment 68 Christian Ambach 2014-03-03 20:26:54 UTC
Created attachment 9746 [details]
Patches for 4.0 and 4.1 with cherry-pick information
Comment 69 Christian Ambach 2014-03-03 20:28:09 UTC
(In reply to comment #68)
> Created attachment 9746 [details]
> Patches for 4.0 and 4.1 with cherry-pick information

This are all of the patches that went into master for this issue.

Once reviewed, these should go into 4.0.next and 4.1.next
Comment 70 Christian Ambach 2014-03-03 20:33:33 UTC
Created attachment 9747 [details]
Patches for 4.0 and 4.1 with cherry-pick information

Sorry, previous patchset contained unrelated patch
Comment 71 Christian Ambach 2014-03-05 19:25:30 UTC
Karolin,

please pick the new patchset for 4.0.x and 4.1.x
Comment 72 Karolin Seeger 2014-03-10 15:09:40 UTC
(In reply to comment #71)
> Karolin,
> 
> please pick the new patchset for 4.0.x and 4.1.x

Pushed to autobuild-v4-1-test and autobuild-v4-0-test.
Comment 73 Karolin Seeger 2014-03-25 09:36:21 UTC
(In reply to comment #72)
> (In reply to comment #71)
> > Karolin,
> > 
> > please pick the new patchset for 4.0.x and 4.1.x
> 
> Pushed to autobuild-v4-1-test and autobuild-v4-0-test.

Pushed to v4-1-test and v4-0-test.
Closing out bug report.

Thanks!