Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 8 Jun 2010 14:31:49 -0500 (CDT)
From:      Nathan Whitehorn <nwhitehorn@FreeBSD.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/147699: [patch] powerpc64 support for x11-toolkits/gtk20
Message-ID:  <201006081931.o58JVnxA032750@anacreon.physics.wisc.edu>
Resent-Message-ID: <201006081940.o58Je01C030223@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         147699
>Category:       ports
>Synopsis:       [patch] powerpc64 support for x11-toolkits/gtk20
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jun 08 19:40:00 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Nathan Whitehorn
>Release:        FreeBSD 9.0-CURRENT powerpc64
>Organization:
University of Wisconsin
>Environment:
System: FreeBSD anacreon.physics.wisc.edu 9.0-CURRENT FreeBSD 9.0-CURRENT #3 r208870:208872: Sun Jun 6 09:33:03 CDT 2010 root@anacreon.physics.wisc.edu:/usr/obj/scratch/src/sys/ANACREON powerpc64

>Description:
	Due to a flaw in binutils 2.15, function names can conflict with
ELF assembler directives on PPC64 systems. As a result, it is not possible
to have functions named things like 'text' and 'data', one of which GTK 2.0
has.
>How-To-Repeat:
	Build GTK 2 on powerpc64.
>Fix:
	This patches renames a private function in gtkbuilderparser.c from
text to XXXtext on powerpc64 systems to work around the ABI problem with
binutils.

--- gtk20-ppc64.diff begins here ---
--- Makefile.bak	2010-06-08 14:13:17.000000000 -0500
+++ Makefile	2010-06-08 14:15:03.000000000 -0500
@@ -61,6 +61,14 @@
 CONFIGURE_ARGS+=	--enable-debug=yes
 .endif
 
+.if !defined(ARCH)
+ARCH!=  /usr/bin/uname -p
+.endif
+
+.if ${ARCH} == powerpc64
+EXTRA_PATCHES=  ${.CURDIR}/files/extra-arch-powerpc64
+.endif
+
 .include <bsd.port.pre.mk>
 
 .if (defined(WITH_CUPS) || exists(${LOCALBASE}/lib/libcups.so)) && \
--- /dev/null	2010-06-08 14:26:55.000000000 -0500
+++ files/extra-arch-powerpc64	2010-06-08 14:15:47.000000000 -0500
@@ -0,0 +1,20 @@
+--- gtk/gtkbuilderparser.c.dist	2010-06-08 14:11:06.000000000 -0500
++++ gtk/gtkbuilderparser.c	2010-06-08 14:11:33.000000000 -0500
+@@ -1051,7 +1051,7 @@
+ /* Called for character data */
+ /* text is not nul-terminated */
+ static void
+-text (GMarkupParseContext *context,
++XXXtext (GMarkupParseContext *context,
+       const gchar         *text,
+       gsize                text_len,
+       gpointer             user_data,
+@@ -1106,7 +1106,7 @@
+ static const GMarkupParser parser = {
+   start_element,
+   end_element,
+-  text,
++  XXXtext,
+   NULL,
+   NULL
+ };
--- gtk20-ppc64.diff ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201006081931.o58JVnxA032750>