Bug 102026 - myodbc-3.51.11 fails
|
Bug#:
102026
|
Product: Gentoo Linux
|
Version: unspecified
|
Platform: x86
|
|
OS/Version: Linux
|
Status: RESOLVED
|
Severity: normal
|
Priority: P2
|
|
Resolution: FIXED
|
Assigned To: mysql-bugs@gentoo.org
|
Reported By: maciek@ict.pwr.wroc.pl
|
|
Component: Server
|
|
|
URL:
|
|
Summary: myodbc-3.51.11 fails
|
|
Keywords:
|
|
Status Whiteboard:
|
|
Opened: 2005-08-10 11:52 0000
|
Making all in samples
make[1]: Entering directory
`/var/tmp/portage/myodbc-3.51.11/work/MyODBC-3.51.11/samples'
if i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../driver -I..
-I/usr/include -O3 -DDBUG_OFF -DPORTABLE_GUI -O2 -march=i686
-fomit-frame-pointer -pipe -I/usr/include/mysql -march=i686
-fomit-frame-pointer -pipe -DHAVE_ERRNO_AS_DEFINE=1 -DUSE_OLD_FUNCTIONS -MT
my_basics.o -MD -MP -MF ".deps/my_basics.Tpo" -c -o my_basics.o my_basics.c; \
then mv -f ".deps/my_basics.Tpo" ".deps/my_basics.Po"; else rm -f
".deps/my_basics.Tpo"; exit 1; fi
/bin/sh ../libtool --mode=link i686-pc-linux-gnu-gcc -O3 -DDBUG_OFF
-DPORTABLE_GUI -O2 -march=i686 -fomit-frame-pointer -pipe -I/usr/include/mysql
-march=i686 -fomit-frame-pointer -pipe -DHAVE_ERRNO_AS_DEFINE=1
-DUSE_OLD_FUNCTIONS ../driver_r/libmyodbc3_r.la -L/usr/lib/mysql -lmysqlclient_r
-lpthread -lz -lcrypt -lnsl -lm -lpthread -L/usr/lib -lssl -lcrypto -o
my_basics my_basics.o -L/usr/lib -lz -lodbcinst
mkdir .libs
i686-pc-linux-gnu-gcc -O3 -DDBUG_OFF -DPORTABLE_GUI -O2 -march=i686
-fomit-frame-pointer -pipe -I/usr/include/mysql -march=i686 -fomit-frame-pointer
-pipe -DHAVE_ERRNO_AS_DEFINE=1 -DUSE_OLD_FUNCTIONS -o .libs/my_basics
my_basics.o ../driver_r/.libs/libmyodbc3_r.so -L/usr/lib/mysql -L/usr/lib
/usr/lib/mysql/libmysqlclient_r.so -lcrypt -lnsl -lm -lssl -lcrypto -lz
/usr/lib/libodbcinst.so -ldl -lpthread -Wl,--rpath -Wl,/usr/lib/mysql
../driver_r/.libs/libmyodbc3_r.so: undefined reference to `lt_dlclose'
../driver_r/.libs/libmyodbc3_r.so: undefined reference to `lt_dlopen'
../driver_r/.libs/libmyodbc3_r.so: undefined reference to `lt_dlsym'
../driver_r/.libs/libmyodbc3_r.so: undefined reference to `lt_dlinit'
collect2: ld returned 1 exit status
make[1]: *** [my_basics] Błąd 1
make[1]: Leaving directory
`/var/tmp/portage/myodbc-3.51.11/work/MyODBC-3.51.11/samples'
make: *** [all-recursive] Błąd 1
!!! ERROR: dev-db/myodbc-3.51.11 failed.
Reproducible: Always
Steps to Reproduce:
1.emerge myodbc
2.
3.
Actual Results:
Compilation ( actually a linking ) fails
Expected Results:
Compiles cleanly
gentoo-sources-2.6.11-r6
gcc-3.4.4
binutils-2.16-r1
portage synced on 10/08/2005, 18:00 UTC
Portage 2.0.51.22-r2 (default-linux/x86/2005.0, gcc-3.3.5-20050130,
glibc-2.3.5-r0, 2.6.11-gentoo-r9 i686)
=================================================================
System uname: 2.6.11-gentoo-r9 i686 AMD Duron(tm) processor
Gentoo Base System version 1.6.12
dev-lang/python: 2.3.5
sys-apps/sandbox: 1.2.8
sys-devel/autoconf: 2.13, 2.59-r6
sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5
sys-devel/binutils: 2.16-r1
sys-devel/libtool: 1.5.18
virtual/os-headers: 2.6.11-r1
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=i686 -fomit-frame-pointer -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env
/usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3.4/env
/usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d"
CXXFLAGS="-O2 -march=i686 -fomit-frame-pointer -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks sandbox sfperms strict"
GENTOO_MIRRORS="http://gentoo.prz.rzeszow.pl/"
LC_ALL="pl_PL.UTF-8"
LINGUAS="pl en"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="3dnow X acl acpi alsa apm arts audiofile avi bash-completion berkdb
bitmap-fonts bluetooth bzlib cdr crypt cups curl divx4linux dvd dvdr eds emboss
encode fam ffmpeg flac foomaticdb fortran gd gdbm gif glut gpm gstreamer gtk2
hal iconv imagemagick imlib ipv6 java joystick jpeg junit kde libg++ libwww mad
mikmod motif mozilla mp3 mpeg mysql ncurses nls odbc ogg oggvorbis opengl oss
pam pdflib perl plugin png python qt quicktime readline samba sdl slang spell
ssl svg svga tcpd tetex tiff truetype truetype-fonts type1-fonts usb videos
vorbis win32codecs wmf x86 xine xml xml2 xmms xv zeroconf zlib linguas_pl
linguas_en userland_GNU kernel_linux elibc_glibc"
Unset: ASFLAGS, CTARGET, LANG, LDFLAGS, MAKEOPTS, PORTDIR_OVERLAY
Those function all related to "sys-devel/libtool" , please try to re-emerge that
and then "dev-db/myodbc" .
I've had succesful emerge of the following packages:
=dev-db/myodbc-3.51.11 \
=dev-db/mysql-4.0.24 \
=dev-db/unixODBC-2.2.6 \
=dev-perl/DBD-mysql-2.9007 \
=dev-perl/DBI-1.46 \
=dev-perl/PlRPC-0.2016-r1 \
=perl-core/Storable-2.13 \
=dev-perl/Net-Daemon-0.38 \
No problems here on x86 and pretty similar conf.
If the compilation still fail after reemerging libtool please provide the output
of "emerge -pv " of the previous packages (without forcing the version).
Installed libtool. myodbc still fails
emerge -pv mysql:
[ebuild R ] dev-db/mysql-4.0.25-r2 +berkdb* -big-tables -debug -doc
-minimal +perl* +readline (-selinux) +ssl -static +tcpd 10,897 kB
[ebuild N ] perl-core/Storable-2.13 131 kB
[ebuild N ] dev-perl/Net-Daemon-0.38 30 kB
[ebuild N ] dev-perl/PlRPC-0.2018 17 kB
[ebuild N ] dev-perl/DBI-1.48 369 kB
[ebuild N ] dev-perl/DBD-mysql-2.9007 114 kB
For some reason, "/usr/lib/libltdl.so.3.1.1" is not linked in.
Please try adding "-lltdl" to your CFLAGS .
Also if possible could you send the
/var/tmp/portage/myodbc-3.51.11/work/MyODBC-3.51.11/config.log
and maybe the log of the emerge (one fast thing to do it "nohup emerge package").
Thanks
(In reply to comment #4)
I've created emerge log, it is attached, along with the configure log.
I re-emerged mysql, but it didn't help.
`CFLAGS=-lltdl` workaround worked.
I'm going to holidays today, so i will not be able to assit you anytime soon. If
my assitant will be neccesary anyway, please, drop me an email, i'll answer
after i get back, in two weeks.
thanks
it should be enough, now it's my task ;)
Thank you for the effort and have nice holidays.
I've edited ebuild file: /usr/portage/dev-db/myodbc/myodbc-3.51.11.ebuild
src_compile() {
local myconf="--enable-static"
use static \
&& myconf="${myconf} --disable-shared" \
|| myconf="${myconf} --enable-shared"
myconf="${myconf} `use_with doc docs` `use_with debug`"
econf \
--libexecdir=/usr/sbin \
--sysconfdir=/etc/myodbc \
--localstatedir=/var/lib/myodbc \
--with-mysql-libs=/usr/lib/mysql \
--with-mysql-includes=/usr/include/mysql \
--with-odbc-ini=/etc/unixODBC/odbc.ini \
--with-unixODBC=/usr \
--without-samples \
--without-sample \
--with-libtool \
--disable-test \
${myconf} || die "econf failed"
emake || die "emake failed"
}
And it compiled for Me.
Applied suggestion from c#9 by Robert Baranowski . Added "--without-samples
--disable-test" to configure options.
Thank you
P.S. has been committed only few seconds ago, plase wait a couple of hours
before to emerge sync.
*** Bug 103607 has been marked as a duplicate of this bug. ***
seems to be commited with no further problems, closing as fixed.
it compiles fine, but when using the lib through unixODBC I get a missing
symbol lt_dlclose.
atleast with hardened gentoo and
gcc-3.4.5-r1
glibc-2.3.5-r2
myodbc-3.51.11
unixODBC-2.2.11-r1
libtool-1.5.22
binutils-2.16.1
if I do CFLAGS="-lltdl" emerge myodbc ( ala comment #5 solution ) it works...
I have other systems where I don't have the hardened gentoo and they don't have
this problem. possible something with the way hardened linux works with pax and
grsecurity since I use those.
possible solution:
add the link in the ebuild if hardened.
odd I'm pretty sure the comment was #5 but that's wrong.. here's the head of
the comment:
Comment #4 From Francesco R. 2005-08-12 02:05 PST
sorry about that. :)
I have the same problem as Peter if CFLAGS misses -lltdl (and using a hardened
profile) But I doubt, that pax or grsec have anything to do with the problem,
as switching to a vanilla gcc does solve it apparantly (you dont need -lltdl in
CFLAGS)
Note, that switching to i686-pc-linux-gnu-3.4.6-hardenednopiessp does not help,
you still need the -lltdl. Therefore SSP and PIE do not seem to trigger the
bug.
myodbc-3.51.12 is in the tree may worth a try.
Problem seems to be solved for me, I don't need -lltdl with myodbc-3.51.12
anymore.