The Samba-Bugzilla – Attachment 9115 Details for
Bug 9911
Build Samba 4.0.x on AIX with IBM XL C/C++ (gettext detection issues)
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Revised patchset
9911_3.patch (text/plain), 13.67 KB, created by
Christian Ambach
on 2013-08-07 21:02:39 UTC
(
hide
)
Description:
Revised patchset
Filename:
MIME Type:
Creator:
Christian Ambach
Created:
2013-08-07 21:02:39 UTC
Size:
13.67 KB
patch
obsolete
>From c734186268f4a57604e949d21170478661caf103 Mon Sep 17 00:00:00 2001 >From: Christian Ambach <ambi@samba.org> >Date: Thu, 20 Jun 2013 18:27:13 +0200 >Subject: [PATCH 1/5] s3:lib/system fix build on AIX 7 > >AIX uses struct stat64 with struct timespec64, so direct assignment does >not work any more. > >Pair-Programmed-With: Volker Lendecke <vl@samba.org> >Signed-off-by: Christian Ambach <ambi@samba.org> > >Autobuild-User(master): Volker Lendecke <vl@samba.org> >Autobuild-Date(master): Fri Aug 2 09:47:43 CEST 2013 on sn-devel-104 >--- > source3/lib/system.c | 15 ++++++++++++--- > 1 file changed, 12 insertions(+), 3 deletions(-) > >diff --git a/source3/lib/system.c b/source3/lib/system.c >index 8dbf7dc..8252e4f 100644 >--- a/source3/lib/system.c >+++ b/source3/lib/system.c >@@ -228,7 +228,10 @@ static struct timespec get_atimespec(const struct stat *pst) > return ret; > #else > #if defined(HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC) >- return pst->st_atim; >+ struct timespec ret; >+ ret.tv_sec = pst->st_atim.tv_sec; >+ ret.tv_nsec = pst->st_atim.tv_nsec; >+ return ret; > #elif defined(HAVE_STRUCT_STAT_ST_MTIMENSEC) > struct timespec ret; > ret.tv_sec = pst->st_atime; >@@ -263,7 +266,10 @@ static struct timespec get_mtimespec(const struct stat *pst) > return ret; > #else > #if defined(HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC) >- return pst->st_mtim; >+ struct timespec ret; >+ ret.tv_sec = pst->st_mtim.tv_sec; >+ ret.tv_nsec = pst->st_mtim.tv_nsec; >+ return ret; > #elif defined(HAVE_STRUCT_STAT_ST_MTIMENSEC) > struct timespec ret; > ret.tv_sec = pst->st_mtime; >@@ -298,7 +304,10 @@ static struct timespec get_ctimespec(const struct stat *pst) > return ret; > #else > #if defined(HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC) >- return pst->st_ctim; >+ struct timespec ret; >+ ret.tv_sec = pst->st_ctim.tv_sec; >+ ret.tv_nsec = pst->st_ctim.tv_nsec; >+ return ret; > #elif defined(HAVE_STRUCT_STAT_ST_MTIMENSEC) > struct timespec ret; > ret.tv_sec = pst->st_ctime; >-- >1.8.1.2 > > >From f92f8139273325d1cef2bd0aa9678d8f3bfb5548 Mon Sep 17 00:00:00 2001 >From: Christian Ambach <ambi@samba.org> >Date: Thu, 20 Jun 2013 18:26:04 +0200 >Subject: [PATCH 2/5] waf: fix build on AIX7 > >the same works for AIX 5,6,7 so leave away the version specifics (as autoconf build did) > >Signed-off-by: Christian Ambach <ambi@samba.org> >--- > buildtools/wafsamba/wscript | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > >diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript >index 17aef27..d115b5f 100755 >--- a/buildtools/wafsamba/wscript >+++ b/buildtools/wafsamba/wscript >@@ -322,7 +322,7 @@ def configure(conf): > else: > conf.env.HAVE_LD_VERSION_SCRIPT = False > >- if sys.platform == "aix5" or sys.platform == "aix6": >+ if sys.platform.startswith('aix'): > conf.DEFINE('_ALL_SOURCE', 1, add_to_cflags=True) > # Might not be needed if ALL_SOURCE is defined > # conf.DEFINE('_XOPEN_SOURCE', 600, add_to_cflags=True) >-- >1.8.1.2 > > >From b4189c0fba5071a19b55e8e20f1da92fcb312325 Mon Sep 17 00:00:00 2001 >From: Christian Ambach <ambi@samba.org> >Date: Tue, 25 Jun 2013 18:37:35 +0200 >Subject: [PATCH 3/5] waf: add --without-gettext option > >Signed-off-by: Christian Ambach <ambi@samba.org> >--- > buildtools/wafsamba/wscript | 3 +++ > 1 file changed, 3 insertions(+) > >diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript >index d115b5f..fe2e515 100755 >--- a/buildtools/wafsamba/wscript >+++ b/buildtools/wafsamba/wscript >@@ -82,6 +82,9 @@ def set_options(opt): > help='additional directory to search for gettext', > action='store', dest='gettext_location', default='/usr/local', > match = ['Checking for library intl', 'Checking for header libintl.h']) >+ opt.add_option('--without-gettext', >+ help=("Disable use of gettext"), >+ action="store_true", dest='disable_gettext', default=False) > > gr = opt.option_group('developer options') > >-- >1.8.1.2 > > >From b665822731c906c7b32bb1f08c018abf90f48b50 Mon Sep 17 00:00:00 2001 >From: Christian Ambach <ambi@samba.org> >Date: Thu, 1 Aug 2013 22:28:05 +0200 >Subject: [PATCH 4/5] waf: consolidate libintl related checks > >consolidate the dealing with functions from libintl and the >handling of checking if libiconv is required or not >to a common place in lib/replace > >also add a new samba_intl subsystem that has dependencies >on the appropriate set of libraries (libintl, libintl+libiconv or none) >that can be used as a general dependency by code that depends >on the internationalization libraries > >Signed-off-by: Christian Ambach <ambi@samba.org> >--- > lib/replace/wscript | 46 ++++++++++++++++++++++++++------- > source3/wscript | 9 +++---- > source4/heimdal_build/wscript_configure | 4 +-- > 3 files changed, 41 insertions(+), 18 deletions(-) > >diff --git a/lib/replace/wscript b/lib/replace/wscript >index 2117f56..b6fb10b 100644 >--- a/lib/replace/wscript >+++ b/lib/replace/wscript >@@ -89,7 +89,7 @@ struct foo bar = { .y = 'X', .x = 1 }; > sys/sockio.h sys/un.h''', together=True) > conf.CHECK_HEADERS('sys/uio.h ifaddrs.h direct.h dirent.h') > conf.CHECK_HEADERS('windows.h winsock2.h ws2tcpip.h') >- conf.CHECK_HEADERS('libintl.h errno.h') >+ conf.CHECK_HEADERS('errno.h') > conf.CHECK_HEADERS('gcrypt.h getopt.h iconv.h') > conf.CHECK_HEADERS('sys/inotify.h memory.h nss.h sasl/sasl.h') > conf.CHECK_HEADERS('security/pam_appl.h zlib.h asm/unistd.h') >@@ -363,17 +363,41 @@ removeea setea > headers='netinet/in.h arpa/nameser.h resolv.h') > > >- if not conf.CHECK_FUNCS_IN('gettext', 'intl', checklibc=True, headers='libintl.h'): >- # Some hosts need lib iconv for linking with lib intl >- # So we try with flags just in case it helps. >- oldflags = conf.env['LDFLAGS_INTL'] >- conf.env['LDFLAGS_INTL'] = "-liconv" >- if not conf.CHECK_LIB('intl'): >- conf.env['LDFLAGS_INTL'] = oldflags >+ conf.env.intl_libs='' >+ if not Options.options.disable_gettext: >+ conf.CHECK_HEADERS('libintl.h') >+ conf.CHECK_LIB('intl') >+ # *textdomain functions are not strictly necessary >+ conf.CHECK_FUNCS_IN('bindtextdomain textdomain bind_textdomain_codeset', >+ '', checklibc=True, headers='libintl.h') >+ # gettext and dgettext must exist >+ # on some systems (the ones with glibc, those are in libc) >+ if conf.CHECK_FUNCS_IN('dgettext gettext', '', checklibc=True, headers='libintl.h'): >+ # save for dependency definitions >+ conf.env.intl_libs='' >+ # others (e.g. FreeBSD) have seperate libintl >+ elif conf.CHECK_FUNCS_IN('dgettext gettext', 'intl', checklibc=False, headers='libintl.h'): >+ # save for dependency definitions >+ conf.env.intl_libs='intl' >+ # recheck with libintl >+ conf.CHECK_FUNCS_IN('bindtextdomain textdomain bind_textdomain_codeset', >+ 'intl', checklibc=False, headers='libintl.h') > else: >- conf.CHECK_FUNCS_IN('gettext', 'intl', checklibc=True, headers='libintl.h') >+ # Some hosts need lib iconv for linking with lib intl >+ # So we try with flags just in case it helps. >+ oldflags = conf.env['EXTRA_LDFLAGS']; >+ conf.env['EXTRA_LDFLAGS'].extend("-liconv") >+ conf.CHECK_FUNCS_IN('dgettext gettext bindtextdomain textdomain bind_textdomain_codeset', >+ 'intl', checklibc=False, headers='libintl.h') >+ conf.env['EXTRA_LDFLAGS'] = oldflags >+ if conf.env['HAVE_GETTEXT'] and conf.env['HAVE_DGETTEXT']: >+ # save for dependency definitions >+ conf.env.intl_libs='iconv intl' >+ else: >+ conf.fatal('library gettext not found, try specifying the path to ' + >+ 'it with --with-gettext=</path/to/gettext> or ' + >+ '--without-gettext to build without''') > >- conf.CHECK_FUNCS_IN('dgettext gettext', 'intl', headers='libintl.h') > conf.CHECK_FUNCS_IN('pthread_create', 'pthread', checklibc=True, headers='pthread.h') > > conf.CHECK_FUNCS_IN('crypt', 'crypt', checklibc=True) >@@ -627,6 +651,8 @@ def build(bld): > target='stdbool.h', > enabled = not bld.CONFIG_SET('HAVE_STDBOOL_H')) > >+ bld.SAMBA_SUBSYSTEM('samba_intl', source='', use_global_deps=False,deps=bld.env.intl_libs) >+ > def dist(): > '''makes a tarball for distribution''' > samba_dist.dist() >diff --git a/source3/wscript b/source3/wscript >index 3c0145b..271314d 100644 >--- a/source3/wscript >+++ b/source3/wscript >@@ -98,7 +98,6 @@ def configure(conf): > conf.CHECK_FUNCS('memalign posix_memalign hstrerror') > conf.CHECK_FUNCS('shmget') > conf.CHECK_FUNCS_IN('shm_open', 'rt', checklibc=True) >- conf.CHECK_FUNCS('gettext dgettext bindtextdomain textdomain bind_textdomain_codeset') > #FIXME: for some reason this one still fails > conf.CHECK_FUNCS_IN('yp_get_default_domain', 'nsl') > conf.CHECK_FUNCS_IN('dn_expand _dn_expand __dn_expand', 'resolv') >@@ -331,8 +330,8 @@ if (0) { > > conf.CHECK_FUNCS(''' > _acl __acl atexit >-bindtextdomain _chdir __chdir chflags chmod _close __close _closedir >-__closedir crypt16 devnm dgettext dirfd >+ _chdir __chdir chflags chmod _close __close _closedir >+__closedir crypt16 devnm dirfd > DNSServiceRegister _dup __dup _dup2 __dup2 endmntent execl > _facl __facl _fchdir > __fchdir fchmod fchown _fcntl __fcntl fcvt fcvtl fdatasync >@@ -341,7 +340,7 @@ fsetxattr _fstat __fstat fsync > futimens futimes __fxstat getauthuid > getcwd _getcwd __getcwd getdents __getdents getdirentries > getgrent getgrnam getgrouplist getgrset getmntent getpagesize >-getpwanam getpwent_r getrlimit gettext >+getpwanam getpwent_r getrlimit > glob grantpt hstrerror initgroups innetgr > llseek _llseek __llseek _lseek __lseek > _lstat __lstat lutimes >@@ -357,7 +356,7 @@ setmntent setpgid setpriv setsid setuidx > shmget shm_open sigaction sigblock sigprocmask sigset > _stat __stat statvfs > strcasecmp strchr strpbrk strsignal strtol strupr sysconf sysctl sysctlbyname >-__sys_llseek syslog _telldir __telldir textdomain timegm >+__sys_llseek syslog _telldir __telldir timegm > utimensat vsyslog _write __write __xstat > ''') > >diff --git a/source4/heimdal_build/wscript_configure b/source4/heimdal_build/wscript_configure >index 2bb465a..bed63d6 100755 >--- a/source4/heimdal_build/wscript_configure >+++ b/source4/heimdal_build/wscript_configure >@@ -19,7 +19,7 @@ conf.CHECK_HEADERS('ifaddrs.h') > conf.CHECK_HEADERS('''crypt.h errno.h inttypes.h netdb.h signal.h sys/bswap.h > sys/file.h sys/stropts.h sys/timeb.h sys/times.h sys/uio.h sys/un.h > sys/utsname.h time.h timezone.h ttyname.h netinet/in.h >- netinet/in6.h netinet6/in6.h libintl.h''') >+ netinet/in6.h netinet6/in6.h''') > > conf.CHECK_HEADERS('curses.h term.h termcap.h', together=True) > >@@ -42,8 +42,6 @@ conf.CHECK_FUNCS_IN('''getnameinfo sendmsg socket getipnodebyname gethostent get > 'socket nsl', > checklibc=True) > >-conf.CHECK_FUNCS_IN('dgettext gettext', 'intl', headers='libintl.h') >- > conf.CHECK_FUNCS('iruserok') > > conf.CHECK_FUNCS('bswap16') >-- >1.8.1.2 > > >From 31dce87c8c6a1454f01680d8a3779def8442740a Mon Sep 17 00:00:00 2001 >From: Christian Ambach <ambi@samba.org> >Date: Thu, 1 Aug 2013 23:00:21 +0200 >Subject: [PATCH 5/5] waf: replace dependency to libintl with samba_intl > >Signed-off-by: Christian Ambach <ambi@samba.org> >--- > nsswitch/wscript_build | 2 +- > source3/wscript_build | 2 +- > source4/heimdal_build/wscript_build | 4 ++-- > 3 files changed, 4 insertions(+), 4 deletions(-) > >diff --git a/nsswitch/wscript_build b/nsswitch/wscript_build >index a7d6489..55ba776 100644 >--- a/nsswitch/wscript_build >+++ b/nsswitch/wscript_build >@@ -81,7 +81,7 @@ elif (host_os.rfind('aix') > -1): > if bld.CONFIG_SET('WITH_PAM_MODULES') and bld.CONFIG_SET('HAVE_PAM_START'): > bld.SAMBA_LIBRARY('pamwinbind', > source='pam_winbind.c', >- deps='intl talloc wbclient winbind-client iniparser pam', >+ deps='talloc wbclient winbind-client iniparser pam samba_intl', > cflags='-DLOCALEDIR=\"%s/locale\"' % bld.env.DATADIR, > realname='pam_winbind.so', > install_path='${PAMMODULESDIR}' >diff --git a/source3/wscript_build b/source3/wscript_build >index a8bdaf0..116aee2 100755 >--- a/source3/wscript_build >+++ b/source3/wscript_build >@@ -1267,7 +1267,7 @@ bld.SAMBA3_BINARY('net', > talloc > netapi > addns >- intl >+ samba_intl > popt_samba3 > pdb > libsmb >diff --git a/source4/heimdal_build/wscript_build b/source4/heimdal_build/wscript_build >index 8ca8788..ae7fbec 100644 >--- a/source4/heimdal_build/wscript_build >+++ b/source4/heimdal_build/wscript_build >@@ -670,7 +670,7 @@ if not bld.CONFIG_SET("USING_SYSTEM_KRB5"): > HEIMDAL_LIBRARY('krb5', KRB5_SOURCE, > version_script='lib/krb5/version-script.map', > includes='../heimdal/lib/krb5 ../heimdal/lib/asn1 ../heimdal/include', >- deps='roken wind asn1 hx509 hcrypto intl com_err HEIMDAL_CONFIG heimbase execinfo', >+ deps='roken wind asn1 hx509 hcrypto com_err HEIMDAL_CONFIG heimbase execinfo samba_intl', > vnum='26.0.0', > ) > KRB5_PROTO_SOURCE = KRB5_SOURCE + ['lib/krb5/expand_path.c', 'lib/krb5/plugin.c', 'lib/krb5/context.c'] >@@ -894,7 +894,7 @@ if not bld.CONFIG_SET('USING_SYSTEM_COM_ERR'): > HEIMDAL_LIBRARY('com_err', > 'lib/com_err/com_err.c lib/com_err/error.c', > includes='../heimdal/lib/com_err', >- deps='roken intl', >+ deps='roken samba_intl', > vnum='0.25', > version_script='lib/com_err/version-script.map', > ) >-- >1.8.1.2 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 9911
:
8964
|
8987
|
8998
|
9007
|
9106
|
9107
|
9114
|
9115
|
9127
|
9419
|
9482
|
9483
|
9500
|
9554
|
9746
|
9747