Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 Jan 2008 00:57:13 -0600
From:      "Rick C. Petty" <rick-freebsd@kiwi-computer.com>
To:        freebsd-emulation@freebsd.org
Cc:        infofarmer@FreeBSD.org
Subject:   is graphics/linux-cairo broken?
Message-ID:  <20080102065713.GA67906@keira.kiwi-computer.com>

next in thread | raw e-mail | index | archive | help
Like many people, I upgrade my ports by building everything in a staging
area using chroot(1).  For the last few days I've had a terrible time
with this process because I've been bumping into a problem with the
graphics/linux-cairo port (there may be others??).

I'm running 6.3-PRERELEASE and I've csup'd my world/kernel and staging area
multiple times today.  Here's the output when I hit linux-cairo:

===>  Cleaning for linux-cairo-1.0.2
===>  Vulnerability check disabled, database not found
===>  Extracting for linux-cairo-1.0.2
=> MD5 Checksum OK for rpm/i386/fedora/4/cairo-1.0.2-2.gst.1.4.i386.rpm.
=> SHA256 Checksum OK for rpm/i386/fedora/4/cairo-1.0.2-2.gst.1.4.i386.rpm.
===>   linux-cairo-1.0.2 depends on file: /usr/local/bin/rpm2cpio - found
===>  Patching for linux-cairo-1.0.2
===>  Configuring for linux-cairo-1.0.2
===>  Installing for linux-cairo-1.0.2
===>   Generating temporary packing list
===>  Checking if graphics/linux-cairo already installed
cd /usr/ports/graphics/linux-cairo/work && /usr/bin/find * -type d -exec /bin/mkdir -p "/compat/linux/{}" \;
cd /usr/ports/graphics/linux-cairo/work && /usr/bin/find * ! -type d | /usr/bin/cpio -pm -R root:wheel /compat/linux
1523 blocks
===>   Running ldconfig
/sbin/ldconfig -m /compat/linux/lib
/libexec/ld-elf.so.1: Undefined symbol "__stdoutp" referenced from COPY relocation in /bin/sh
*** Error code 1

Stop in /usr/ports/graphics/linux-cairo.

===>>> Installation of new port failed
===>>> Aborting update
/libexec/ld-elf.so.1: Undefined symbol "__stdoutp" referenced from COPY relocation in ps

/libexec/ld-elf.so.1: Undefined symbol "__stdinp" referenced from COPY relocation in rm
/libexec/ld-elf.so.1: Undefined symbol "__stdinp" referenced from COPY relocation in rm


~~~~~~~~~~

Obviously any further commands break with similar undefined symbols.  The
problem is that FreeBSD's ldconfig is being run (instead of Linux's) to
merge /compat/linux/lib in with the FreeBSD bits.  Since I was thankfully
running in a chroot, I can just remove the /var/run/ld-elf.so.hints file
but I also have to remove /compat/linux/lib from my ldconfig directories.
The FreeBSD libs shouldn't be mixing with the Linux libs, right?

My guess is linux-cairo shouldn't be setting USE_LDCONFIG or it should
redefine LDCONFIG to use ${LINUXBASE}/sbin/ldconfig and perhaps run it via
chroot.  If I'm correct, this isn't the only port which is broken.  A
bunch of other linux ports do something similar and in different ways (see
"grep -i ldconfig /usr/ports/*/linux*/Makefile").

How come I'm the first to be hosed by this?  Or maybe I'm missing something
obvious?

-- Rick C. Petty



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