Operating System - HP-UX
1849002 Members
6900 Online
104040 Solutions
New Discussion

compile vsftpd-2.0.5 in HP-UX B.11.11 failed.

 
Platinum
Occasional Advisor

compile vsftpd-2.0.5 in HP-UX B.11.11 failed.

Hi All

I want to install vsftpd to replace original ftp server in HP-UX.

According run dependencies, I have installed following depots in HP-UX.

gettext-0.14.6-hppa-11.11.depot
libiconv-1.10-hppa-11.11.depot
gcc-4.1.1-hppa-11.11.depot
libgcc-4.1.1-hppa-11.11.depot

But, I met compiling error when I compile vsftpd-2.0.5 in my HP-UX.

# cd vsftpd-2.0.5
# make
gcc -c main.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c utility.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c prelogin.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c ftpcmdio.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c postlogin.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c privsock.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c tunables.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c ftpdataio.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c secbuf.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c ls.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c postprivparent.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c logging.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c str.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c netstr.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c sysstr.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c strlist.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c banner.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c filestr.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c parseconf.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c secutil.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c ascii.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c oneprocess.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c twoprocess.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c privops.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c standalone.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c hash.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c tcpwrap.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c ipaddrparse.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c access.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c features.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c readwrite.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c ssl.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c sysutil.c -O2 -Wall -W -Wshadow -idirafter dummyinc
sysutil.c: In function 'vsf_sysutil_accept_timeout':
sysutil.c:1662: warning: passing argument 3 of 'accept' from incompatible pointe r type
sysutil.c: In function 'vsf_sysutil_getsockname':
sysutil.c:1765: warning: passing argument 3 of 'getsockname' from incompatible p ointer type
sysutil.c: In function 'vsf_sysutil_getpeername':
sysutil.c:1790: warning: passing argument 3 of 'getpeername' from incompatible p ointer type
gcc -c sysdeputil.c -O2 -Wall -W -Wshadow -idirafter dummyinc
sysdeputil.c: In function 'vsf_sysdep_check_auth':
sysdeputil.c:292: warning: initialization from incompatible pointer type
sysdeputil.c: In function 'vsf_sysutil_setproctitle_internal':
sysdeputil.c:849: warning: assignment discards qualifiers from pointer target type
sysdeputil.c: In function 'vsf_sysutil_send_fd':
sysdeputil.c:1070: error: 'struct msghdr' has no member named 'msg_accrights'
sysdeputil.c:1071: error: 'struct msghdr' has no member named 'msg_accrightslen'
sysdeputil.c: In function 'vsf_sysutil_recv_fd':
sysdeputil.c:1093: error: 'struct msghdr' has no member named 'msg_accrights'
sysdeputil.c:1094: error: 'struct msghdr' has no member named 'msg_accrightslen'
*** Error exit code 1

Stop.
#

I have searched relative cases in ITRC, and checked sysdeputil.c

#ifdef __hpux
#include
#ifdef SF_DISCONNECT
#define VSF_SYSDEP_HAVE_HPUX_SENDFILE
#endif
#include
#include
#ifdef PSTAT_SETCMD
#define VSF_SYSDEP_HAVE_HPUX_SETPROCTITLE
#endif
#undef VSF_SYSDEP_HAVE_UTMPX
#endif

It has already been what engineer said as above in other threads.

Hello, everyone, would you please give me some idea about this case?

Thanks so much!

2 REPLIES 2
Jonathan Fife
Honored Contributor

Re: compile vsftpd-2.0.5 in HP-UX B.11.11 failed.

First, make sure that __hpux is being defined, otherwise it won't include sys/socket.h. In a lot of applications there is a ./config or ./Configure step before the make, so check the README or INSTALL files in the vsftpd-2.0.5 directory for any steps you may be missing.

If you've followed those directions correctly I would check to make sure that _XOPEN_SOURCE_EXTENDED isn't being defined in the vsftpd code. If you peek at /usr/include/sys/socket.h you'll see that the msghdr struct is declared differently depending on whether _XOPEN_SOURCE_EXTENDED is defined.
Decay is inherent in all compounded things. Strive on with diligence
Platinum
Occasional Advisor

Re: compile vsftpd-2.0.5 in HP-UX B.11.11 failed.

Hello Jonathan

Thanks a lot for your reply and help!

1. no configure step needed

According INSTALL file under vsftpd-2.0.5 folder, the first step is make.

2. struct msghdr defined in /usr/include/sys/socket.h

#if defined(_XOPEN_SOURCE_EXTENDED) && !defined(_KERNEL)
/*
* Message header for recvmsg and sendmsg calls.
* Used value-result for recvmsg, value only for sendmsg.
*/
struct msghdr {
void *msg_name; /* optional address */
socklen_t msg_namelen; /* size of address */
struct iovec *msg_iov; /* scatter/gather array */
int msg_iovlen; /* # elements in msg_iov */
void *msg_control; /* ancillary data, see below */
socklen_t msg_controllen; /* ancillary data buffer len */
int msg_flags; /* flags on received message */
};
#else
/*
* Message header for recvmsg and sendmsg calls.
*/
struct msghdr {
caddr_t msg_name; /* optional address */
int msg_namelen; /* size of address */
struct iovec *msg_iov; /* scatter/gather array */
int msg_iovlen; /* # elements in msg_iov */
caddr_t msg_accrights; /* access rights sent/received */
int msg_accrightslen;
};

/*
* Message header for recvmsg and sendmsg calls.
* Used value-result for recvmsg, value only for sendmsg.
*/
struct msghdr2 {
caddr_t msg_name; /* optional address */
socklen_t msg_namelen; /* size of address */
struct iovec *msg_iov; /* scatter/gather array */
u_int msg_iovlen; /* # elements in msg_iov */
caddr_t msg_control; /* ancillary data, see below */
socklen_t msg_controllen; /* ancillary data buffer_ len */
int msg_flags; /* flags on received message */
};
#endif /* _XOPEN_SOURCE_EXTENDED */

3. check if __hpux defined. I am not sure whether my method is right. and would you please tell me how to define __hpux? Thanks!

# grep hpux sysdeputil.c
#ifdef __hpux
#if (defined(__sgi) || defined(__hpux) || defined(__osf__))
#

4. check if _XOPEN_SOURCE_EXTENDED defined

# grep _XOPEN_SOURCE_EXTENDED sysdeputil.c