Several people have come up with fixes for that, and I'm not sure
which one is the best. Here's mine:
--- rsync.h.O Mon Jan 28 08:57:17 2002
+++ rsync.h Mon Jan 28 08:57:31 2002
@@ -303,8 +303,8 @@
* cope with platforms on which this is an unsigned int or even a
* struct. Later.
*/
-#define INO64_T unsigned int64
-#define DEV64_T unsigned int64
+#define INO64_T int64
+#define DEV64_T int64
#ifndef MIN
#define MIN(a,b) ((a)<(b)?(a):(b))
- Dave Dykstra
On Tue, Feb 05, 2002 at 03:36:47PM -0500, Richard Ure?a
wrote:> Trying to compile rsync 2.5.2 after "./configure --prefix=/usr"
> I get the following make errors:
>
> gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -c rsync.c -o rsync.o
> In file included from rsync.c:23:
> rsync.h:339: warning: no semicolon at end of struct or union
> rsync.h:339: parse error before `inode'
> rsync.h:341: parse error before `dev'
> rsync.h:341: warning: type defaults to `int' in declaration of
`dev'
> rsync.h:341: warning: data definition has no type or storage class
> rsync.h:344: parse error before `rdev'
> rsync.h:344: warning: type defaults to `int' in declaration of
`rdev'
> rsync.h:344: warning: data definition has no type or storage class
> rsync.h:347: `basename' redeclared as different kind of symbol
> /usr/include/string.h:317: previous declaration of `basename'
> rsync.h:350: `link' redeclared as different kind of symbol
> /usr/include/unistd.h:678: previous declaration of `link'
> rsync.h:352: parse error before `}'
> rsync.h: In function `flist_up':
> rsync.h:420: dereferencing pointer to incomplete type
> rsync.c: In function `set_perms':
> rsync.c:165: dereferencing pointer to incomplete type
> rsync.c:168: dereferencing pointer to incomplete type
> rsync.c:178: dereferencing pointer to incomplete type
> rsync.c:179: dereferencing pointer to incomplete type
> rsync.c:179: dereferencing pointer to incomplete type
> rsync.c:184: dereferencing pointer to incomplete type
> rsync.c:188: dereferencing pointer to incomplete type
> rsync.c:189: dereferencing pointer to incomplete type
> rsync.c:206: dereferencing pointer to incomplete type
> rsync.c:208: dereferencing pointer to incomplete type
> rsync.c:152: warning: `change_uid' might be used uninitialized in
this function
> rsync.c:152: warning: `change_gid' might be used uninitialized in
this function
> rsync.c: In function `finish_transfer':
> rsync.c:245: dereferencing pointer to incomplete type
> make: *** [rsync.o] Error 1
>
> Some info about the build environment:
>
> uname -sr
> Linux 2.2.20
>
> gcc --version
> egcs-2.91.66
>
> ls -d /lib/libc*
> /lib/libc-2.1.2.so
> /lib/libc.so.6
> /lib/libcrypt.so.1
>
> make --version
> GNU Make version 3.77, by Richard Stallman and Roland McGrath.
>
> Output of "configure" appended below.
>
> I'd like to be able to upgrade to the new version due to the
> security concerns. Any help will be greatly appreciated.
>
> Regards,
>
> Richard
>
> (output of "./configure --prefix=/usr 2>&1")
>
> configure: Configuring rsync 2.5.2
> checking build system type... i686-pc-linux-gnu
> checking host system type... i686-pc-linux-gnu
> checking target system type... i686-pc-linux-gnu
> checking for gcc... gcc
> checking for C compiler default output... a.out
> checking whether the C compiler works... yes
> checking whether we are cross compiling... no
> checking for executable suffix...
> checking for object suffix... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking how to run the C preprocessor... gcc -E
> checking for a BSD compatible install... /usr/bin/ginstall -c
> checking for gcc option to accept ANSI C... none needed
> checking whether to include debugging symbols... yes
> checking for remsh... 0
> checking for broken largefile support... yes
> checking ipv6 stack type... linux-glibc
> checking for library containing getaddrinfo... none required
> checking whether byte ordering is bigendian... no
> checking for dirent.h that defines DIR... yes
> checking for opendir in -ldir... no
> checking whether time.h and sys/time.h may both be included... yes
> checking for sys/wait.h that is POSIX.1 compatible... yes
> checking for sys/fcntl.h... yes
> checking for sys/select.h... yes
> checking for fcntl.h... yes
> checking for sys/time.h... yes
> checking for sys/unistd.h... yes
> checking for unistd.h... yes
> checking for utime.h... yes
> checking for grp.h... yes
> checking for compat.h... no
> checking for sys/param.h... yes
> checking for ctype.h... yes
> checking for sys/wait.h... (cached) yes
> checking for sys/ioctl.h... yes
> checking for sys/filio.h... no
> checking for string.h... yes
> checking for stdlib.h... yes
> checking for sys/socket.h... yes
> checking for sys/mode.h... no
> checking for glob.h... yes
> checking for alloca.h... yes
> checking for mcheck.h... yes
> checking for sys/sysctl.h... yes
> checking for arpa/inet.h... yes
> checking for arpa/nameser.h... yes
> checking for netdb.h... yes
> checking for malloc.h... yes
> checking for ANSI C header files... yes
> checking for sys/types.h... yes
> checking for sys/stat.h... yes
> checking for stdlib.h... (cached) yes
> checking for string.h... (cached) yes
> checking for memory.h... yes
> checking for strings.h... yes
> checking for inttypes.h... yes
> checking for stdint.h... yes
> checking for unistd.h... (cached) yes
> checking for int... yes
> checking size of int... 4
> checking for long... yes
> checking size of long... 4
> checking for short... yes
> checking size of short... 2
> checking for inline... inline
> checking return type of signal handlers... void
> checking for uid_t in sys/types.h... yes
> checking for mode_t... yes
> checking for off_t... yes
> checking for size_t... yes
> checking for pid_t... yes
> checking type of array argument to getgroups... gid_t
> checking for struct stat.st_rdev... yes
> checking for ino_t... yes
> checking for socklen_t... yes
> checking for errno in errno.h... yes
> checking for connect... yes
> checking for inet_ntop in -lresolv... yes
> checking for inet_ntop... yes
> checking for inet_pton... yes
> checking for getaddrinfo... yes
> checking for getnameinfo... yes
> checking for struct sockaddr.sa_len... no
> checking struct sockaddr_storage... yes
> checking for strcasecmp... yes
> checking whether utime accepts a null argument... yes
> checking for waitpid... yes
> checking for wait4... yes
> checking for getcwd... yes
> checking for strdup... yes
> checking for strerror... yes
> checking for chown... yes
> checking for chmod... yes
> checking for mknod... yes
> checking for fchmod... yes
> checking for fstat... yes
> checking for strchr... yes
> checking for readlink... yes
> checking for link... yes
> checking for utime... yes
> checking for utimes... yes
> checking for strftime... yes
> checking for memmove... yes
> checking for lchown... yes
> checking for vsnprintf... yes
> checking for snprintf... yes
> checking for asprintf... yes
> checking for setsid... yes
> checking for glob... yes
> checking for strpbrk... yes
> checking for strlcat... no
> checking for strlcpy... no
> checking for mtrace... yes
> checking for mallinfo... yes
> checking for working socketpair... yes
> checking for working fnmatch... yes
> checking for poptGetContext in -lpopt... yes
> checking whether to use included libpopt... no
> checking for long long... yes
> checking for off64_t... yes
> checking for short ino_t... no
> checking for unsigned char... no
> checking for broken readdir... no
> checking for utimbuf... yes
> checking if gettimeofday takes tz argument... yes
> checking for C99 vsnprintf... yes
> checking for secure mkstemp... yes
> checking for broken inet_ntoa... no
> checking for broken inet_aton... no
> checking whether -c -o works... yes
> configure: creating ./config.status
> config.status: creating Makefile
> config.status: creating lib/dummy
> config.status: creating zlib/dummy
> config.status: creating popt/dummy
> config.status: creating shconfig
> config.status: creating config.h
>
> rsync 2.5.2 configuration successful
>