NetBSD Problem Report #45329
From www@NetBSD.org Mon Sep 5 07:38:22 2011
Return-Path: <www@NetBSD.org>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
by www.NetBSD.org (Postfix) with ESMTP id AA14663C7A8
for <gnats-bugs@gnats.NetBSD.org>; Mon, 5 Sep 2011 07:38:22 +0000 (UTC)
Message-Id: <20110905073822.25DB763C789@www.NetBSD.org>
Date: Mon, 5 Sep 2011 07:38:22 +0000 (UTC)
From: joern.clausen@uni-bielefeld.de
Reply-To: joernc@gmail.com
To: gnats-bugs@NetBSD.org
Subject: x11/pixman not compiling on Solaris/sparc
X-Send-Pr-Version: www-1.0
>Number: 45329
>Category: pkg
>Synopsis: x11/pixman not compiling on Solaris/sparc
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: solaris-pkg-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Sep 05 07:40:00 +0000 2011
>Last-Modified: Tue Jan 29 06:46:40 +0000 2019
>Originator: Jörn Clausen
>Release:
>Organization:
University of Bielefeld
>Environment:
>Description:
Compiling x11/pixman on Solaris/sparc with lang/gcc34 fails with
CCLD libpixman-1.la
Undefined first referenced
symbol in file
pixman_fill_mmx .libs/libpixman-1.so.0.22.2.exp
ld: warning: Symbol referencing errors
The package compiles using the same toolchain on Solaris/i86. And it compiles when compiling outside pkgsrc on sparc, but using the same tools. So the problem is somewhere in the pkgsrc files, but I can't pinpoint it.
I can provide config.log and output of "make" for all three cases on request.
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
From: "OBATA Akio" <obache@netbsd.org>
To: gnats-bugs@netbsd.org
Cc:
Subject: Re: pkg/45329: x11/pixman not compiling on Solaris/sparc
Date: Mon, 05 Sep 2011 16:55:34 +0900
On Mon, 05 Sep 2011 16:40:00 +0900, <joern.clausen@uni-bielefeld.de> wrote:
>> Description:
> Compiling x11/pixman on Solaris/sparc with lang/gcc34 fails with
>
> CCLD libpixman-1.la
> Undefined first referenced
> symbol in file
> pixman_fill_mmx .libs/libpixman-1.so.0.22.2.exp
> ld: warning: Symbol referencing errors
>
> The package compiles using the same toolchain on Solaris/i86. And it compiles when compiling outside pkgsrc on sparc, but using the same tools. So the problem is somewhere in the pkgsrc files, but I can't pinpoint it.
It probably came from x11/pixman/files/pixman.sym.
I feel that mmx option should be introduced and add pixman_fill_mmx to pixman.sym conditionally.
--
OBATA Akio / obache@NetBSD.org
From: =?ISO-8859-1?Q?J=F6rn_Clausen?= <joern.clausen@uni-bielefeld.de>
To: gnats-bugs@NetBSD.org
Cc: OBATA Akio <obache@NetBSD.org>, pkg-manager@NetBSD.org,
gnats-admin@NetBSD.org, pkgsrc-bugs@NetBSD.org
Subject: Re: pkg/45329: x11/pixman not compiling on Solaris/sparc
Date: Mon, 05 Sep 2011 16:37:16 +0200
On 09/05/11 10:00 AM, OBATA Akio wrote:
> It probably came from x11/pixman/files/pixman.sym.
>
> I feel that mmx option should be introduced and add pixman_fill_mmx to pixman.sym conditionally.
What platform/compiler (still?) needs pixman.sym? I simply removed
patch-aa, patch-ab and all references to pixman.sym from Makefile, and
the package compiled both on Sparc and i86.
--
Jörn Clausen joern.clausen@uni-bielefeld.de
Hochschulrechenzentrum http://www.uni-bielefeld.de/hrz/
Universität Bielefeld
Responsible-Changed-From-To: pkg-manager->solaris-pkg-people
Responsible-Changed-By: obache@NetBSD.org
Responsible-Changed-When: Wed, 12 Oct 2011 11:33:58 +0000
Responsible-Changed-Why:
Problem on Solaris.
From: Tim Zingelman <tez@netbsd.org>
To: gnats-bugs@netbsd.org
Cc:
Subject: Re: pkg/45329 (x11/pixman not compiling on Solaris/sparc)
Date: Wed, 12 Oct 2011 08:24:51 -0500
The pixman.sym is needed because pkgsrc's patch-ad removes the check
for and use of -fvisibility=hidden so that it can be used with gcc<4.
I can't see how you compiled with gcc34 outside pkgsrc without that
patch included.
From: =?ISO-8859-1?Q?J=F6rn_Clausen?= <joern.clausen@uni-bielefeld.de>
To: gnats-bugs@NetBSD.org
Cc: Tim Zingelman <tez@NetBSD.org>, solaris-pkg-people@NetBSD.org,
gnats-admin@NetBSD.org, pkgsrc-bugs@NetBSD.org
Subject: Re: pkg/45329 (x11/pixman not compiling on Solaris/sparc)
Date: Wed, 12 Oct 2011 15:57:27 +0200
Just checked again: At the moment I have
--- Makefile 2011/09/05 08:59:48 1.1
+++ Makefile 2011/09/05 09:10:49
@@ -36,11 +36,7 @@
###
### Please, do not forget to ensure the currency of this file!
-MAKE_ENV+= PIXMAN_SYMFILE=${PIXMAN_SYMFILE:Q}
-PIXMAN_SYMFILE= ${WRKDIR}/pixman.sym
-
post-extract:
- ${CP} ${FILESDIR}/pixman.sym ${WRKDIR}
${CP} ${FILESDIR}/solaris-hwcap.mapfile ${WRKSRC}/pixman
.include "../../mk/bsd.pkg.mk"
and I removed the entries for patch-aa and patch-ab from distfiles, i.e.
I get
=> Applying pkgsrc patches for pixman-0.22.2nb1
**************************************
Ignoring patch file /pkgsrc/source/pkgsrc/x11/pixman/patches/patch-aa:
no checksum found
**************************************
**************************************
Ignoring patch file /pkgsrc/source/pkgsrc/x11/pixman/patches/patch-ab:
no checksum found
**************************************
===> Creating toolchain wrappers for pixman-0.22.2nb1
The package compiles both on i86 and sparc with gcc34. And it seems to
work, at least depending programs like emacs or gnuplot work fine.
And I don't know why I was able to compile the package outside pkgsrc,
but I still have the files:
From config.log:
hostname = pkgsrc-10sparc
uname -m = sun4u
uname -r = 5.10
uname -s = SunOS
uname -v = Generic_142900-03
[...]
configure:21770: checking whether the compiler supports -fvisibility=hidden
configure:21797: gcc -o conftest -Werror -fvisibility=hidden
-I/usr/pkgsrc/head/include conftest.c >&5
cc1: error: unrecognized command line option "-fvisibility=hidden"
configure:21804: $? = 1
configure: failed program was:
| #if defined(__GNUC__) && (__GNUC__ >= 4)
| #ifdef _WIN32
| #error Have -fvisibility but it is ignored and generates a warning
| #endif
| #else
| error Need GCC 4.0 for visibility
| #endif
|
| int main(int c, char **v) { (void)c; (void)v; return 0; }
|
configure:21842: result: no
Yet
$ ldd ./pixman/.libs/libpixman-1.so
libpthread.so.1 => /lib/libpthread.so.1
libm.so.2 => /lib/libm.so.2
libc.so.1 => /lib/libc.so.1
libgcc_s.so.1 =>
/usr/pkgsrc/20110809/gcc34/lib/libgcc_s.so.1
/platform/SUNW,Sun-Fire-880/lib/libc_psr.so.1
--
Jörn Clausen joern.clausen@uni-bielefeld.de
Hochschulrechenzentrum http://www.uni-bielefeld.de/hrz/
Universität Bielefeld
From: Tim Zingelman <tez@netbsd.org>
To: gnats-bugs@netbsd.org
Cc:
Subject: Re: pkg/45329 (x11/pixman not compiling on Solaris/sparc)
Date: Wed, 12 Oct 2011 10:03:09 -0500
I guess the danger of not having -fvisibility=hidden and not using
pixman.sym is that ALL symbols in the oixman code will be exposed in
the shared library, and this may result in name collisions. The gcc4+
man page says of this feature: Using this feature can very
substantially improve linking and load times of shared object
libraries, produce more optimized code, provide near-perfect API
export and prevent symbol clashes.
In this case I have no idea how important or not this is, but it is
probably not a good idea to rip out the support.
Either the pixman_fill_mmx needs to be conditional in pixman.sym or a
non-mmx processor alternate pixman.sym is needed.
Not sure the best way to do that... it also looks like configure
disables MMX for gcc<3.4 so anybody using old gcc will also fail due
to pixman_fill_mmx in pixman.sym.
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.43 2018/01/16 07:36:43 maya Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2017
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.