Bug 4204 - Compilation fails under Tru64 Unix 4.0f
Compilation fails under Tru64 Unix 4.0f
Status: NEW
Product: Samba 3.0
Classification: Unclassified
Component: Build environment
3.0.23c
Alpha OSF/1
: P3 minor
: none
Assigned To: Tim Potter
Samba QA Contact
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2006-11-02 10:38 UTC by Scott McAskill
Modified: 2006-11-08 04:55 UTC (History)
1 user (show)

See Also:


Attachments
output from make "out of the box" (28.18 KB, text/plain)
2006-11-02 10:40 UTC, Scott McAskill
no flags Details
output from make after applying bug 2144 workaround (2.07 KB, text/plain)
2006-11-02 10:41 UTC, Scott McAskill
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Scott McAskill 2006-11-02 10:38:01 UTC
Samba 3.0.23c fails to build "out of the box" under Tru64 Unix 4.0f:
.
.
.
cc: Info: include/proto.h, line 8119: In this declaration, type "unsigned long long" is a language extension. (longlongtype)
			       SMB_BIG_UINT *dfree, SMB_BIG_UINT *dsize);
-------------------------------^
cc: Info: include/proto.h, line 8119: In this declaration, type "unsigned long long" is a language extension. (longlongtype)
			       SMB_BIG_UINT *dfree, SMB_BIG_UINT *dsize);
----------------------------------------------------^
cc: Info: include/proto.h, line 8227: In this declaration, type "unsigned long long" is a language extension. (longlongtype)
int vfs_allocate_file_space(files_struct *fsp, SMB_BIG_UINT len);
-----------------------------------------------^
*** Exit 1
Stop.

After researching the problem and applying the recommended patch from bugzilla bug 2144, it fails again with:
.
.
.
cc: Error: include/proto.h, line 1087: In this parameter list, "uint32_t" must either be a type or must be followed by a ",". (badparseparam)
struct timeval timeval_current_ofs(uint32_t secs, uint32_t usecs);
-----------------------------------^
cc: Error: include/proto.h, line 3528: Ill-formed parameter type list. (parmtyplist)
BOOL lookup_global_sam_name(const char *user, int flags, uint32_t *rid,
---------------------------------------------------------^
cc: Error: include/proto.h, line 4278: Ill-formed parameter type list. (parmtyplist)
				     uint32_t flags,
-------------------------------------^
cc: Error: include/proto.h, line 5424: Ill-formed parameter type list. (parmtyplist)
			      uint32_t flags);
------------------------------^
*** Exit 1
Stop.

I was finally able to build Samba 3.0.24c after changing all references to typedef uint32_t (and uint64_t) in all modules and header files the compiler complained about.
Comment 1 Scott McAskill 2006-11-02 10:40:38 UTC
Created attachment 2197 [details]
output from make "out of the box"
Comment 2 Scott McAskill 2006-11-02 10:41:43 UTC
Created attachment 2198 [details]
output from make after applying bug 2144 workaround
Comment 3 Scott McAskill 2006-11-02 10:43:22 UTC
Oops, I meant to say Samba 3.0.23c below...
Comment 4 Peter Marquardt 2006-11-08 04:55:56 UTC
you should get it compiled (I HATE autoconf) by hacking this *after* doing ./configure 


cat >> include/config.h<<'_EOF_'
#ifndef __uint32_t_defined
typedef unsigned int            uint32_t;
#define __uint32_t_defined
#endif
#ifndef __uint64_t_defined
typedef unsigned long int       uint64_t;
#define __uint64_t_defined
#endif
_EOF_

the problem is just that these types simply do not exist on osf4.0 .... and it seems to be modern programming style to let autoconf decide.


yes I know, this is dirty ... but hey, it works 8)