View previous topic :: View next topic |
Author |
Message |
vespaman Guru


Joined: 28 Aug 2002 Posts: 391 Location: Stockholm, Sweden
|
Posted: Tue Sep 09, 2008 7:46 am Post subject: libgcc, interworking option & crossdev |
|
|
I need to enable interworking for libgcc in order to be able to use thumb mode for my ARM7 project.
How can this be accomplished when the installation where done with crossdev? Is there a way of feeding options while building the libs?
When I enable thumb mode in the demo application of FreeRTOS, I get lines like this one;
/usr/libexec/gcc/arm-elf/ld: Warning: /usr/lib/gcc/arm-elf/4.2.4/libgcc.a(_udivsi3.o) does not support interworking, whereas rtosdemo.elf does
Needless to say, this is fatal, and I need to find a sustainable way of fixing this. Has someone dealt with this before (I'm sure someone has!)
Edit: I think that a thumb lib is actually built, just not used when linking. Now I just need to understand where that lib path is configured... |
|
Back to top |
|
 |
gringo Advocate


Joined: 27 Apr 2003 Posts: 3793
|
Posted: Tue Sep 09, 2008 10:55 am Post subject: |
|
|
i just found this which looks like what you are looking for.
If i got it right this enables thumb mode, multilib, and interworking support, but you will have to build your toolchain again.
There are also several gcc switches available which i don´t know if they help or not for this matter. Maybe Redhatter comes around and can help you out, i have ni idea about this stuff.
cheers _________________ Error: Failing not supported by current locale |
|
Back to top |
|
 |
vespaman Guru


Joined: 28 Aug 2002 Posts: 391 Location: Stockholm, Sweden
|
Posted: Tue Sep 09, 2008 12:32 pm Post subject: |
|
|
Thanks, but I am now trailing the crossdev path into Gentoo gcc-config's, as I think/hope that can use libgcc as built already (I might have to give up on this trail, but at least it would be nice to explore until the end of the trail).
I now know for a fact that;
1. gcc uses /usr/lib/gcc/arm-elf/4.2.4/ for collecting libgcc.a. (shown when doing a gcc -v)
2. gcc should instead use /usr/lib/gcc/arm-elf/4.2.4/thumb/
gcc-config shows both my arm as selected and the normal x86 gcc. But it does not seem to show any information regarding the arm lib path.
Maybe I'll do a grep 'usr/lib/gcc/arm-elf/4.2.4/' on the whole computer and go for a cup of coffee.  |
|
Back to top |
|
 |
vespaman Guru


Joined: 28 Aug 2002 Posts: 391 Location: Stockholm, Sweden
|
Posted: Tue Sep 09, 2008 2:07 pm Post subject: |
|
|
OK, so now I became tired of the crossdev path, as it did not seam to work with the libgcc.a in /thumb/ anyway.
Instead I set off to try Redhatters road to heaven. But I did not reach too far.
Code: | [..]
make[4]: Entering directory `/home/micke/projects/Redhatters_toolchain/binutils-build/libiberty/testsuite'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/home/micke/projects/Redhatters_toolchain/binutils-build/libiberty/testsuite'
make[3]: Leaving directory `/home/micke/projects/Redhatters_toolchain/binutils-build/libiberty'
make[3]: Entering directory `/home/micke/projects/Redhatters_toolchain/binutils-build/intl'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/home/micke/projects/Redhatters_toolchain/binutils-build/intl'
make[3]: Entering directory `/home/micke/projects/Redhatters_toolchain/binutils-build/bfd'
Making info in doc
make[4]: Entering directory `/home/micke/projects/Redhatters_toolchain/binutils-build/bfd/doc'
restore=: && backupdir=".am$$" && \
rm -rf $backupdir && mkdir $backupdir && \
if (/home/micke/projects/Redhatters_toolchain/binutils-src/missing makeinfo --split-size=5000000 --split-size=5000000 --version) >/dev/null 2>&1; then \
for f in bfd.info bfd.info-[0-9] bfd.info-[0-9][0-9] bfd.i[0-9] bfd.i[0-9][0-9]; do \
if test -f $f; then mv $f $backupdir; restore=mv; else :; fi; \
done; \
else :; fi && \
if /home/micke/projects/Redhatters_toolchain/binutils-src/missing makeinfo --split-size=5000000 --split-size=5000000 -I ../../../binutils-src/bfd/doc \
-o bfd.info `test -f 'bfd.texinfo' || echo '../../../binutils-src/bfd/doc/'`bfd.texinfo; \
then \
rc=0; \
else \
rc=$?; \
$restore $backupdir/* `echo "./bfd.info" | sed 's|[^/]*$||'`; \
fi; \
rm -rf $backupdir; exit $rc
WARNING: `makeinfo' is missing on your system. You should only need it if
you modified a `.texi' or `.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy `make' (AIX,
DU, IRIX). You might want to install the `Texinfo' package or
the `GNU make' package. Grab either from any GNU archive site.
make[4]: *** [bfd.info] Error 1
make[4]: Leaving directory `/home/micke/projects/Redhatters_toolchain/binutils-build/bfd/doc'
Making info in po
make[4]: Entering directory `/home/micke/projects/Redhatters_toolchain/binutils-build/bfd/po'
make[4]: Nothing to be done for `info'.
make[4]: Leaving directory `/home/micke/projects/Redhatters_toolchain/binutils-build/bfd/po'
make[4]: Entering directory `/home/micke/projects/Redhatters_toolchain/binutils-build/bfd'
make[4]: Nothing to be done for `info-am'.
make[4]: Leaving directory `/home/micke/projects/Redhatters_toolchain/binutils-build/bfd'
make[3]: *** [info-recursive] Error 1
make[3]: Leaving directory `/home/micke/projects/Redhatters_toolchain/binutils-build/bfd'
make[2]: *** [all-bfd] Error 2
make[2]: Leaving directory `/home/micke/projects/Redhatters_toolchain/binutils-build'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/micke/projects/Redhatters_toolchain/binutils-build'
make: *** [binutils] Error 2
|
I guess the problem is makeinfo, but typing 'makeinfo' at the prompt, shows that it is installed.
I hope Redhatters will read this  |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|