Opened 3 years ago

Closed 2 years ago

#65034 closed defect (fixed)

rsync fails to upgrade to @3.2.4 on 10.6.8 when building as ppc error: pointer targets in passing argument 2 of ‘getgroups’ differ in signedness

Reported by: barracuda156 Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 2.7.2
Keywords: powerpc, snowleopard, rosetta Cc:
Port: rsync

Description

/usr/bin/gcc-4.2 -std=gnu99 -I. -I. -I./zlib -pipe -Os -arch ppc -DHAVE_CONFIG_H -Wall -W -pedantic-errors -I/opt/local/include -c uidlist.c -o uidlist.o
uidlist.c: In function ‘is_in_group’:
uidlist.c:210: error: pointer targets in passing argument 2 of ‘getgroups’ differ in signedness
uidlist.c:213: warning: comparison between signed and unsigned
uidlist.c:232: warning: comparison between signed and unsigned
make: *** [uidlist.o] Error 1
make: *** Waiting for unfinished jobs....
token.c: In function ‘send_token’:
token.c:921: warning: ‘next_in’ may be used uninitialized in this function
token.c:921: note: ‘next_in’ was declared here
token.c:920: warning: ‘available_in’ may be used uninitialized in this function
token.c:920: note: ‘available_in’ was declared here
make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_rsync/rsync/work/rsync-3.2.4'
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_rsync/rsync/work/rsync-3.2.4" && /usr/bin/make -j4 -w all 
Exit code: 2

Attachments (2)

main.log (39.4 KB) - added by barracuda156 3 years ago.
10.6.8 Server, Xcode 3.2.6
config.log (399.8 KB) - added by barracuda156 3 years ago.

Download all attachments as: .zip

Change History (15)

Changed 3 years ago by barracuda156

Attachment: main.log added

10.6.8 Server, Xcode 3.2.6

comment:1 Changed 3 years ago by kencu (Ken)

Summary: rsync fails to upgrade to @3.2.4 on 10.6.8: error: pointer targets in passing argument 2 of ‘getgroups’ differ in signednessrsync fails to upgrade to @3.2.4 on 10.6.8 when building as ppc using gcc-4.2 error: pointer targets in passing argument 2 of ‘getgroups’ differ in signedness

comment:2 Changed 3 years ago by kencu (Ken)

comment:3 in reply to:  2 Changed 3 years ago by barracuda156

Replying to kencu:

jftr it builds fine using standard builds on the bots, eg

https://build.macports.org/builders/ports-10.6_x86_64-builder/builds/100487/steps/install-port/logs/stdio

Yes, it also builds with no problem on 10.6 PPC and on Tiger. I only had this problem on 10.6.8 Rosetta.

comment:4 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Ok, the log shows this configure output:

:info:configure checking type of array argument to getgroups... int

That's suspicious: getgroups actually takes a gid_t which is a __darwin_gid_t which is a __uint32_t which is an unsigned integer, vs. int which is a signed integer, hence the message about differing signedness.

The configure script gets the correct result on my Catalina system and on the buildbot Snow Leopard machines too. Something about your cross-compiling scenario seems to be throwing off the detection. Could you attach your config.log so we can see what happened?

This determination of the type of arguments for getgroups is implemented in a standard autoconf macro AC_TYPE_GETGROUPS. There is a comment in the code for that macro that talks about how it will use int when cross compiling on old systems that lack prototypes. That explanation doesn't make sense for Mac OS X, all versions of which are new enough to have prototypes, so I think some other failure, which the config.log should tell us about, is confusing this check into giving the wrong answer.

comment:5 Changed 3 years ago by barracuda156

It is not a problem of gcc-4.2 though:

