Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

multiple definition of `fixstrtod' while cross-compiling tcl

901 views
Skip to first unread message

Sven Geggus

unread,
Nov 29, 2005, 1:54:31 PM11/29/05
to
Hi there,

I try to cross-compile Tcl for a Linux/Mips/uclibc based device (openwrt).
Build Host is "i686-pc-linux-gnu"

Works fine when using --disable-shared, but just does not work when using
the default.

I've been using the following:
./configure --build=i686-pc-linux-gnu --host=mipsel-linux-uclibc --target=mipsel-linux-uclibc

What I get is this:

mipsel-linux-uclibc-gcc -pipe -shared -o libtcl8.4.so regcomp.o regexec.o
regfree.o regerror.o tclAlloc.o tclAsync.o tclBasic.o tclBinary.o
tclCkalloc.o tclClock.o tclCmdAH.o tclCmdIL.o tclCmdMZ.o tclCompCmds.o
tclCompExpr.o tclCompile.o tclDate.o tclEncoding.o tclEnv.o tclEvent.o
tclExecute.o tclFCmd.o tclFileName.o tclGet.o tclHash.o tclHistory.o
tclIndexObj.o tclInterp.o tclIO.o tclIOCmd.o tclIOGT.o tclIOSock.o
tclIOUtil.o tclLink.o tclListObj.o tclLiteral.o tclLoad.o tclMain.o
tclNamesp.o tclNotify.o tclObj.o tclPanic.o tclParse.o tclParseExpr.o
tclPipe.o tclPkg.o tclPosixStr.o tclPreserve.o tclProc.o tclRegexp.o
tclResolve.o tclResult.o tclScan.o tclStringObj.o tclThread.o
tclThreadAlloc.o tclThreadJoin.o tclStubInit.o tclStubLib.o tclTimer.o
tclUtf.o tclUtil.o tclVar.o tclUnixChan.o tclUnixEvent.o tclUnixFCmd.o
tclUnixFile.o tclUnixPipe.o tclUnixSock.o tclUnixTime.o tclUnixInit.o
tclUnixThrd.o tclUnixNotfy.o memcmp.o strstr.o strtoul.o strtod.o
fixstrtod.o tclLoadDl.o -ldl -lm -Wl,-soname,libtcl8.4.so.0
fixstrtod.o: In function ixstrtod':
fixstrtod.c:(.text+0x0): multiple definition of ixstrtod'
strtod.o:strtod.c:(.text+0x0): first defined here
collect2: ld returned 1 exit status
make: *** [libtcl8.4.so] Fehler 1

Any hints?

Sven

--
"and on the third day he rebooted into Linux-1.3.84"
(Linus Torvalds, Easter Kernel Release 1996)

/me is giggls@ircnet, http://sven.gegg.us/ on the Web

Eric Hassold

unread,
Dec 5, 2005, 4:33:38 PM12/5/05
to Sven Geggus
Tcl configure script makes some pessimistic assumptions when
cross-compiling (when AC_TRY_RUN can't run). One of them is guessing
libc has no strtod when small test program can't be run. Some AC_TRY_RUN
should actually be replaced by AC_TRY_LINK to provide better estimate.

Anyway, as a work-around, you may force configure detection, defining
export ac_cv_func_strtod=yes
before running ./configure. You may also have to force
export tcl_cv_strtod_buggy=1
so that Tcl will define its own fixstrtod() symbol, which will call
uclibc's strtod(). Works fine in our nightly built process, compiling
Tcl for arm-linux/uclibc.

Eric Hassold
Evolane - http://www.evolane.com/

Sven Geggus a écrit :

0 new messages