Weird compile message | developer.brewmp.com Weird compile message | developer.brewmp.com

Developer

Weird compile message

Hi!

When I compile my game, I'm receiving the following message.
Anyone knows what that means?

Thanks!

C:\gnude\bin\arm-elf-ld: Warning: C:\gnude/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(_divsi3.o) does not support interworking, whereas game.elf does
C:\gnude\bin\arm-elf-ld: Warning: C:\gnude/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(_umodsi3.o) does not support interworking, whereas game.elf does
C:\gnude\bin\arm-elf-ld: Warning: C:\gnude/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(_dvmd_tls.o) does not support interworking, whereas game.elf does

See my post in the thread http://brewforums.qualcomm.com/showthread.php?t=9636 Basically, those are just warnings, ignore them. I think you can avoid those warnings if you don't build your project with thumb-arm internetworking (of course, you should build ARM code _only_ in that case).

See my post in the thread http://brewforums.qualcomm.com/showthread.php?t=9636 Basically, those are just warnings, ignore them. I think you can avoid those warnings if you don't build your project with thumb-arm internetworking (of course, you should build ARM code _only_ in that case).

if you ignore the warnings then it'll crash if the functions are called from thumb mode

if you ignore the warnings then it'll crash if the functions are called from thumb mode

So if I want to compile in Thumb mode and have these warnings how do I rectify the problem ? Im looking into the problem on this thread: http://brewforums.qualcomm.com/showthread.php?p=38990#post38990 but so far have not been successful. If you know the solution can you help ?

So if I want to compile in Thumb mode and have these warnings how do I rectify the problem ? Im looking into the problem on this thread: http://brewforums.qualcomm.com/showthread.php?p=38990#post38990 but so far have not been successful. If you know the solution can you help ?

the libraries have to be recompiled in thumb mode too,

the libraries have to be recompiled in thumb mode too,

Thanks,
Do I have to recompile the libraries myself ? If so can you point me in the right direction ?
Can I download pre-compiled libraries (Seems like the simplest option) - if so, do you have any idea where I can get them from ?
Thanks.

Thanks,
Do I have to recompile the libraries myself ? If so can you point me in the right direction ?
Can I download pre-compiled libraries (Seems like the simplest option) - if so, do you have any idea where I can get them from ?
Thanks.

no idea, i use ADS
i'm sure a few minutes with google will find it.

no idea, i use ADS
i'm sure a few minutes with google will find it.

Im sorry to be a pain but I really dont know what Im doing. Can someone help ?
I need the interwork compiled GCC library.

Im sorry to be a pain but I really dont know what Im doing. Can someone help ?
I need the interwork compiled GCC library.

well if you compile in arm mode instead, it'll go away, are you getting problems with the existing warnings ?
load 'internet explorer' or whatever browser you use for accessing the web
open 'www.google.com'
type 'thumb libgcc.a'
press 'Google Search'
wait for results,
read results.
find pages like,
http://www.sealiesoftware.com/pssh/README.code
examine if its what you need, if not continue searching,.

well if you compile in arm mode instead, it'll go away, are you getting problems with the existing warnings ?
load 'internet explorer' or whatever browser you use for accessing the web
open 'www.google.com'
type 'thumb libgcc.a'
press 'Google Search'
wait for results,
read results.
find pages like,
http://www.sealiesoftware.com/pssh/README.code
examine if its what you need, if not continue searching,.

You probably already have the thumb mode libraries, try appending /thumb to your lib path. (These work for me.)
gnuarm.org has prebuilt libraries as well, but for a newer compiler with which brewelf2mod does not work, or at least the version I have doesn't.

You probably already have the thumb mode libraries, try appending /thumb to your lib path. (These work for me.)
gnuarm.org has prebuilt libraries as well, but for a newer compiler with which brewelf2mod does not work, or at least the version I have doesn't.

