[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#231024: libc6-dev: unresolved symbols for -ldl



Package: libc6-dev
Version: 2.3.2.ds1-11
Severity: important

I apologize in advance if I am filing this bug against the wrong
package.  I'm not sure what this should be filed against.

I have an unstable system; I just did "apt-get update" and updated a few
libraries that look unrelated, although this has been happening for a
few weeks.  I am using the following in /etc/apt/sources.list, so I
think I am current with everything:

  deb http://ftp.us.debian.org/debian unstable main non-free


The problem:

I am trying to compile the following program:

---8<--- cftest.c ---8<---
#include <dlfcn.h>

int main ()
{
  dlopen ("", 0);
  return 0;
}
---8<--- cftest.c ---8<---

I get the following failure notices with three different versions of
gcc, but the program builds successfully with a stable system:

~/tmp $ gcc-2.95 -o cftest cftest.c -ldl
/fs/mama/usr/bin/../lib/libdl.so: undefined reference to `_dl_close@GLIBC_2.0'
/fs/mama/usr/bin/../lib/libdl.so: undefined reference to `_dl_addr@GLIBC_2.0'
/fs/mama/usr/bin/../lib/libdl.so: undefined reference to `_dl_open@GLIBC_2.0'
/fs/mama/usr/bin/../lib/libdl.so: undefined reference to `_dl_vsym@GLIBC_2.2'
/fs/mama/usr/bin/../lib/libdl.so: undefined reference to `_dl_sym@GLIBC_2.2'
collect2: ld returned 1 exit status

~/tmp $ gcc-3.0 -o cftest cftest.c -ldl
/usr/lib/gcc-lib/i386-linux/3.0.4/../../../libdl.so: undefined reference to `_dl_close@GLIBC_2.0'
/usr/lib/gcc-lib/i386-linux/3.0.4/../../../libdl.so: undefined reference to `_dl_addr@GLIBC_2.0'
/usr/lib/gcc-lib/i386-linux/3.0.4/../../../libdl.so: undefined reference to `_dl_open@GLIBC_2.0'
/usr/lib/gcc-lib/i386-linux/3.0.4/../../../libdl.so: undefined reference to `_dl_vsym@GLIBC_2.2'
/usr/lib/gcc-lib/i386-linux/3.0.4/../../../libdl.so: undefined reference to `_dl_sym@GLIBC_2.2'
collect2: ld returned 1 exit status

~/tmp $ gcc-3.3 -o cftest cftest.c -ldl
/fs/mama/usr/bin/../lib/gcc-lib/i486-linux/3.3.3/../../../libdl.so: undefined reference to `_dl_close@GLIBC_2.0'
/fs/mama/usr/bin/../lib/gcc-lib/i486-linux/3.3.3/../../../libdl.so: undefined reference to `_dl_addr@GLIBC_2.0'
/fs/mama/usr/bin/../lib/gcc-lib/i486-linux/3.3.3/../../../libdl.so: undefined reference to `_dl_open@GLIBC_2.0'
/fs/mama/usr/bin/../lib/gcc-lib/i486-linux/3.3.3/../../../libdl.so: undefined reference to `_dl_vsym@GLIBC_2.2'
/fs/mama/usr/bin/../lib/gcc-lib/i486-linux/3.3.3/../../../libdl.so: undefined reference to `_dl_sym@GLIBC_2.2'
collect2: ld returned 1 exit status


Here is the output of "set" in bash.  I don't think I have any unusual
settings:

---8<---
BASH=/bin/bash
BASH_VERSINFO=([0]="2" [1]="05b" [2]="0" [3]="1" [4]="release" [5]="i386-pc-linux-gnu")
BASH_VERSION='2.05b.0(1)-release'
BSTINPUTS=.:/home/neale/lib/tex//
COLORFGBG='0;15'
COLORTERM=rxvt
COLUMNS=142
CVS_RSH=ssh
DIRSTACK=()
DISPLAY=:0.0
DOMAINNAME=
EDITOR=zile
EUID=593
GROUPS=()
HISTFILE=/home/neale/.bash_history
HISTFILESIZE=500
HISTSIZE=500
HOME=/home/neale
HOSTFILE=/home/neale/.bash_hosts
HOSTNAME=lug
HOSTTYPE=i386
IFS=$' \t\n'
LANG=C
LESS=-sMQcd
LINES=59
LOGNAME=neale
MACHTYPE=i386-pc-linux-gnu
MAIL=/home/neale/Maildir/
MAILCHECK=60
MAILPATH=/home/neale/Maildir/
MANPATH=/home/neale/man:/usr/local/man:/usr/X11R6/man:/usr/share/man:/usr/man
OLDPWD=/home/neale
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
P4CONFIG=/home/neale/src/.p4config
PAGER=/usr/bin/less
PATH=/home/neale/bin:/home/neale/src/user/neale/bin:/usr/local/bin:/usr/local/sbin:/opt/bin:/usr/X11R6/bin:/usr/bin:/usr/sbin:/bin:/sbin:/usr/games
PIPESTATUS=([0]="1")
PPID=2055
PS1='\[\033]0;\h${DOING:+ (}${DOING:-: \W}${DOING:+)}\007\]\h:\w\$ '
PS1_ADDON='\[\033]0;\h${DOING:+ (}${DOING:-: \W}${DOING:+)}\007\]'
PS2='> '
PS4='+ '
PSOPTS=-elf
PS_COLORS=2,0,31%2,65534,35%2,33,35%2,1,35%5,15,7%4,5,36%3,Z,30%6,1024,34
PWD=/home/neale/tmp
PYTHONPATH=/home/neale/lib/python:/home/neale/src/python
PYTHONSTARTUP=/home/neale/src/python/startup.py
SGML_SEARCH_PATH=/usr/lib/sgml/dtd/
SHELL=/bin/bash
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
SHLVL=1
SSH_AGENT_PID=29856
SSH_AUTH_SOCK=/tmp/ssh-uBy29822/agent.29822
TERM=rxvt
TEXINPUTS=.:/home/neale/lib/tex//:/usr/share/texmf//
TOP_COLORS=2,0,31%2,65534,35%2,33,35%2,1,35%5,15,7%4,5,36%3,Z,30%6,1024,34
UID=593
USER=neale
WINDOWID=6291459
XAUTHORITY=/home/neale/.Xauthority
_=set
- () 
{ 
    if [ -z "$1" ]; then
        pushd >/dev/null;
    else
        if [ "$1" == "-" ]; then
            : fall through;
        else
            if [ "${1:0:1}" == "-" ]; then
                pushd +${1:1} >/dev/null;
            else
                if [ -d "$1" ]; then
                    pushd $1 >/dev/null;
                else
                    pushd +$1 >/dev/null;
                fi;
            fi;
        fi;
    fi;
    dirs -v
}
= () 
{ 
    dirs -v
}
_ () 
{ 
    if [ "$1" == "-" ]; then
        : fall through;
    else
        if [ "${1:0:1}" == "-" ]; then
            popd +${1:1} >/dev/null;
        else
            if [ -n "$1" ]; then
                popd $1 >/dev/null;
            else
                popd >/dev/null;
            fi;
        fi;
    fi;
    dirs -v
}
_bash_def_completion () 
{ 
    local h t;
    COMPREPLY=();
    if [[ "$1" == \$\(* ]]; then
        t=${1#??};
        COMPREPLY=($(compgen -c -P '$(' $t));
    fi;
    if [ ${#COMPREPLY[@]} -eq 0 ] && [[ "$1" == \$\{* ]]; then
        t=${1#??};
        COMPREPLY=($(compgen -v -P '${' -S '}' $t));
    fi;
    if [ ${#COMPREPLY[@]} -eq 0 ] && [[ "$1" == \$* ]]; then
        t=${1#?};
        COMPREPLY=($(compgen -v -P '\$' $t ));
    fi;
    if [ ${#COMPREPLY[@]} -eq 0 ] && [[ "$1" == ~* ]] && [[ "$1" != */* ]]; then
        t=${1#?};
        COMPREPLY=($( compgen -u -P '~' $t ));
    fi;
    if [ ${#COMPREPLY[@]} -eq 0 ] && [[ "$1" == *@* ]]; then
        h=${1%%@*};
        t=${1#*@};
        COMPREPLY=($( compgen -A hostname -P "${h}@" $t ));
    fi;
    if [ ${#COMPREPLY[@]} -eq 0 ]; then
        if [[ $1 == *[*?[]* ]]; then
            COMPREPLY=($( compgen -G "$1" ));
        else
            if shopt -q extglob && [[ $1 == *[?*+\!@]\(*\)* ]]; then
                COMPREPLY=($( compgen -G "$1" ));
            fi;
        fi;
    fi;
    if [ ${#COMPREPLY[@]} -eq 0 ]; then
        COMPREPLY=($(compgen -f "$1" ));
    fi
}
_complete_meta_func () 
{ 
    local cur prev cmd;
    COMPREPLY=();
    cmd=$1;
    cur=${COMP_WORDS[COMP_CWORD]};
    prev=${COMP_WORDS[COMP_CWORD-1]};
    _redir_test "$cur" "$prev" && return 0;
    if (( " $COMP_CWORD <= 1 " )) || [[ "$cur" == '-' ]]; then
        case "$cmd" in 
            complete)
                COMPREPLY=(-a -b -c -d -e -f -j -k -v -u -r -p -A -G -W -P -S -X -F -C)
            ;;
            compgen)
                COMPREPLY=(-a -b -c -d -e -f -j -k -v -u -A -G -W -P -S -X -F -C)
            ;;
        esac;
        return 0;
    fi;
    if [[ $prev == -A ]]; then
        COMPREPLY=(alias arrayvar binding builtin command directory disabled enabled export file 'function' helptopic hostname job keyword running setopt shopt signal stopped variable);
        return 0;
    else
        if [[ $prev == -F ]]; then
            COMPREPLY=($( compgen -A function $cur ));
        else
            if [[ $prev == -C ]]; then
                COMPREPLY=($( compgen -c $cur ));
            else
                COMPREPLY=($( compgen -c $cur ));
            fi;
        fi;
    fi;
    return 0
}
_cvs_func () 
{ 
    local cmds cur prev i j pos;
    cmds=(add checkout commit diff history log remove status update);
    COMPREPLY=();
    cur=${COMP_WORDS[COMP_CWORD]};
    prev=${COMP_WORDS[COMP_CWORD-1]};
    for i in ${COMP_WORDS[@]};
    do
        for j in ${cmds[@]};
        do
            if [ "$i" = "$j" ]; then
                COMPREPLY=($(compgen -f $cur));
                return 0;
            fi;
        done;
    done;
    case "$prev" in 
        -T)
            COMPREPLY=($(compgen -d $cur));
            return 0
        ;;
        -z)
            COMPREPLY=(0 1 2 3 4 5 6 7 8 9);
            return 0
        ;;
        -s | -d)
            return 0
        ;;
        *)
            COMPREPLY=($(compgen -W "${cmds[*]}" $cur));
            return 0
        ;;
    esac;
    case "$prev" in 
        -*f)
            COMPREPLY=($(compgen -f $cur ));
            return 0
        ;;
    esac;
    case "$cur" in 
        -)
            COMPREPLY=(-e -f -i -k -n -p -q -r -S -s -t);
            return 0
        ;;
    esac
}
_make_targets () 
{ 
    local mdef makef gcmd cur prev i;
    COMPREPLY=();
    cur=${COMP_WORDS[COMP_CWORD]};
    prev=${COMP_WORDS[COMP_CWORD-1]};
    case "$prev" in 
        -*f)
            COMPREPLY=($(compgen -f $cur ));
            return 0
        ;;
    esac;
    case "$cur" in 
        -)
            COMPREPLY=(-e -f -i -k -n -p -q -r -S -s -t);
            return 0
        ;;
    esac;
    if [ -f GNUmakefile ]; then
        mdef=GNUmakefile;
    else
        if [ -f makefile ]; then
            mdef=makefile;
        else
            if [ -f Makefile ]; then
                mdef=Makefile;
            else
                return;
            fi;
        fi;
    fi;
    for (( i=0 ; i < ${#COMP_WORDS[@]} ; i++  ))
    do
        if [[ ${COMP_WORDS[i]} == -*f ]]; then
            eval makef=${COMP_WORDS[i+1]};
            break;
        fi;
    done;
    [ -z "$makef" ] && makef=$mdef;
    if [ -n "$2" ]; then
        gcmd='grep "^$2"';
    else
        gcmd=cat;
    fi;
    COMPREPLY=($(cat $makef 2>/dev/null | awk 'BEGIN {FS=":"} /^[^.#         ][^=]*:/ {print $1}' | tr -s ' ' '\012' | sort -u | eval $gcmd ))
}
_p4_func () 
{ 
    local cmds cur prev i j pos;
    cmds=(help client sync add edit delete resolve revert submit);
    COMPREPLY=();
    cur=${COMP_WORDS[COMP_CWORD]};
    prev=${COMP_WORDS[COMP_CWORD-1]};
    for i in ${COMP_WORDS[@]};
    do
        for j in ${cmds[@]};
        do
            if [ "$i" = "$j" ]; then
                COMPREPLY=($(compgen -f $cur));
                return 0;
            fi;
        done;
    done;
    case "$prev" in 
        -T)
            COMPREPLY=($(compgen -d $cur));
            return 0
        ;;
        -z)
            COMPREPLY=(0 1 2 3 4 5 6 7 8 9);
            return 0
        ;;
        -s | -d)
            return 0
        ;;
        *)
            COMPREPLY=($(compgen -W "${cmds[*]}" $cur));
            return 0
        ;;
    esac;
    case "$prev" in 
        -*f)
            COMPREPLY=($(compgen -f $cur ));
            return 0
        ;;
    esac;
    case "$cur" in 
        -)
            COMPREPLY=(-e -f -i -k -n -p -q -r -S -s -t);
            return 0
        ;;
    esac
}
_redir_op () 
{ 
    case "$1" in 
        *\\'[\<\>]'*)
            return 1
        ;;
        *[\<\>]*)
            return 0
        ;;
        *)
            return 1
        ;;
    esac
}
_redir_test () 
{ 
    if _redir_op "$1"; then
        COMPREPLY=($( compgen -f "$1" ));
        return 0;
    else
        if _redir_op "$2"; then
            COMPREPLY=($( compgen -f "$1" ));
            return 0;
        fi;
    fi;
    return 1
}
_which () 
{ 
    ( unset -- $1;
    unalias -- $1;
    enable -n -- $1;
    prog=`type -a -p $1` && echo $prog | cut -f 1 -d ' ' ) 2>/dev/null || ( echo $1: not found 1>&2 && return 1 )
}
calc () 
{ 
    echo $* | bc -l
}
doing () 
{ 
    DOING="$*"
}
pss () 
{ 
    ps ${PSOPTS} | grep "\(^ \|$1\)"
}
spew () 
{ 
    prog=`_which $1` && cat $prog
}
su () 
{ 
    DOING=${1:-root} command su "$@"
}
what () 
{ 
    prog=`_which $1` && file $prog
}
where () 
{ 
    prog=`_which $1` && ( [ -L $prog ] && ls -F -lF $prog || true ) && ls -F -lLF $prog
}
which () 
{ 
    for i in $*;
    do
        _which $i 2>/dev/null;
    done
}

---8<---


Please let me know if I can provide any additional information, or if I
have filed against the wrong package.  I am very interested in helping
to find and resolve this linking error.

Thank you,

  Neale Pickett


-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (990, 'unstable'), (500, 'testing')
Architecture: i386 (i686)
Kernel: Linux 2.4.20-3-686
Locale: LANG=C, LC_CTYPE=C

Versions of packages libc6-dev depends on:
ii  libc6                2.3.2.ds1-11        GNU C Library: Shared libraries an
ii  linux-kernel-headers 2.5.999-test7-bk-15 Linux Kernel Headers for developme

-- no debconf information





Reply to: