aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authoranders <anders@FreeBSD.org>2002-04-22 06:01:17 +0800
committeranders <anders@FreeBSD.org>2002-04-22 06:01:17 +0800
commitf81aa7a89b5138aa2977e3647d82457616b2dfcf (patch)
tree953dfbd54b2a1f86031a91f9f298332d5ff147e4 /net
parent830c01260898bf8cb8472913e3c88afb86631e1b (diff)
downloadfreebsd-ports-gnome-f81aa7a89b5138aa2977e3647d82457616b2dfcf.tar.gz
freebsd-ports-gnome-f81aa7a89b5138aa2977e3647d82457616b2dfcf.tar.zst
freebsd-ports-gnome-f81aa7a89b5138aa2977e3647d82457616b2dfcf.zip
Revoke previous changes to fix -z (compress) option in favor of a GCC
work-around for the zlib that comes with rsync. Obtained from -current. (Yes, rsync insists on using a home-rolled zlib.) PR: 36998 Approved by: maintainer
Diffstat (limited to 'net')
-rw-r--r--net/rsync/Makefile5
-rw-r--r--net/rsync/files/patch-infcodes.c21
2 files changed, 21 insertions, 5 deletions
diff --git a/net/rsync/Makefile b/net/rsync/Makefile
index 2802acb92327..6b3a362f196d 100644
--- a/net/rsync/Makefile
+++ b/net/rsync/Makefile
@@ -19,11 +19,6 @@ MAINTAINER= obraun@informatik.unibw-muenchen.de
GNU_CONFIGURE= yes
-OPTIMIZATION!= ${ECHO} "${CFLAGS}" | grep '\-O[2-6]' || true
-.if empty(OPTIMIZATION)
-CFLAGS+= -O2
-.endif
-
.include <bsd.port.pre.mk>
.if ${OSVERSION} >= 400016
diff --git a/net/rsync/files/patch-infcodes.c b/net/rsync/files/patch-infcodes.c
new file mode 100644
index 000000000000..0dd0d99f67d7
--- /dev/null
+++ b/net/rsync/files/patch-infcodes.c
@@ -0,0 +1,21 @@
+--- zlib/infcodes.c.orig Tue Mar 12 02:14:58 2002
++++ zlib/infcodes.c Sun Apr 21 21:19:46 2002
+@@ -197,8 +197,18 @@
+ c->mode = COPY;
+ case COPY: /* o: copying bytes in window, waiting for space */
+ f = q - c->sub.copy.dist;
++#ifdef __FreeBSD__
++ {
++ /* Work-around for a FreeBSD gcc bug. */
++ volatile inflate_blocks_statef *s1 = s;
++
++ while (f < s1->window) /* modulo window size-"while" instead */
++ f += s1->end - s1->window; /* of "if" handles invalid distances */
++ }
++#else
+ while (f < s->window) /* modulo window size-"while" instead */
+ f += s->end - s->window; /* of "if" handles invalid distances */
++#endif
+ while (c->len)
+ {
+ NEEDOUT