Folks,
Just downloaded 2.5.2 to play with...builds with a raft of warnings, and
the symlink test fails. Transcript below for anyone with the knowledge
and energy to repair.
This is done with gcc-3.0.3.
David.
-----
BUILD:
corona 2.5.2 7 $ make
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c rsync.c -o rsync.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c generator.c -o
generator.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c receiver.c -o
receiver.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c cleanup.c -o
cleanup.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c sender.c -o
sender.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c exclude.c -o
exclude.o
exclude.c: In function `get_exclude_tok':
exclude.c:332: warning: subscript has type `char'
exclude.c:345: warning: subscript has type `char'
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c util.c -o util.o
util.c: In function `strlower':
util.c:609: warning: subscript has type `char'
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c main.c -o main.o
main.c: In function `client_run':
main.c:529: warning: `flist' might be used uninitialized in this function
main.c: In function `sigusr1_handler':
main.c:779: warning: unused parameter `val'
main.c: In function `sigusr2_handler':
main.c:783: warning: unused parameter `val'
main.c: In function `sigchld_handler':
main.c:789: warning: unused parameter `val'
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c checksum.c -o
checksum.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c match.c -o match.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c syscall.c -o
syscall.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c log.c -o log.o
log.c: In function `log_transfer':
log.c:570: warning: unused parameter `file'
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c backup.c -o
backup.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c options.c -o
options.o
In file included from options.c:22:
popt/popt.h:117: warning: type qualifiers ignored on function return type
options.c:271: warning: missing initializer
options.c:271: warning: (near initialization for
`long_options[0].descrip')
options.c:272: warning: missing initializer
options.c:272: warning: (near initialization for `long_options[1].val')
options.c:273: warning: missing initializer
options.c:273: warning: (near initialization for `long_options[2].val')
options.c:274: warning: missing initializer
options.c:274: warning: (near initialization for `long_options[3].val')
options.c:275: warning: missing initializer
options.c:275: warning: (near initialization for `long_options[4].val')
options.c:276: warning: missing initializer
options.c:276: warning: (near initialization for `long_options[5].val')
options.c:277: warning: missing initializer
options.c:277: warning: (near initialization for
`long_options[6].descrip')
options.c:278: warning: missing initializer
options.c:278: warning: (near initialization for `long_options[7].val')
options.c:279: warning: missing initializer
options.c:279: warning: (near initialization for `long_options[8].val')
options.c:280: warning: missing initializer
options.c:280: warning: (near initialization for `long_options[9].val')
options.c:281: warning: missing initializer
options.c:281: warning: (near initialization for `long_options[10].val')
options.c:282: warning: missing initializer
options.c:282: warning: (near initialization for `long_options[11].val')
options.c:283: warning: missing initializer
options.c:283: warning: (near initialization for
`long_options[12].descrip')
options.c:284: warning: missing initializer
options.c:284: warning: (near initialization for `long_options[13].val')
options.c:285: warning: missing initializer
options.c:285: warning: (near initialization for `long_options[14].val')
options.c:286: warning: missing initializer
options.c:286: warning: (near initialization for
`long_options[15].descrip')
options.c:287: warning: missing initializer
options.c:287: warning: (near initialization for
`long_options[16].descrip')
options.c:288: warning: missing initializer
options.c:288: warning: (near initialization for
`long_options[17].descrip')
options.c:289: warning: missing initializer
options.c:289: warning: (near initialization for
`long_options[18].descrip')
options.c:290: warning: missing initializer
options.c:290: warning: (near initialization for `long_options[19].val')
options.c:291: warning: missing initializer
options.c:291: warning: (near initialization for
`long_options[20].descrip')
options.c:292: warning: missing initializer
options.c:292: warning: (near initialization for `long_options[21].val')
options.c:293: warning: missing initializer
options.c:293: warning: (near initialization for `long_options[22].val')
options.c:294: warning: missing initializer
options.c:294: warning: (near initialization for `long_options[23].val')
options.c:295: warning: missing initializer
options.c:295: warning: (near initialization for `long_options[24].val')
options.c:296: warning: missing initializer
options.c:296: warning: (near initialization for `long_options[25].val')
options.c:297: warning: missing initializer
options.c:297: warning: (near initialization for `long_options[26].val')
options.c:298: warning: missing initializer
options.c:298: warning: (near initialization for `long_options[27].val')
options.c:299: warning: missing initializer
options.c:299: warning: (near initialization for `long_options[28].val')
options.c:300: warning: missing initializer
options.c:300: warning: (near initialization for `long_options[29].val')
options.c:301: warning: missing initializer
options.c:301: warning: (near initialization for `long_options[30].val')
options.c:302: warning: missing initializer
options.c:302: warning: (near initialization for `long_options[31].val')
options.c:303: warning: missing initializer
options.c:303: warning: (near initialization for `long_options[32].val')
options.c:304: warning: missing initializer
options.c:304: warning: (near initialization for `long_options[33].val')
options.c:305: warning: missing initializer
options.c:305: warning: (near initialization for `long_options[34].val')
options.c:306: warning: missing initializer
options.c:306: warning: (near initialization for `long_options[35].val')
options.c:307: warning: missing initializer
options.c:307: warning: (near initialization for
`long_options[36].descrip')
options.c:308: warning: missing initializer
options.c:308: warning: (near initialization for
`long_options[37].descrip')
options.c:309: warning: missing initializer
options.c:309: warning: (near initialization for
`long_options[38].descrip')
options.c:310: warning: missing initializer
options.c:310: warning: (near initialization for `long_options[39].val')
options.c:311: warning: missing initializer
options.c:311: warning: (near initialization for
`long_options[40].descrip')
options.c:312: warning: missing initializer
options.c:312: warning: (near initialization for `long_options[41].val')
options.c:313: warning: missing initializer
options.c:313: warning: (near initialization for `long_options[42].val')
options.c:314: warning: missing initializer
options.c:314: warning: (near initialization for `long_options[43].val')
options.c:315: warning: missing initializer
options.c:315: warning: (near initialization for `long_options[44].val')
options.c:316: warning: missing initializer
options.c:316: warning: (near initialization for `long_options[45].val')
options.c:317: warning: missing initializer
options.c:317: warning: (near initialization for `long_options[46].val')
options.c:318: warning: missing initializer
options.c:318: warning: (near initialization for `long_options[47].val')
options.c:319: warning: missing initializer
options.c:319: warning: (near initialization for `long_options[48].val')
options.c:321: warning: missing initializer
options.c:321: warning: (near initialization for `long_options[49].val')
options.c:322: warning: missing initializer
options.c:322: warning: (near initialization for `long_options[50].val')
options.c:323: warning: missing initializer
options.c:323: warning: (near initialization for `long_options[51].val')
options.c:324: warning: missing initializer
options.c:324: warning: (near initialization for `long_options[52].val')
options.c:325: warning: missing initializer
options.c:325: warning: (near initialization for `long_options[53].val')
options.c:326: warning: missing initializer
options.c:326: warning: (near initialization for `long_options[54].val')
options.c:327: warning: missing initializer
options.c:327: warning: (near initialization for `long_options[55].val')
options.c:328: warning: missing initializer
options.c:328: warning: (near initialization for `long_options[56].val')
options.c:329: warning: missing initializer
options.c:329: warning: (near initialization for
`long_options[57].descrip')
options.c:330: warning: missing initializer
options.c:330: warning: (near initialization for `long_options[58].val')
options.c:331: warning: missing initializer
options.c:331: warning: (near initialization for `long_options[59].val')
options.c:332: warning: missing initializer
options.c:332: warning: (near initialization for `long_options[60].val')
options.c:333: warning: missing initializer
options.c:333: warning: (near initialization for `long_options[61].val')
options.c:334: warning: missing initializer
options.c:334: warning: (near initialization for
`long_options[62].descrip')
options.c:335: warning: missing initializer
options.c:335: warning: (near initialization for `long_options[63].val')
options.c:336: warning: missing initializer
options.c:336: warning: (near initialization for `long_options[64].val')
options.c:337: warning: missing initializer
options.c:337: warning: (near initialization for
`long_options[65].descrip')
options.c:338: warning: missing initializer
options.c:338: warning: (near initialization for `long_options[66].val')
options.c:343: warning: missing initializer
options.c:343: warning: (near initialization for `long_options[67].val')
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c flist.c -o flist.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c io.c -o io.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c compat.c -o
compat.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c hlink.c -o hlink.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c token.c -o token.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c uidlist.c -o
uidlist.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c socket.c -o
socket.o
socket.c: In function `establish_proxy_connection':
socket.c:71: warning: subscript has type `char'
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c fileio.c -o
fileio.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c batch.c -o batch.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c clientname.c -o
clientname.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c params.c -o
params.o
params.c: In function `Continuation':
params.c:167: warning: subscript has type `char'
params.c: In function `Parameter':
params.c:389: warning: subscript has type `char'
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c loadparm.c -o
loadparm.o
loadparm.c: In function `strwicmp':
loadparm.c:471: warning: subscript has type `char'
loadparm.c:473: warning: subscript has type `char'
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c clientserver.c -o
clientserver.o
clientserver.c: In function `rsync_module':
clientserver.c:208: warning: subscript has type `char'
clientserver.c:218: warning: subscript has type `char'
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c access.c -o
access.o
access.c: In function `match_address':
access.c:41: warning: subscript has type `char'
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c connection.c -o
connection.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c authenticate.c -o
authenticate.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c lib/fnmatch.c -o
lib/fnmatch.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c lib/compat.c -o
lib/compat.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c lib/snprintf.c -o
lib/snprintf.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c lib/mdfour.c -o
lib/mdfour.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c lib/permstring.c
-o lib/permstring.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c zlib/deflate.c -o
zlib/deflate.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c zlib/infblock.c -o
zlib/infblock.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c zlib/infcodes.c -o
zlib/infcodes.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c zlib/inffast.c -o
zlib/inffast.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c zlib/inflate.c -o
zlib/inflate.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c zlib/inftrees.c -o
zlib/inftrees.o
zlib/inftrees.c: In function `huft_build':
zlib/inftrees.c:217: warning: signed and unsigned type in conditional
expression
In file included from zlib/inftrees.c:395:
zlib/inffixed.h: At top level:
zlib/inffixed.h:13: warning: missing braces around initializer
zlib/inffixed.h:13: warning: (near initialization for
`fixed_tl[0].word.what')
zlib/inffixed.h:118: warning: missing braces around initializer
zlib/inffixed.h:118: warning: (near initialization for
`fixed_td[0].word.what')
zlib/inftrees.c: In function `inflate_trees_fixed':
zlib/inftrees.c:404: warning: unused parameter `z'
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c zlib/infutil.c -o
zlib/infutil.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c zlib/trees.c -o
zlib/trees.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c zlib/zutil.c -o
zlib/zutil.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c zlib/adler32.c -o
zlib/adler32.o
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c popt/findme.c -o
popt/findme.o
In file included from popt/system.h:55,
from popt/findme.c:5:
popt/popt.h:117: warning: type qualifiers ignored on function return type
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c popt/popt.c -o
popt/popt.o
In file included from popt/system.h:55,
from popt/popt.c:5:
popt/popt.h:117: warning: type qualifiers ignored on function return type
popt/popt.c: In function `poptGetNextOpt':
popt/popt.c:447: warning: implicit declaration of function `alloca'
popt/popt.c: In function `poptAddAlias':
popt/popt.c:673: warning: unused parameter `flags'
popt/popt.c: At top level:
popt/popt.c:713: warning: type qualifiers ignored on function return type
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c popt/poptconfig.c
-o popt/poptconfig.o
In file included from popt/system.h:55,
from popt/poptconfig.c:5:
popt/popt.h:117: warning: type qualifiers ignored on function return type
popt/poptconfig.c: In function `configLine':
popt/poptconfig.c:18: warning: subscript has type `char'
popt/poptconfig.c:19: warning: subscript has type `char'
popt/poptconfig.c:22: warning: subscript has type `char'
popt/poptconfig.c:24: warning: subscript has type `char'
popt/poptconfig.c:28: warning: subscript has type `char'
popt/poptconfig.c:30: warning: subscript has type `char'
popt/poptconfig.c: In function `poptReadConfigFile':
popt/poptconfig.c:93: warning: subscript has type `char'
popt/poptconfig.c: In function `poptReadDefaultConfig':
popt/poptconfig.c:121: warning: unused parameter `useEnv'
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c popt/popthelp.c -o
popt/popthelp.o
In file included from popt/system.h:55,
from popt/popthelp.c:7:
popt/popt.h:117: warning: type qualifiers ignored on function return type
popt/popthelp.c: In function `displayArgs':
popt/popthelp.c:11: warning: unused parameter `foo'
popt/popthelp.c:13: warning: unused parameter `arg'
popt/popthelp.c:13: warning: unused parameter `data'
popt/popthelp.c: At top level:
popt/popthelp.c:31: warning: type qualifiers ignored on function return
type
popt/popthelp.c:46: warning: type qualifiers ignored on function return
type
popt/popthelp.c: In function `getArgDescrip':
popt/popthelp.c:45: warning: unused parameter `translation_domain'
popt/popthelp.c: In function `singleOptionHelp':
popt/popthelp.c:93: warning: subscript has type `char'
popt/popthelp.c:95: warning: subscript has type `char'
popt/popthelp.c:101: warning: subscript has type `char'
popt/popthelp.c: In function `poptPrintHelp':
popt/popthelp.c:185: warning: unused parameter `flags'
popt/popthelp.c: In function `poptPrintUsage':
popt/popthelp.c:282: warning: unused parameter `flags'
gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c popt/poptparse.c
-o popt/poptparse.o
In file included from popt/system.h:55,
from popt/poptparse.c:5:
popt/popt.h:117: warning: type qualifiers ignored on function return type
popt/poptparse.c: In function `poptParseArgvString':
popt/poptparse.c:65: warning: subscript has type `char'
Please ignore warnings below about mktemp -- it is used in a safe way
gcc -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -o rsync rsync.o generator.o
receiver.o cleanup.o send
er.o exclude.o util.o main.o checksum.o match.o syscall.o log.o backup.o
options.o flist.o io.o comp
at.o hlink.o token.o uidlist.o socket.o fileio.o batch.o clientname.o
params.o loadparm.o clientserv
er.o access.o connection.o authenticate.o lib/fnmatch.o lib/compat.o
lib/snprintf.o lib/mdfour.o lib
/permstring.o zlib/deflate.o zlib/infblock.o zlib/infcodes.o
zlib/inffast.o zlib/inflate.o zlib/inf
trees.o zlib/infutil.o zlib/trees.o zlib/zutil.o zlib/adler32.o
popt/findme.o popt/popt.o popt/po
ptconfig.o popt/popthelp.o popt/poptparse.o -lresolv -lsocket -lnsl
TEST OUTPUT:
./runtests.sh running in /home/src/rsync/2.5.2
rsync_bin=/home/src/rsync/2.5.2/rsync
srcdir=.
scratchbase=/home/src/rsync/2.5.2/testtmp
PASS 00-hello
PASS daemon
SKIP devices
SKIP duplicates
PASS hands
PASS hardlinks
PASS longdir
SKIP ssh-basic
FAIL symlink-ignore
----- symlink-ignore failed: log follows
+ build_symlinks
fromdir=/home/src/rsync/2.5.2/testtmp.symlink-ignore/from
todir=/home/src/rsync/2.5.2/testtmp.symlink-ignore/to
+ mkdir /home/src/rsync/2.5.2/testtmp.symlink-ignore/from
+ date
+ ln -s referent
/home/src/rsync/2.5.2/testtmp.symlink-ignore/from/relative
+ ln -s /home/src/rsync/2.5.2/testtmp.symlink-ignore/from/referent
/home/src/rsync/2.5.2/testtmp.sym
link-ignore/from/absolute
+ ln -s nonexistent
/home/src/rsync/2.5.2/testtmp.symlink-ignore/from/dangling
+ ln -s ./rsync.c /home/src/rsync/2.5.2/testtmp.symlink-ignore/from/unsafe
+ /home/src/rsync/2.5.2/rsync -r
/home/src/rsync/2.5.2/testtmp.symlink-ignore/from/ /home/src/rsync/
2.5.2/testtmp.symlink-ignore/to
rsync: skipping non-regular file "absolute"
rsync: skipping non-regular file "dangling"
rsync: skipping non-regular file "relative"
rsync: skipping non-regular file "unsafe"
+ [ -f /home/src/rsync/2.5.2/testtmp.symlink-ignore/to/referent ]
+ [ -d /home/src/rsync/2.5.2/testtmp.symlink-ignore/to/from ]
+ [ -L /home/src/rsync/2.5.2/testtmp.symlink-ignore/to/dangling ]
./testsuite/symlink-ignore.test: test: argument expected
----- symlink-ignore log ends
------------------------------------------------------------
----- overall results:
5 passed
1 failed
3 skipped
------------------------------------------------------------
overall result is 1
make: *** [check] Error 1
On Mon, Jan 28, 2002 at 09:54:35AM -0500, David Birnbaum wrote:> gcc -I. -I. -g -O2 -DHAVE_CONFIG_H -Wall -W -I./popt -c main.c -o main.o > main.c: In function `client_run': > main.c:529: warning: `flist' might be used uninitialized in this functionFixed by change the initialization to struct file_list *flist = NULL; Btw, it just occurred to me that we have a couple of places where we assign 0 or NULL to file-scoped variables. Those assignments are unnecessary, as the C standard guarantees that these variables will be set to 0. Moreover, these assignments bloat the .data section unnecessarily instead of living in the .bss section (variables in .bss will be set to 0 automatically, those in .data will be set to their respective values contained in the .data section).> options.c:271: warning: missing initializer > options.c:271: warning: (near initialization for > `long_options[0].descrip')All these can be fixed by properly padding the struct initializers with the required values. -- Jos Backus _/ _/_/_/ Santa Clara, CA _/ _/ _/ _/ _/_/_/ _/ _/ _/ _/ josb@cncdsl.com _/_/ _/_/_/ use Std::Disclaimer;