On 6/14/06, Aaron Miller <[EMAIL PROTECTED]> wrote:
Hello, Thanks for taking the time to read this.
I am stuck on Chapter 5.8 in Hardened Linux From Scratch - Version SVN-20060510
When I try to compile tcl-8.4.12 I get the following error:
fixstrtod.o: In function `fixstrtod':
fixstrtod.c:(.text+0x0): multiple definition of `fixstrtod'
strtod.o:strtod.c:(.text+0x0): first defined here
/mnt/hlfs/root/bin/../lib/gcc/i686-tools-linux-gnu/3.4.5/../../../../i686-tools-linux-gnu/bin/ld:
Warning: size of symbol `fixstrtod' changed from 669 in strtod.o to 77
in fixstrtod.o
collect2: ld returned 1 exit status
make: *** [libtcl8.4.so] Error 1
The only post I found that had a similar error was this one:
http://linuxfromscratch.org/pipermail/lfs-support/2003-October/019905.html
But it looks like it was as a result of using env variable in the spec
file maybe?
fgrep 'linker /tools/lib' /tools/lib/gcc/i686-tools-linux-gnu/3.4.5/specs
%{!static:--eh-frame-hdr} -m elf_i386 %{shared:-shared} %{!shared:
%{!ibcs: %{!static: %{rdynamic:-export-dynamic}
%{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}}
%{static:-static}}}
echo 'main(){}' | ${target}-gcc -x c -
readelf -l a.out | grep ': /tools'
[Requesting program interpreter: /tools/lib/ld-linux.so.2]
Also, please note the following:
ls -l /
...
tools -> /mnt/hlfs/tools
...
ls -l /mnt/hlfs
...
root
tools -> /mnt/hlfs/root/
So my "tools" directory will actually be /root when I am finished. I
don't see how this
could relate to the error but though I should include it anyways. I
also tried to see
if I might have made a mistake somewhere, but I got the same error the second
time though (I copied and pasted all the commands to be sure I got it right).
Sorry if this has been addressed before, I am still kind of new to Linux so my
searching skills are still not up to par. What I found on google
indicated that there is
a known problem while cross compiling tcl and gave some possible
fixes, but I don't
know a lot about Linux yet and wanted to see if this is being caused by deeper
problem.
Thanks for your time!
...aaron
Hello, sorry to reply to my own message, but I just wanted to say that
I tried it again without the links pointing to the "$HLFS/root"
partition, so everything is by the book and and I still get the same
error with tcl.
I found this information on google in regards to cross compiling tcl.
Will following these instructions have an adverse effect on my hlfs
system?
------------------------
comp.lang.tcl archive
Re: multiple definition of `fixstrtod' while cross-compiling tcl
From: Eric Hassold <[EMAIL PROTECTED]>
Date: Mon Dec 05 2005 - 22:33:38 CET
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
------------------------
Also, I had a question about starting with a clean environment. Does
it clear out all environment variables or just the user defined ones?
I noticed if I do the following in my supposedly clean hlfs
environment:
$H{tab}{tab}
I get a list of already defined variables that begin with 'H'
$HISTCMD $HISTFILESIZE $HLFS $HOSTNAME
$HISTFILE $HISTSIZE $HOME $HOSTTYPE
Do I not have a clean environment? If I run 'exec env -i' I get this
when I try the same thing:
$HISTCMD $HISTFILE $HISTFILESIZE $HISTSIZE
$HOME $HOSTNAME $HOSTTYPE
Is there an environment variable leaking into my tcl? If so, how can I
make sure they are all cleared out?
Thanks again for your time!
...aaron
--
http://linuxfromscratch.org/mailman/listinfo/lfs-support
FAQ: http://www.linuxfromscratch.org/lfs/faq.html
Unsubscribe: See the above information page