Hi,
Yes I do have the thumb mode libraries, but it seems they were not compiled with "interworking" [which I believe I require to allow the ARM code to access the Thumb code and allow the CPU to switch modes]
I could compile in ARM mode but the whole point to this is that Im trying to create a build process that will compile in Thumb mode to reduce my mod size.
"Are you having problems with your existing warnings"
"if you ignore the warnings then it'll crash if the functions are called from thumb mode"
Thats basically the problem, the warnings dont matter in ARM mode but they do in Thumb mode.
Ive had a look on the internet but my knowledge of these compiling techniques is very poor [I'm used to Win32 development, i.e. clicking on a 'compile' button !]
Failing that. [rabidcow], if you have a thumb directory that works for you. [And by that I mean thumb libraries that allow you to compile your applpication with -mthumb for your code and ARM mode for AEEAppGen/AEEModGen sucessfully] could you zip up the directory and send it to me ? [should only be 200-250 k when zipped]
Another thing: Should AeeAppGen/AeeModGen be built with -mthumb-interwork ? I presumed that they should.
Thanks All.

Hi,
Yes I do have the thumb mode libraries, but it seems they were not compiled with "interworking" [which I believe I require to allow the ARM code to access the Thumb code and allow the CPU to switch modes]
I could compile in ARM mode but the whole point to this is that Im trying to create a build process that will compile in Thumb mode to reduce my mod size.
"Are you having problems with your existing warnings"
"if you ignore the warnings then it'll crash if the functions are called from thumb mode"
Thats basically the problem, the warnings dont matter in ARM mode but they do in Thumb mode.
Ive had a look on the internet but my knowledge of these compiling techniques is very poor [I'm used to Win32 development, i.e. clicking on a 'compile' button !]
Failing that. [rabidcow], if you have a thumb directory that works for you. [And by that I mean thumb libraries that allow you to compile your applpication with -mthumb for your code and ARM mode for AEEAppGen/AEEModGen sucessfully] could you zip up the directory and send it to me ? [should only be 200-250 k when zipped]
Another thing: Should AeeAppGen/AeeModGen be built with -mthumb-interwork ? I presumed that they should.
Thanks All.

AEEAppGen/ModGen must be compiled in ARM mode
you could try -support-old-code which generates larger stubs, or just could just switch to ADS :) last time i checked ADS generated consistently smaller and faster code than gcc anyway, but i know theres been some improvement recently in the gcc toolchain, i just don't know if its equalled the decade or so of ADS development.
some of the warnings, tell you that the code isn;'t safe to be called from either mode, but the routines aren't actually being called by that mode, and some warings/errors actually tell you that its being called from the wrong mode, at least again ADS does this, so if gcc does the same, it may be they arent being used anyway, but of course one day they might.
one of our programmers was the one of first to get gcc up and going with arm i believe, he posted an article on the forum about it a long time ago

AEEAppGen/ModGen must be compiled in ARM mode
you could try -support-old-code which generates larger stubs, or just could just switch to ADS :) last time i checked ADS generated consistently smaller and faster code than gcc anyway, but i know theres been some improvement recently in the gcc toolchain, i just don't know if its equalled the decade or so of ADS development.
some of the warnings, tell you that the code isn;'t safe to be called from either mode, but the routines aren't actually being called by that mode, and some warings/errors actually tell you that its being called from the wrong mode, at least again ADS does this, so if gcc does the same, it may be they arent being used anyway, but of course one day they might.
one of our programmers was the one of first to get gcc up and going with arm i believe, he posted an article on the forum about it a long time ago

bambos_xiouros wrote:Failing that. [rabidcow], if you have a thumb directory that works for you. [And by that I mean thumb libraries that allow you to compile your applpication with -mthumb for your code and ARM mode for AEEAppGen/AEEModGen sucessfully] could you zip up the directory and send it to me ? [should only be 200-250 k when zipped]
Before I do that (they should just be the ones that came with GNUDE), have you tried -mcallee-super-interworking? In theory I think it shouldn't be needed, but IIRC things didn't work when I removed it, and this may be the difference. (ie, you don't need it if you have the interwork libs)
bambos_xiouros wrote:Another thing: Should AeeAppGen/AeeModGen be built with -mthumb-interwork ? I presumed that they should.
I am currently using -mthumb-interwork for all files.

bambos_xiouros wrote:Failing that. [rabidcow], if you have a thumb directory that works for you. [And by that I mean thumb libraries that allow you to compile your applpication with -mthumb for your code and ARM mode for AEEAppGen/AEEModGen sucessfully] could you zip up the directory and send it to me ? [should only be 200-250 k when zipped]
Before I do that (they should just be the ones that came with GNUDE), have you tried -mcallee-super-interworking? In theory I think it shouldn't be needed, but IIRC things didn't work when I removed it, and this may be the difference. (ie, you don't need it if you have the interwork libs)
bambos_xiouros wrote:Another thing: Should AeeAppGen/AeeModGen be built with -mthumb-interwork ? I presumed that they should.
I am currently using -mthumb-interwork for all files.