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: