Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
libgcc, interworking option & crossdev
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Gentoo on Alternative Architectures
View previous topic :: View next topic  
Author Message
vespaman
Guru
Guru


Joined: 28 Aug 2002
Posts: 346
Location: Stockholm, Sweden

PostPosted: Tue Sep 09, 2008 7:46 am    Post subject: libgcc, interworking option & crossdev Reply with quote

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
View user's profile Send private message
gringo
Advocate
Advocate


Joined: 27 Apr 2003
Posts: 3793

PostPosted: Tue Sep 09, 2008 10:55 am    Post subject: Reply with quote

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
View user's profile Send private message
vespaman
Guru
Guru


Joined: 28 Aug 2002
Posts: 346
Location: Stockholm, Sweden

PostPosted: Tue Sep 09, 2008 12:32 pm    Post subject: Reply with quote

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
View user's profile Send private message
vespaman
Guru
Guru


Joined: 28 Aug 2002
Posts: 346
Location: Stockholm, Sweden

PostPosted: Tue Sep 09, 2008 2:07 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo on Alternative Architectures All times are GMT
Page 1 of 1

 
Jump to:  
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