Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 51034 - /usr/lib32 link missing; some 32-bit apps need it
Summary: /usr/lib32 link missing; some 32-bit apps need it
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: AMD64 Project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-05-14 05:15 UTC by Bruno T. C. de Oliveira
Modified: 2004-05-15 02:17 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Bruno T. C. de Oliveira 2004-05-14 05:15:13 UTC
After emerging emul-linux-x86-baselibs emul-linux-x86-xlibs and emul-linux-x86-gtklibs, I noticed an inconsistency: /etc/ld.so.conf contains:

/usr/lib32
/usr/lib32/gcc-lib/i686-pc-linux-gnu/3.3.2

However, there is no /usr/lib32! I think it should be a link to /emul/linux/x86/usr/lib. That would make it possible for ld to find the 32-bit versions of libstdc++, libgcc_s and other gcc libraries required to run certain binaries (e.g. firefox). Probably emul-linux-x86-baselibs should be the ebuild that sets up the link.

By the way, if this link is added it has the fortunate collateral effect of resolving bug #50691 in (I believe) an elegant way.
Comment 1 Travis Tilley (RETIRED) gentoo-dev 2004-05-14 12:41:30 UTC
not a toolchain bug....

anyways, what versions are you using? 1.0 or 1.1?
Comment 2 Bruno T. C. de Oliveira 2004-05-14 23:14:31 UTC
sorry, forgot to mention: I'm using 1.1-r1

Here is the content of my emul-linux-x86-baselibs-1.1-r1.ebuild file. What is really funny is that the command to create the link is there on the last line.    tried reemerging emul-linux-x86-baselibs, but had no success. At that point in the execution, the value of the variable D is /var/tmp/portage/emul-linux-x86-baselibs-1.1-r1/image/

Perhaps the link is created in /var/tmp/portage/..../image/usr/lib32, but is not getting transferred to /usr/lib32 (I really don't know how that part of portage works)...

# Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /home/cvsroot/gentoo-x86/app-emulation/emul-linux-x86-baselibs/emul-linux-x86-baselibs-1.1-r1.ebuild,v 1.1 2004/05/03 12:31:00 kugelfang Exp $

S=${WORKDIR}/${P}
DESCRIPTION="Base libraries for emulation of 32bit x86 on amd64"
SRC_URI="mirror://gentoo/distfiles/emul-linux-x86-baselibs-1.1.tar.bz2"
HOMEPAGE=""
                                                                                
SLOT="0"
LICENSE="GPL-2"
KEYWORDS="~amd64"
                                                                                
DEPEND="virtual/glibc"
                                                                                
src_unpack () {
    unpack ${A}
}
                                                                                
src_install() {
    cd ${WORKDIR}
    mkdir -p ${D}/emul/linux/x86
    mkdir -p ${D}/emul/linux/x86/lib/dev-state
    mkdir -p ${D}/emul/linux/x86/lib/security/pam_filter
    mkdir -p ${D}/emul/linux/x86/lib/rcscripts/sh
    mkdir -p ${D}/emul/linux/x86/lib/rcscripts/awk
    mkdir -p ${D}/emul/linux/x86/usr/lib/misc
    mkdir -p ${D}/emul/linux/x86/usr/lib/awk
    mkdir -p ${D}/emul/linux/x86/usr/lib/gcc-config
    mkdir -p ${D}/emul/linux/x86/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2
    mkdir -p ${D}/emul/linux/x86/usr/lib/gettext
    mkdir -p ${D}/emul/linux/x86/usr/lib/gconv
    mkdir -p ${D}/emul/linux/x86/usr/lib/nsbrowser/plugins
    mkdir -p ${D}/emul/linux/x86/usr/lib/glib/include
    mkdir -p ${D}/emul/linux/x86/usr/lib/pkgconfig
    mkdir -p ${D}/etc/env.d
    # Fixes BUG #49678
    mkdir -p ${D}/lib
    mv ${WORKDIR}/etc/env.d/75emul-linux-x86-baselibs ${D}/etc/env.d/
    rm -Rf ${WORKDIR}/etc
    cp -RPvf ${WORKDIR}/* ${D}/emul/linux/x86/
                                                                                
    # Fixes BUG #47817
    cd ${D}/emul/linux/x86/usr/lib
    sed -e "s/\/lib\//\/lib32\//g" libc.so > libc.so.new
    mv libc.so.new libc.so
                                                                                
    ln -sf /emul/linux/x86/lib/ld-linux.so.2 ${D}/lib/ld-linux.so.2
    ln -sf /emul/linux/x86/lib ${D}/lib32
    ln -sf /emul/linux/x86/usr/lib ${D}/usr/lib32
}

-------------------------------------

For completeness:

# emerge info
Portage 2.0.50-r6 (default-amd64-2004.0, gcc-3.3.3, glibc-2.3.2-r9, 2.6.5-gentoo-r1)
=================================================================
System uname: 2.6.5-gentoo-r1 x86_64 12
Gentoo Base System version 1.4.3.13
Autoconf: sys-devel/autoconf-2.59-r3
Automake: sys-devel/automake-1.7.8
ACCEPT_KEYWORDS="amd64"
AUTOCLEAN="yes"
CFLAGS="-O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
COMPILER="gcc3"
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d"
CXXFLAGS="-O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache sandbox"
GENTOO_MIRRORS="http://gentoo.oregonstate.edu http://distro.ibiblio.org/pub/Linux/distributions/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X amd64 apm arts avi berkdb crypt encode esd foomaticdb gdbm gif gnome gpm gtk gtk2 imlib jpeg kde libg++ libwww mikmod motif mozilla mpeg ncurses nls nogcj oggvorbis opengl oss pam pdflib perl png python qt quicktime readline sdl slang spell ssl tcpd truetype xml2 xmms xv zlib"


Comment 3 Bruno T. C. de Oliveira 2004-05-14 23:16:06 UTC
by the way, I used:

# ACCEPT_KEYWORDS="~amd64" emerge emul-linux-x86-baselibs

(otherwise i'd get version 1.0, not 1.1-r1)
Comment 4 Danny van Dyk (RETIRED) gentoo-dev 2004-05-15 02:17:08 UTC
Fixed. Same as missing link to ld-linux.so, i forgot to create "usr/" inside ${D}... Version bump to 1.1-r2