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;