--->  Building rsync
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_rsync/rsync/work/rsync-3.2.4" && /usr/bin/make -j4 -w all 
make: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_rsync/rsync/work/rsync-3.2.4'
gawk -f ./daemon-parm.awk ./daemon-parm.txt
gawk -f ./help-from-md.awk -v hfile=help-rsync.h ./rsync.1.md
gawk -f ./help-from-md.awk -v hfile=help-rsyncd.h ./rsync.1.md
./mkgitver
gawk -f ./define-from-md.awk -v hfile=default-cvsignore.h ./rsync.1.md
gawk -f ./define-from-md.awk -v hfile=default-dont-compress.h ./rsync.1.md
sed 's;\@bindir\@;/opt/local/bin;g' <./stunnel-rsyncd.conf.in >stunnel-rsyncd.conf
gawk -f ./mkproto.awk ./*.c ./lib/compat.c daemon-parm.h
/opt/local/bin/gcc-mp-10 -I. -I. -I./zlib -pipe -Os -arch ppc -DHAVE_CONFIG_H -Wall -W -pedantic-errors -I/opt/local/include -c rsync.c -o rsync.o
/opt/local/bin/gcc-mp-10 -I. -I. -I./zlib -pipe -Os -arch ppc -DHAVE_CONFIG_H -Wall -W -pedantic-errors -I/opt/local/include -c generator.c -o generator.o
/opt/local/bin/gcc-mp-10 -I. -I. -I./zlib -pipe -Os -arch ppc -DHAVE_CONFIG_H -Wall -W -pedantic-errors -I/opt/local/include -c receiver.c -o receiver.o
/opt/local/bin/gcc-mp-10 -I. -I. -I./zlib -pipe -Os -arch ppc -DHAVE_CONFIG_H -Wall -W -pedantic-errors -I/opt/local/include -c cleanup.c -o cleanup.o
/opt/local/bin/gcc-mp-10 -I. -I. -I./zlib -pipe -Os -arch ppc -DHAVE_CONFIG_H -Wall -W -pedantic-errors -I/opt/local/include -c sender.c -o sender.o
/opt/local/bin/gcc-mp-10 -I. -I. -I./zlib -pipe -Os -arch ppc -DHAVE_CONFIG_H -Wall -W -pedantic-errors -I/opt/local/include -c exclude.c -o exclude.o
/opt/local/bin/gcc-mp-10 -I. -I. -I./zlib -pipe -Os -arch ppc -DHAVE_CONFIG_H -Wall -W -pedantic-errors -I/opt/local/include -c util1.c -o util1.o
/opt/local/bin/gcc-mp-10 -I. -I. -I./zlib -pipe -Os -arch ppc -DHAVE_CONFIG_H -Wall -W -pedantic-errors -I/opt/local/include -c util2.c -o util2.o
/opt/local/bin/gcc-mp-10 -I. -I. -I./zlib -pipe -Os -arch ppc -DHAVE_CONFIG_H -Wall -W -pedantic-errors -I/opt/local/include -c main.c -o main.o
/opt/local/bin/gcc-mp-10 -I. -I. -I./zlib -pipe -Os -arch ppc -DHAVE_CONFIG_H -Wall -W -pedantic-errors -I/opt/local/include -c checksum.c -o checksum.o
checksum.c: In function 'get_checksum2':
checksum.c:227:3: warning: 'MD5_Init' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  227 |   md5_begin(&m5);
      |   ^~~~~~~~~
In file included from lib/mdigest.h:5,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md5.h:49:27: note: declared here
   49 | OSSL_DEPRECATEDIN_3_0 int MD5_Init(MD5_CTX *c);
      |                           ^~~~~~~~
checksum.c:231:5: warning: 'MD5_Update' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  231 |     md5_update(&m5, seedbuf, 4);
      |     ^~~~~~~~~~
In file included from lib/mdigest.h:5,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md5.h:50:27: note: declared here
   50 | OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len);
      |                           ^~~~~~~~~~
checksum.c:233:4: warning: 'MD5_Update' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  233 |    md5_update(&m5, (uchar *)buf, len);
      |    ^~~~~~~~~~
In file included from lib/mdigest.h:5,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md5.h:50:27: note: declared here
   50 | OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len);
      |                           ^~~~~~~~~~
checksum.c:235:4: warning: 'MD5_Update' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  235 |    md5_update(&m5, (uchar *)buf, len);
      |    ^~~~~~~~~~
In file included from lib/mdigest.h:5,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md5.h:50:27: note: declared here
   50 | OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len);
      |                           ^~~~~~~~~~
checksum.c:238:5: warning: 'MD5_Update' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  238 |     md5_update(&m5, seedbuf, 4);
      |     ^~~~~~~~~~
In file included from lib/mdigest.h:5,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md5.h:50:27: note: declared here
   50 | OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len);
      |                           ^~~~~~~~~~
checksum.c:241:3: warning: 'MD5_Final' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  241 |   md5_result(&m5, (uchar *)sum);
      |   ^~~~~~~~~~
In file included from lib/mdigest.h:5,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md5.h:51:27: note: declared here
   51 | OSSL_DEPRECATEDIN_3_0 int MD5_Final(unsigned char *md, MD5_CTX *c);
      |                           ^~~~~~~~~
checksum.c:248:3: warning: 'MD4_Init' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  248 |   MD4_Init(&m4);
      |   ^~~~~~~~
In file included from lib/mdigest.h:4,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md4.h:50:27: note: declared here
   50 | OSSL_DEPRECATEDIN_3_0 int MD4_Init(MD4_CTX *c);
      |                           ^~~~~~~~
checksum.c:249:3: warning: 'MD4_Update' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  249 |   MD4_Update(&m4, (uchar *)buf, len);
      |   ^~~~~~~~~~
In file included from lib/mdigest.h:4,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md4.h:51:27: note: declared here
   51 | OSSL_DEPRECATEDIN_3_0 int MD4_Update(MD4_CTX *c, const void *data, size_t len);
      |                           ^~~~~~~~~~
checksum.c:253:4: warning: 'MD4_Update' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  253 |    MD4_Update(&m4, seedbuf, 4);
      |    ^~~~~~~~~~
In file included from lib/mdigest.h:4,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md4.h:51:27: note: declared here
   51 | OSSL_DEPRECATEDIN_3_0 int MD4_Update(MD4_CTX *c, const void *data, size_t len);
      |                           ^~~~~~~~~~
checksum.c:255:3: warning: 'MD4_Final' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  255 |   MD4_Final((uchar *)sum, &m4);
      |   ^~~~~~~~~
In file included from lib/mdigest.h:4,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md4.h:52:27: note: declared here
   52 | OSSL_DEPRECATEDIN_3_0 int MD4_Final(unsigned char *md, MD4_CTX *c);
      |                           ^~~~~~~~~
checksum.c: In function 'file_checksum':
checksum.c:379:3: warning: 'MD5_Init' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  379 |   md5_begin(&m5);
      |   ^~~~~~~~~
In file included from lib/mdigest.h:5,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md5.h:49:27: note: declared here
   49 | OSSL_DEPRECATEDIN_3_0 int MD5_Init(MD5_CTX *c);
      |                           ^~~~~~~~
checksum.c:382:4: warning: 'MD5_Update' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  382 |    md5_update(&m5, (uchar *)map_ptr(buf, i, CHUNK_SIZE), CHUNK_SIZE);
      |    ^~~~~~~~~~
In file included from lib/mdigest.h:5,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md5.h:50:27: note: declared here
   50 | OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len);
      |                           ^~~~~~~~~~
checksum.c:386:4: warning: 'MD5_Update' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  386 |    md5_update(&m5, (uchar *)map_ptr(buf, i, remainder), remainder);
      |    ^~~~~~~~~~
In file included from lib/mdigest.h:5,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md5.h:50:27: note: declared here
   50 | OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len);
      |                           ^~~~~~~~~~
checksum.c:388:3: warning: 'MD5_Final' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  388 |   md5_result(&m5, (uchar *)sum);
      |   ^~~~~~~~~~
In file included from lib/mdigest.h:5,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md5.h:51:27: note: declared here
   51 | OSSL_DEPRECATEDIN_3_0 int MD5_Final(unsigned char *md, MD5_CTX *c);
      |                           ^~~~~~~~~
checksum.c:396:3: warning: 'MD4_Init' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  396 |   MD4_Init(&m4);
      |   ^~~~~~~~
In file included from lib/mdigest.h:4,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md4.h:50:27: note: declared here
   50 | OSSL_DEPRECATEDIN_3_0 int MD4_Init(MD4_CTX *c);
      |                           ^~~~~~~~
checksum.c:399:4: warning: 'MD4_Update' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  399 |    MD4_Update(&m4, (uchar *)map_ptr(buf, i, CHUNK_SIZE), CHUNK_SIZE);
      |    ^~~~~~~~~~
In file included from lib/mdigest.h:4,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md4.h:51:27: note: declared here
   51 | OSSL_DEPRECATEDIN_3_0 int MD4_Update(MD4_CTX *c, const void *data, size_t len);
      |                           ^~~~~~~~~~
checksum.c:403:4: warning: 'MD4_Update' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  403 |    MD4_Update(&m4, (uchar *)map_ptr(buf, i, remainder), remainder);
      |    ^~~~~~~~~~
In file included from lib/mdigest.h:4,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md4.h:51:27: note: declared here
   51 | OSSL_DEPRECATEDIN_3_0 int MD4_Update(MD4_CTX *c, const void *data, size_t len);
      |                           ^~~~~~~~~~
checksum.c:405:3: warning: 'MD4_Final' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  405 |   MD4_Final((uchar *)sum, &m4);
      |   ^~~~~~~~~
In file included from lib/mdigest.h:4,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md4.h:52:27: note: declared here
   52 | OSSL_DEPRECATEDIN_3_0 int MD4_Final(unsigned char *md, MD4_CTX *c);
      |                           ^~~~~~~~~
checksum.c: In function 'sum_init':
checksum.c:485:3: warning: 'MD5_Init' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  485 |   md5_begin(&ctx.m5);
      |   ^~~~~~~~~
In file included from lib/mdigest.h:5,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md5.h:49:27: note: declared here
   49 | OSSL_DEPRECATEDIN_3_0 int MD5_Init(MD5_CTX *c);
      |                           ^~~~~~~~
checksum.c:489:3: warning: 'MD4_Init' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  489 |   MD4_Init(&ctx.m4);
      |   ^~~~~~~~
In file included from lib/mdigest.h:4,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md4.h:50:27: note: declared here
   50 | OSSL_DEPRECATEDIN_3_0 int MD4_Init(MD4_CTX *c);
      |                           ^~~~~~~~
checksum.c: In function 'sum_update':
checksum.c:535:3: warning: 'MD5_Update' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  535 |   md5_update(&ctx.m5, (uchar *)p, len);
      |   ^~~~~~~~~~
In file included from lib/mdigest.h:5,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md5.h:50:27: note: declared here
   50 | OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len);
      |                           ^~~~~~~~~~
checksum.c:539:3: warning: 'MD4_Update' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  539 |   MD4_Update(&ctx.m4, (uchar *)p, len);
      |   ^~~~~~~~~~
In file included from lib/mdigest.h:4,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md4.h:51:27: note: declared here
   51 | OSSL_DEPRECATEDIN_3_0 int MD4_Update(MD4_CTX *c, const void *data, size_t len);
      |                           ^~~~~~~~~~
checksum.c: In function 'sum_end':
checksum.c:600:3: warning: 'MD5_Final' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  600 |   md5_result(&ctx.m5, (uchar *)sum);
      |   ^~~~~~~~~~
In file included from lib/mdigest.h:5,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md5.h:51:27: note: declared here
   51 | OSSL_DEPRECATEDIN_3_0 int MD5_Final(unsigned char *md, MD5_CTX *c);
      |                           ^~~~~~~~~
checksum.c:604:3: warning: 'MD4_Final' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  604 |   MD4_Final((uchar *)sum, &ctx.m4);
      |   ^~~~~~~~~
In file included from lib/mdigest.h:4,
                 from rsync.h:1149,
                 from checksum.c:29:
/opt/local/include/openssl/md4.h:52:27: note: declared here
   52 | OSSL_DEPRECATEDIN_3_0 int MD4_Final(unsigned char *md, MD4_CTX *c);
      |                           ^~~~~~~~~
/opt/local/bin/gcc-mp-10 -I. -I. -I./zlib -pipe -Os -arch ppc -DHAVE_CONFIG_H -Wall -W -pedantic-errors -I/opt/local/include -c match.c -o match.o
/opt/local/bin/gcc-mp-10 -I. -I. -I./zlib -pipe -Os -arch ppc -DHAVE_CONFIG_H -Wall -W -pedantic-errors -I/opt/local/include -c syscall.c -o syscall.o
/opt/local/bin/gcc-mp-10 -I. -I. -I./zlib -pipe -Os -arch ppc -DHAVE_CONFIG_H -Wall -W -pedantic-errors -I/opt/local/include -c log.c -o log.o
/opt/local/bin/gcc-mp-10 -I. -I. -I./zlib -pipe -Os -arch ppc -DHAVE_CONFIG_H -Wall -W -pedantic-errors -I/opt/local/include -c backup.c -o backup.o
/opt/local/bin/gcc-mp-10 -I. -I. -I./zlib -pipe -Os -arch ppc -DHAVE_CONFIG_H -Wall -W -pedantic-errors -I/opt/local/include -c delete.c -o delete.o
/opt/local/bin/gcc-mp-10 -I. -I. -I./zlib -pipe -Os -arch ppc -DHAVE_CONFIG_H -Wall -W -pedantic-errors -I/opt/local/include -c options.c -o options.o
/opt/local/bin/gcc-mp-10 -I. -I. -I./zlib -pipe -Os -arch ppc -DHAVE_CONFIG_H -Wall -W -pedantic-errors -I/opt/local/include -c io.c -o io.o
/opt/local/bin/gcc-mp-10 -I. -I. -I./zlib -pipe -Os -arch ppc -DHAVE_CONFIG_H -Wall -W -pedantic-errors -I/opt/local/include -c compat.c -o compat.o
/opt/local/bin/gcc-mp-10 -I. -I. -I./zlib -pipe -Os -arch ppc -DHAVE_CONFIG_H -Wall -W -pedantic-errors -I/opt/local/include -c hlink.c -o hlink.o
/opt/local/bin/gcc-mp-10 -I. -I. -I./zlib -pipe -Os -arch ppc -DHAVE_CONFIG_H -Wall -W -pedantic-errors -I/opt/local/include -c token.c -o token.o
/opt/local/bin/gcc-mp-10 -I. -I. -I./zlib -pipe -Os -arch ppc -DHAVE_CONFIG_H -Wall -W -pedantic-errors -I/opt/local/include -c uidlist.c -o uidlist.o
uidlist.c: In function 'is_in_group':
uidlist.c:210:33: error: pointer targets in passing argument 2 of 'getgroups' differ in signedness [-Wpointer-sign]
  210 |    ngroups = getgroups(ngroups, gidset);
      |                                 ^~~~~~
      |                                 |
      |                                 int *
In file included from rsync.h:353,
                 from uidlist.c:26:
/usr/include/unistd.h:452:21: note: expected 'gid_t *' {aka 'unsigned int *'} but argument is of type 'int *'
  452 | int  getgroups(int, gid_t []);
      |                     ^~~~~~~~
uidlist.c:213:18: warning: comparison of integer expressions of different signedness: 'int' and 'gid_t' {aka 'unsigned int'} [-Wsign-compare]
  213 |    if (gidset[n] == our_gid)
      |                  ^~
uidlist.c:232:17: warning: comparison of integer expressions of different signedness: 'int' and 'gid_t' {aka 'unsigned int'} [-Wsign-compare]
  232 |   if (gidset[n] == gid)
      |                 ^~
make: *** [uidlist.o] Error 1
make: *** Waiting for unfinished jobs....
make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_rsync/rsync/work/rsync-3.2.4'
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_rsync/rsync/work/rsync-3.2.4" && /usr/bin/make -j4 -w all 
Exit code: 2
Error: Failed to build rsync: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_rsync/rsync/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there
is a bug.
macmini:~ svacchanda$ 

comment:6 Changed 3 years ago by barracuda156

Summary: rsync fails to upgrade to @3.2.4 on 10.6.8 when building as ppc using gcc-4.2 error: pointer targets in passing argument 2 of ‘getgroups’ differ in signednessrsync fails to upgrade to @3.2.4 on 10.6.8 when building as ppc error: pointer targets in passing argument 2 of ‘getgroups’ differ in signedness

The error is not specific to compiler version.

comment:7 in reply to:  4 Changed 3 years ago by barracuda156

Replying to ryandesign:

That explanation doesn't make sense for Mac OS X, all versions of which are new enough to have prototypes, so I think some other failure, which the config.log should tell us about, is confusing this check into giving the wrong answer.

I attach config.log below (with gcc10).

Changed 3 years ago by barracuda156

Attachment: config.log added

comment:8 in reply to:  4 ; Changed 2 years ago by barracuda156

Replying to ryandesign:

Ok, the log shows this configure output:

:info:configure checking type of array argument to getgroups... int

That's suspicious: getgroups actually takes a gid_t which is a __darwin_gid_t which is a __uint32_t which is an unsigned integer, vs. int which is a signed integer, hence the message about differing signedness.

The configure script gets the correct result on my Catalina system and on the buildbot Snow Leopard machines too. Something about your cross-compiling scenario seems to be throwing off the detection. Could you attach your config.log so we can see what happened?

This determination of the type of arguments for getgroups is implemented in a standard autoconf macro AC_TYPE_GETGROUPS. There is a comment in the code for that macro that talks about how it will use int when cross compiling on old systems that lack prototypes. That explanation doesn't make sense for Mac OS X, all versions of which are new enough to have prototypes, so I think some other failure, which the config.log should tell us about, is confusing this check into giving the wrong answer.

Any idea how to fix it? The failure still there (installed 10.6.8 Server on a different machine, Macports from scratch, same build error).

comment:9 Changed 2 years ago by barracuda156

comment:10 in reply to:  8 ; Changed 2 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to barracuda156:

Any idea how to fix it?

I was hoping to see some kind of compiler error or warning in the config.log relating to the "checking type of array argument to getgroups" test in the config.log, but I don't see anything like that in there, so no, I don't have any ideas.

As I said earlier, the check for getgroups is implemented in a standard autoconf macro AC_TYPE_GETGROUPS, so if it's giving the wrong value, then that's where the fix is needed (in autoconf); it's not something specific to rsync.

We can of course apply a band-aid over the problem in MacPorts by forcing the correct value of this check in the rsync port, but any other ports that use the same check would be affected as well and would then need that same band-aid.

comment:11 in reply to:  10 Changed 2 years ago by barracuda156

Replying to ryandesign:

Replying to barracuda156:

Any idea how to fix it?

I was hoping to see some kind of compiler error or warning in the config.log relating to the "checking type of array argument to getgroups" test in the config.log, but I don't see anything like that in there, so no, I don't have any ideas.

Thank you for checking!

As I said earlier, the check for getgroups is implemented in a standard autoconf macro AC_TYPE_GETGROUPS, so if it's giving the wrong value, then that's where the fix is needed (in autoconf); it's not something specific to rsync.

For w/e reason, rsync 3.2.3 builds fine though. Nothing else changed, I just took an earlier portfile.

comment:12 Changed 2 years ago by barracuda156

Temporary (likely until 3.2.5) solution from upstream: https://github.com/WayneD/rsync/issues/338#issuecomment-1201403133

comment:13 Changed 2 years ago by barracuda156

Resolution: fixed
Status: assignedclosed

In 5a1fbec36fba3b9c35eb265f5eed08bed0ed433f/macports-ports (master):

rsync: fix build on Rosetta
Fixes: #65034

Note: See TracTickets for help on using tickets.