summaryrefslogtreecommitdiffstats
path: root/x11-toolkits
diff options
context:
space:
mode:
authormarcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059>2009-10-03 12:21:46 +0800
committermarcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059>2009-10-03 12:21:46 +0800
commitf7931a96634650aae069dda62981ea09c28c3f30 (patch)
tree2d02ae4b145651a525d95cbacade0fe72bb39415 /x11-toolkits
parent32a7c26f6733bdfce538ac0613fcf463ef00b4d4 (diff)
downloadmarcuscom-ports-f7931a96634650aae069dda62981ea09c28c3f30.tar
marcuscom-ports-f7931a96634650aae069dda62981ea09c28c3f30.tar.gz
marcuscom-ports-f7931a96634650aae069dda62981ea09c28c3f30.tar.bz2
marcuscom-ports-f7931a96634650aae069dda62981ea09c28c3f30.tar.lz
marcuscom-ports-f7931a96634650aae069dda62981ea09c28c3f30.tar.xz
marcuscom-ports-f7931a96634650aae069dda62981ea09c28c3f30.tar.zst
marcuscom-ports-f7931a96634650aae069dda62981ea09c28c3f30.zip
Fix the build on 6.X.
Submitted by: bland git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@13085 df743ca5-7f9a-e211-a948-0013205c9059
Diffstat (limited to 'x11-toolkits')
-rw-r--r--x11-toolkits/pango/Makefile10
-rw-r--r--x11-toolkits/pango/files/extra-patch-gcc188
2 files changed, 196 insertions, 2 deletions
diff --git a/x11-toolkits/pango/Makefile b/x11-toolkits/pango/Makefile
index ee182ec72..9b7a1a5a7 100644
--- a/x11-toolkits/pango/Makefile
+++ b/x11-toolkits/pango/Makefile
@@ -3,7 +3,7 @@
# Whom: Maxim Sobolev <sobomax@FreeBSD.org>
#
# $FreeBSD$
-# $MCom: ports/x11-toolkits/pango/Makefile,v 1.146 2009/09/08 18:25:07 kwm Exp $
+# $MCom: ports/x11-toolkits/pango/Makefile,v 1.147 2009/09/22 00:51:22 avl Exp $
#
PORTNAME= pango
@@ -60,6 +60,12 @@ CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include/freetype2 \
PLIST_SUB+= X11=""
.endif
-.include <bsd.port.mk>
+.include <bsd.port.pre.mk>
+
+.if ${OSVERSION} < 700000
+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-gcc
+.endif
+
+.include <bsd.port.post.mk>
.endif
diff --git a/x11-toolkits/pango/files/extra-patch-gcc b/x11-toolkits/pango/files/extra-patch-gcc
new file mode 100644
index 000000000..d8a1cc957
--- /dev/null
+++ b/x11-toolkits/pango/files/extra-patch-gcc
@@ -0,0 +1,188 @@
+diff -ru ../pango-1.26.0/pango/opentype/hb-open-type-private.hh ./pango/opentype/hb-open-type-private.hh
+--- pango/opentype/hb-open-type-private.hh 2009-08-28 17:15:12.000000000 -0400
++++ pango/opentype/hb-open-type-private.hh 2009-09-30 05:14:13.000000000 -0400
+@@ -508,10 +508,10 @@
+ inline const Type& operator [] (unsigned int i) const
+ {
+ if (HB_UNLIKELY (i >= len)) return Null(Type);
+- return array[i];
++ return _array(i);
+ }
+ inline unsigned int get_size () const
+- { return sizeof (len) + len * sizeof (array[0]); }
++ { return sizeof (len) + len * sizeof (Type); }
+
+ inline bool sanitize (SANITIZE_ARG_DEF) {
+ TRACE_SANITIZE ();
+@@ -523,7 +523,7 @@
+ return true;
+ unsigned int count = len;
+ for (unsigned int i = 0; i < count; i++)
+- if (!SANITIZE (array[i]))
++ if (!SANITIZE (_array(i)))
+ return false;
+ return true;
+ }
+@@ -532,7 +532,7 @@
+ if (!SANITIZE_GET_SIZE()) return false;
+ unsigned int count = len;
+ for (unsigned int i = 0; i < count; i++)
+- if (!array[i].sanitize (SANITIZE_ARG, base))
++ if (!_array(i).sanitize (SANITIZE_ARG, base))
+ return false;
+ return true;
+ }
+@@ -541,7 +541,7 @@
+ if (!SANITIZE_GET_SIZE()) return false;
+ unsigned int count = len;
+ for (unsigned int i = 0; i < count; i++)
+- if (!array[i].sanitize (SANITIZE_ARG, base, base2))
++ if (!_array(i).sanitize (SANITIZE_ARG, base, base2))
+ return false;
+ return true;
+ }
+@@ -550,15 +550,21 @@
+ if (!SANITIZE_GET_SIZE()) return false;
+ unsigned int count = len;
+ for (unsigned int i = 0; i < count; i++)
+- if (!array[i].sanitize (SANITIZE_ARG, base, user_data))
++ if (!_array(i).sanitize (SANITIZE_ARG, base, user_data))
+ return false;
+ return true;
+ }
+
+ LenType len;
+- Type array[];
++ //Type array[];
++ Type& _array(unsigned int i) const
++ {
++ return *(Type*)(&len + 1);
++ }
+ };
+
++#undef array
++
+ /* An array with a USHORT number of elements. */
+ template <typename Type>
+ struct ArrayOf : GenericArrayOf<USHORT, Type> {};
+@@ -586,7 +592,7 @@
+ inline const Type& operator [] (unsigned int i) const
+ {
+ if (HB_UNLIKELY (i >= this->len)) return Null(Type);
+- return this+this->array[i];
++ return this+this->_array(i);
+ }
+
+ inline bool sanitize (SANITIZE_ARG_DEF) {
+diff -ru ../pango-1.26.0/pango/opentype/hb-ot-layout-common-private.hh ./pango/opentype/hb-ot-layout-common-private.hh
+--- ../pango-1.26.0/pango/opentype/hb-ot-layout-common-private.hh 2009-08-28 17:15:12.000000000 -0400
++++ ./pango/opentype/hb-ot-layout-common-private.hh 2009-09-30 05:15:25.000000000 -0400
+@@ -67,14 +67,14 @@
+ inline const Tag& get_tag (unsigned int i) const
+ {
+ if (HB_UNLIKELY (i >= this->len)) return Null(Tag);
+- return this->array[i].tag;
++ return this->_array(i).tag;
+ }
+ inline bool get_tags (unsigned int *record_count /* IN/OUT */,
+ hb_tag_t *record_tags /* OUT */) const
+ {
+ unsigned int count = MIN (this->len, *record_count);
+ for (unsigned int i = 0; i < count; i++)
+- record_tags[i] = this->array[i].tag;
++ record_tags[i] = this->_array(i).tag;
+
+ *record_count = this->len;
+ return !!this->len;
+@@ -86,7 +86,7 @@
+ unsigned int count = this->len;
+ for (unsigned int i = 0; i < count; i++)
+ {
+- if (t == this->array[i].tag)
++ if (t == this->_array(i).tag)
+ {
+ if (index) *index = i;
+ return true;
+@@ -116,14 +116,14 @@
+ {
+ if (HB_UNLIKELY (i >= this->len))
+ return NO_INDEX;
+- return this->array[i];
++ return this->_array(i);
+ }
+ inline bool get_indexes (unsigned int *_count /* IN/OUT */,
+ unsigned int *_indexes /* OUT */) const
+ {
+ unsigned int count = MIN (this->len, *_count);
+ for (unsigned int i = 0; i < count; i++)
+- _indexes[i] = this->array[i];
++ _indexes[i] = this->_array(i);
+
+ *_count = this->len;
+ return !!this->len;
+diff -ru ../pango-1.26.0/pango/opentype/hb-ot-layout-gsub-private.hh ./pango/opentype/hb-ot-layout-gsub-private.hh
+--- ../pango-1.26.0/pango/opentype/hb-ot-layout-gsub-private.hh 2009-08-28 17:16:36.000000000 -0400
++++ ./pango/opentype/hb-ot-layout-gsub-private.hh 2009-09-30 05:28:53.000000000 -0400
+@@ -160,7 +160,7 @@
+ return false;
+
+ _hb_buffer_add_output_glyphs (buffer, 1,
+- substitute.len, (const uint16_t *) substitute.array,
++ substitute.len, (const uint16_t *) &substitute._array(0),
+ 0xFFFF, 0xFFFF);
+
+ /* This is a guess only ... */
+@@ -285,7 +285,7 @@
+ if (context->face->altfunc)
+ alt_index = (context->face->altfunc)(context->layout, buffer,
+ buffer->out_pos, glyph_id,
+- alt_set.len, alt_set.array);
++ alt_set.len, alt_set._array(0));
+ */
+
+ if (HB_UNLIKELY (alt_index >= alt_set.len))
+@@ -601,10 +601,10 @@
+ const ArrayOf<GlyphID> &substitute = CONST_NEXT (ArrayOf<GlyphID>, lookahead);
+
+ if (match_backtrack (APPLY_ARG,
+- backtrack.len, (USHORT *) backtrack.array,
++ backtrack.len, (USHORT *) &backtrack._array(0),
+ match_coverage, DECONST_CHARP(this)) &&
+ match_lookahead (APPLY_ARG,
+- lookahead.len, (USHORT *) lookahead.array,
++ lookahead.len, (USHORT *) &lookahead._array(0),
+ match_coverage, DECONST_CHARP(this),
+ 1))
+ {
+diff -ru ../pango-1.26.0/pango/opentype/hb-ot-layout-gsubgpos-private.hh ./pango/opentype/hb-ot-layout-gsubgpos-private.hh
+--- ../pango-1.26.0/pango/opentype/hb-ot-layout-gsubgpos-private.hh 2009-09-21 13:58:54.000000000 -0400
++++ ./pango/opentype/hb-ot-layout-gsubgpos-private.hh 2009-09-30 05:33:03.000000000 -0400
+@@ -572,10 +572,10 @@
+ const ArrayOf<USHORT> &lookahead = CONST_NEXT (ArrayOf<USHORT>, input);
+ const ArrayOf<LookupRecord> &lookup = CONST_NEXT (ArrayOf<LookupRecord>, lookahead);
+ return chain_context_lookup (APPLY_ARG,
+- backtrack.len, backtrack.array,
++ backtrack.len, &backtrack._array(0),
+ input.len, input.array,
+- lookahead.len, lookahead.array,
+- lookup.len, lookup.array,
++ lookahead.len, &lookahead._array(0),
++ lookup.len, &lookup._array(0),
+ lookup_context);
+ return false;
+ }
+@@ -754,10 +754,10 @@
+ {DECONST_CHARP(this), DECONST_CHARP(this), DECONST_CHARP(this)}
+ };
+ return chain_context_lookup (APPLY_ARG,
+- backtrack.len, (USHORT *) backtrack.array,
+- input.len, (USHORT *) input.array + 1,
+- lookahead.len, (USHORT *) lookahead.array,
+- lookup.len, lookup.array,
++ backtrack.len, (USHORT *) &backtrack._array(0),
++ input.len, (USHORT *) &input._array(1),
++ lookahead.len, (USHORT *) &lookahead._array(0),
++ lookup.len, &lookup._array(0),
+ lookup_context);
+ return false;
+ }