Subject: pkg/31545: graphics/libpixman gcc3.4.3 solaris10
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: Gilles Dauphin <dauphin@enst.fr>
List: pkgsrc-bugs
Date: 10/10/2005 13:22:01
>Number:         31545
>Category:       pkg
>Synopsis:       graphics/libpixman gcc3.4.3 solaris10
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Oct 10 13:22:00 +0000 2005
>Originator:     Gilles Dauphin
>Release:        SunOS 5.10 i86pc
>Organization:
ENST 
>Environment:


System: SunOS bi.enst.fr 5.10 Generic i86pc


>Description:


gcc -shared -Wl,-h -Wl,libpixman.so.1 -o .libs/libpixman.so.1.0.0  .libs/pixregion.o .libs/ic.o .libs/icblt.o .libs/icbltone.o .libs/iccolor.o .libs/iccompose.o .libs/icformat.o .libs/icimage.o .libs/icpixels.o .libs/icrect.o .libs/icstipple.o .libs/ictrap.o .libs/ictransform.o .libs/ictri.o .libs/icutil.o .libs/fbedge.o .libs/fbtrap.o .libs/renderedge.o  -L/usr/pkgsrc/graphics/libpixman/work/.buildlink/lib -lc  -Wl,-R/usr/pkg/lib
ld: fatal: relocation error: R_386_GOTOFF: file .libs/ic.o: symbol pixman_compositeGeneral: relocation must bind locally
collect2: ld returned 1 exit status
*** Error code 1

Stop.
bmake: stopped in /usr/pkgsrc/graphics/libpixman/work/libpixman-0.1.6/src
*** Error code 1



>How-To-Repeat:


bmake in libpixman


>Fix:


--- src/slim_internal.h.orig    Wed Mar  2 16:43:33 2005
+++ src/slim_internal.h Mon Oct 10 15:12:02 2005
@@ -47,7 +47,7 @@
 /* ??? Not marked with "slim" because that makes it look too much
    like the function name instead of just an attribute.  */
 
-#if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(__ELF__)
+#if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(__ELF__) && !defined(__sun__)
 #define pixman_private __attribute__((__visibility__("hidden")))
 #else
 #define pixman_private
@@ -77,7 +77,7 @@
    the C symbol "EXT_foo", which is renamed to "foo" at the assembly
    level.  */
 
-#if __GNUC__ >= 3 && defined(__ELF__)
+#if __GNUC__ >= 3 && defined(__ELF__) && !defined(__sun__)
 # define slim_hidden_proto(name)       slim_hidden_proto1(name, INT_##name)
 # define slim_hidden_def(name)         slim_hidden_def1(name, INT_##name)
 # define slim_hidden_proto1(name, internal)                            \