Forums | developer.brewmp.com Forums | developer.brewmp.com

# Developer

## Forums

### Forums:

Anyone have seen this package ?
http://sourceforge.net/projects/gnude/

It's a windows-installer that (should) contains all gnu toolchain binaries.
Since I'm still waiting for 1.1 headers :-), I'd appreciate if any of you could test this package and see if it works on 2.0...
It'd save us a lot of time! :-)

I was able to get GCC working using the gnude package.
This allows you to use the GCC compiler without having to rebuild gcc for cross compiling. you also do not need to install cygwin. You will only need to download 5 things:
gnude-arm-win.zip -- from the GNUDE website (WARNING: it is about 72Meg)
GCCSupportForBREW.zip -- from the BREW Developer's Extranet
build_files.zip -- attached to this posting.
build_files2.zip -- attached to the next posting. (attachment is limited to 100k)
BREW SDK (you need the include and source files from the "inc" and "src" folders)
NOTE: This will only work with a single file C application (ie sample.c) though you can use multiple header files. If you want to do anything else (Like C++ or multiple files) you will have to edit the makefile on your own.
To do this i edited the makefile included with "GCCSupportForBREW.zip" and created some batch scripts.
If you need to make changes you should add "c:\gnude" your PATH, and then copy and edit gccMakefile to your liking.
NOTE: the makefile is a gnu make makefile, not a nmake makefile DO NOT use it with NMAKE, use the make.exe included in the attached "build_files.zip".
The process:
----------------------
http://sourceforge.net/project/showfiles.php?group_id=54319
INSTALL
----------------------
unzip "gnude-arm-win.zip" somewhere (like "c:\gnude\ ")
unzip "GCCSupportForBREW.zip"
unzip "build_files.zip" and "build_files2.zip" into the root gnude directory.
example:
c:\gnude\make.exe
c:\gnude\rm.exe
c:\gnude\gccMakefile
c:\gnude\buildme.bat
c:\gnude\runme.bat
copy "GCCResolver.c" and "BREWelf2mod.exe" from "GCCSupportForBREW.zip" to the root gnude directory
example:
c:\gnude\GCCResolver.c
c:\gnude\BREWelf2mod.exe
for brew 1.1, copy the "inc" and "src" directories from the 1.1 BREW SDK to a new subdirectory "1.1" under the gnude directory
example:
c:\gnude\1.1\inc\
c:\gnude\1.1\src\
replace the 3 header files "AEEComdef.h" "AEEDB.h" and "AEELicense.h" from "BREW_SDK1.1_Support\inc" subdirecotory of "GCCSupportForBREW.zip"
example:
c:\gnude\1.1\inc\AEEComdef.h
c:\gnude\1.1\inc\AEEDB.h
for brew 2.0, copy the "inc" and "src" directories from the 2.0 BREW SDK to a new subdirectory "2.0" under the gnude directory
example:
c:\gnude\2.0\inc\
c:\gnude\2.0\src\
EDIT CONFIG
----------------------
copy "buildme.bat" to the directory containing your source files.
edit "buildme.bat"
set "SET GNUDE=" to the directory you unzipped the files into.
set "SET TARGET=" to the name of your app. (ex sample, which will create sample.mod)
set "SET BREW_VER=" to either "1.1" or "2.0" depending on which version you want to build for.
NOTE: you cannot have spaces before/after the equals signs, so
SET TARGET=sample // CORRECT
SET TARGET = sampe // INCORRECT
BUILD
----------------------
run buildme.bat to run the gcc compiler and build your application.
compiler output will be written to a file called errorLog.txt that you need to check for any warnings/errors.
----------------------------------------------------
Happy Building.
-Tyndal
----------------------------------------------------
ATTACHED:
"build_files.zip" containing 4 files:
bulidme.bat -- dos batch file for building
cleanme.bat -- dos batch file for cleanup
gccMakefile -- gnu makefile for building
make.exe -- gnu make program for reading "gccMakefile"

I was able to get GCC working using the gnude package.
This allows you to use the GCC compiler without having to rebuild gcc for cross compiling. you also do not need to install cygwin. You will only need to download 5 things:
gnude-arm-win.zip -- from the GNUDE website (WARNING: it is about 72Meg)
GCCSupportForBREW.zip -- from the BREW Developer's Extranet
build_files.zip -- attached to this posting.
build_files2.zip -- attached to the next posting. (attachment is limited to 100k)
BREW SDK (you need the include and source files from the "inc" and "src" folders)
NOTE: This will only work with a single file C application (ie sample.c) though you can use multiple header files. If you want to do anything else (Like C++ or multiple files) you will have to edit the makefile on your own.
To do this i edited the makefile included with "GCCSupportForBREW.zip" and created some batch scripts.
If you need to make changes you should add "c:\gnude" your PATH, and then copy and edit gccMakefile to your liking.
NOTE: the makefile is a gnu make makefile, not a nmake makefile DO NOT use it with NMAKE, use the make.exe included in the attached "build_files.zip".
The process:
----------------------
http://sourceforge.net/project/showfiles.php?group_id=54319
INSTALL
----------------------
unzip "gnude-arm-win.zip" somewhere (like "c:\gnude\ ")
unzip "GCCSupportForBREW.zip"
unzip "build_files.zip" and "build_files2.zip" into the root gnude directory.
example:
c:\gnude\make.exe
c:\gnude\rm.exe
c:\gnude\gccMakefile
c:\gnude\buildme.bat
c:\gnude\runme.bat
copy "GCCResolver.c" and "BREWelf2mod.exe" from "GCCSupportForBREW.zip" to the root gnude directory
example:
c:\gnude\GCCResolver.c
c:\gnude\BREWelf2mod.exe
for brew 1.1, copy the "inc" and "src" directories from the 1.1 BREW SDK to a new subdirectory "1.1" under the gnude directory
example:
c:\gnude\1.1\inc\
c:\gnude\1.1\src\
replace the 3 header files "AEEComdef.h" "AEEDB.h" and "AEELicense.h" from "BREW_SDK1.1_Support\inc" subdirecotory of "GCCSupportForBREW.zip"
example:
c:\gnude\1.1\inc\AEEComdef.h
c:\gnude\1.1\inc\AEEDB.h
for brew 2.0, copy the "inc" and "src" directories from the 2.0 BREW SDK to a new subdirectory "2.0" under the gnude directory
example:
c:\gnude\2.0\inc\
c:\gnude\2.0\src\
EDIT CONFIG
----------------------
copy "buildme.bat" to the directory containing your source files.
edit "buildme.bat"
set "SET GNUDE=" to the directory you unzipped the files into.
set "SET TARGET=" to the name of your app. (ex sample, which will create sample.mod)
set "SET BREW_VER=" to either "1.1" or "2.0" depending on which version you want to build for.
NOTE: you cannot have spaces before/after the equals signs, so
SET TARGET=sample // CORRECT
SET TARGET = sampe // INCORRECT
BUILD
----------------------
run buildme.bat to run the gcc compiler and build your application.
compiler output will be written to a file called errorLog.txt that you need to check for any warnings/errors.
----------------------------------------------------
Happy Building.
-Tyndal
----------------------------------------------------
ATTACHED:
"build_files.zip" containing 4 files:
bulidme.bat -- dos batch file for building
cleanme.bat -- dos batch file for cleanup
gccMakefile -- gnu makefile for building
make.exe -- gnu make program for reading "gccMakefile"

Here is the buildfiles2.zip attachement.
-Tyndal
----------------------------------------------------
ATTACHED:
"build_files.zip" containing 1 file:
rm.exe -- rm program used for cleaning up files (the BREWelf2mod.exe program uses it)

Here is the buildfiles2.zip attachement.
-Tyndal
----------------------------------------------------
ATTACHED:
"build_files.zip" containing 1 file:
rm.exe -- rm program used for cleaning up files (the BREWelf2mod.exe program uses it)

Good one!

Good one!

Cool ! Thanks a lot Tyndal !
I've sucessfully built and installed some of my apps using gcc (gnude), just unzipping the files you mentioned!
Btw: attached is a sample makefile to use with nmake. Download and rename to .mak.
When I tried to compile using -O3 (all optimizations turned on) the apps crashed... Fortunately, -O2 works fine.
Thanks a lot again for you Tyndal and all the people at qualcomm, who saved us developer some good money on ads... :cool:

Cool ! Thanks a lot Tyndal !
I've sucessfully built and installed some of my apps using gcc (gnude), just unzipping the files you mentioned!
Btw: attached is a sample makefile to use with nmake. Download and rename to .mak.
When I tried to compile using -O3 (all optimizations turned on) the apps crashed... Fortunately, -O2 works fine.
Thanks a lot again for you Tyndal and all the people at qualcomm, who saved us developer some good money on ads... :cool:

If some1 is interested, i've done a small tool that replace the make process: since i'm a lazy guy using visualc++, i wanted to have support for brew(emulator+.mod) and mophun, i decided to make a kind of build tool (shared directory, brew directory, etc..) i used in visual c++..
If some1 is interested just ask..
/kUfa

If some1 is interested, i've done a small tool that replace the make process: since i'm a lazy guy using visualc++, i wanted to have support for brew(emulator+.mod) and mophun, i decided to make a kind of build tool (shared directory, brew directory, etc..) i used in visual c++..
If some1 is interested just ask..
/kUfa

Tyndal,
Thanks for your work and publishing it. I too was able to easily install the gnude arm compiler. I was probably only a few fixes away from being able to compile using the "Cygwin" method. However, I'd much rather be spending my time developing Brew apps. Having the compiler be a win app is nice too. I was able to compile MY app and dl it to my t720 for the first time. And .... it worked great!
Many thanks!!!
KUfa,
Please post what you've done. I think there would be many of us interested in better ways to integrate the build process.
Enjoy!!!

Tyndal,
Thanks for your work and publishing it. I too was able to easily install the gnude arm compiler. I was probably only a few fixes away from being able to compile using the "Cygwin" method. However, I'd much rather be spending my time developing Brew apps. Having the compiler be a win app is nice too. I was able to compile MY app and dl it to my t720 for the first time. And .... it worked great!
Many thanks!!!
KUfa,
Please post what you've done. I think there would be many of us interested in better ways to integrate the build process.
Enjoy!!!

hello guys,
please help me a bit more, i am having difficulties making compiling my app to produce the .mod,
i have both brew sdk 2.1 and 1.1 installed, but i first installed 2.1 and just got 1.1,
my program consists of several files, here they are:
AEEAppGen.c (from 2.1)
AEEModGen.c(from 2.1)
CAppLevel.h/.cpp
CAppPlayer.h/.cpp
App.h/.cpp
App_res.h
anyway, on the gccMakefile and buildme.bat, all i did was change the paths to where i installed gnude, that's about it. I know i need to include the files on the gccMakefile but i just don't know where...
here are the steps i did,
1. unzip gnude and brew support files
2. copy the entire src and inc files of brew 1.1 to gnude\1.1\inc and src directory
3. copy the 3 files from brew sdk1.1 support (ie, AEEComdef.h, AEEDB.h and AEELicence.h) to gnude\1.1\inc, yes overwriting the other files
4. copy my app's files to gnude\1.1\src\
5. then place buildme.bat to my app's directory and buildme from there
that's about it. what else should i do?
many many thanks for your time.
edit:
btw, if you guys want to know what the error is, it's:
make: *** No rule to make target app.c', needed by app.o'. Stop.

hello guys,
please help me a bit more, i am having difficulties making compiling my app to produce the .mod,
i have both brew sdk 2.1 and 1.1 installed, but i first installed 2.1 and just got 1.1,
my program consists of several files, here they are:
AEEAppGen.c (from 2.1)
AEEModGen.c(from 2.1)
CAppLevel.h/.cpp
CAppPlayer.h/.cpp
App.h/.cpp
App_res.h
anyway, on the gccMakefile and buildme.bat, all i did was change the paths to where i installed gnude, that's about it. I know i need to include the files on the gccMakefile but i just don't know where...
here are the steps i did,
1. unzip gnude and brew support files
2. copy the entire src and inc files of brew 1.1 to gnude\1.1\inc and src directory
3. copy the 3 files from brew sdk1.1 support (ie, AEEComdef.h, AEEDB.h and AEELicence.h) to gnude\1.1\inc, yes overwriting the other files
4. copy my app's files to gnude\1.1\src\
5. then place buildme.bat to my app's directory and buildme from there
that's about it. what else should i do?
many many thanks for your time.
edit:
btw, if you guys want to know what the error is, it's:
make: *** No rule to make target app.c', needed by app.o'. Stop.

Quote:
my program consists of several files,
here they are:
AEEAppGen.c (from 2.1)
AEEModGen.c(from 2.1)
If you are building for 1.1 you should use the src files for 1.1. However, If you havent modified the makefile, it is ignoring these files and using the files located in AEESRCPATH.
Quote:
CAppLevel.h/.cpp
CAppPlayer.h/.cpp
App.h/.cpp
App_res.h
I wrote
Quote:
NOTE: This will only work with a single file C application (ie sample.c) though you can use multiple header files. If you want to do anything else (Like C++ or multiple files) you will have to edit the makefile on your own.
if you are using .cpp files you are probably using C++, which i have not used so I do not know if there need to be different compiler settings for it... If you are using C, just rename the files to app.c, capplevel.c, etc.
Quote:
anyway, on the gccMakefile and buildme.bat, all i did was change the paths to where i installed gnude, that's about it. I know i need to include the files on the gccMakefile but i just don't know where...
For including the other files, try adding them to ADD_OBJS defined in the makefile (with a .o ending). ex.
Quote:
4. copy my app's files to gnude\1.1\src\
5. then place buildme.bat to my app's directory and buildme from there
you do not need to copy your apps files to gnude\1.1\src, you can leave them in whatever directory you are running buildme.bat from. You should copy gccMakefile to your app directory as well, and edit it. Then modify buildme.bat so that
make -f %GNUDE%\gccMakefile BREW_VER=%BREW_VER% TARGET=%TARGET% GCCHOMEPATH=%GNUDE%
becomes
make -f gccMakefile BREW_VER=%BREW_VER% TARGET=%TARGET% GCCHOMEPATH=%GNUDE%
(you have to change 2 lines in buildme.bat) This way, buildme.bat will build using the local version of gccMakefile
Quote:
btw, if you guys want to know what the error is, it's:
make: *** No rule to make target app.c', needed by app.o'. Stop.
This is because make can't find a file called app.c, so it quits

Quote:
my program consists of several files,
here they are:
AEEAppGen.c (from 2.1)
AEEModGen.c(from 2.1)
If you are building for 1.1 you should use the src files for 1.1. However, If you havent modified the makefile, it is ignoring these files and using the files located in AEESRCPATH.
Quote:
CAppLevel.h/.cpp
CAppPlayer.h/.cpp
App.h/.cpp
App_res.h
I wrote
Quote:
NOTE: This will only work with a single file C application (ie sample.c) though you can use multiple header files. If you want to do anything else (Like C++ or multiple files) you will have to edit the makefile on your own.
if you are using .cpp files you are probably using C++, which i have not used so I do not know if there need to be different compiler settings for it... If you are using C, just rename the files to app.c, capplevel.c, etc.
Quote:
anyway, on the gccMakefile and buildme.bat, all i did was change the paths to where i installed gnude, that's about it. I know i need to include the files on the gccMakefile but i just don't know where...
For including the other files, try adding them to ADD_OBJS defined in the makefile (with a .o ending). ex.
Quote:
4. copy my app's files to gnude\1.1\src\
5. then place buildme.bat to my app's directory and buildme from there
you do not need to copy your apps files to gnude\1.1\src, you can leave them in whatever directory you are running buildme.bat from. You should copy gccMakefile to your app directory as well, and edit it. Then modify buildme.bat so that
make -f %GNUDE%\gccMakefile BREW_VER=%BREW_VER% TARGET=%TARGET% GCCHOMEPATH=%GNUDE%
becomes
make -f gccMakefile BREW_VER=%BREW_VER% TARGET=%TARGET% GCCHOMEPATH=%GNUDE%
(you have to change 2 lines in buildme.bat) This way, buildme.bat will build using the local version of gccMakefile
Quote:
btw, if you guys want to know what the error is, it's:
make: *** No rule to make target app.c', needed by app.o'. Stop.
This is because make can't find a file called app.c, so it quits

Hi Tyndal,
i think i'm making a bit of progress, now i get all sorts of compiling/parse error,
how do i fix this when compiling under visual studio doesn't have any error?
many thanks,

Hi Tyndal,
i think i'm making a bit of progress, now i get all sorts of compiling/parse error,
how do i fix this when compiling under visual studio doesn't have any error?
many thanks,

edit your code according to the errors in the errorlog.txt
recompile (re-run buildme.bat)
its probably easiest to fix errors one line at a time starting from the beginning, since sometimes further down errors are caused by earlier errors.
Ive noticed the gcc/arm compiler tends to be more strict than visual studio is.

edit your code according to the errors in the errorlog.txt
recompile (re-run buildme.bat)
its probably easiest to fix errors one line at a time starting from the beginning, since sometimes further down errors are caused by earlier errors.
Ive noticed the gcc/arm compiler tends to be more strict than visual studio is.

i was afraid you're going to say that, nonetheless, it is still a very good advice, thanks.
right now, i craeted another app with only a singel source and successfully compiled it into .mod,
i now get this error: "Application Digital Signature Failure 1028"?
i was wondering if this has got to do something brew's step #5: "Make sure the phone is test-enabled"?
there is no way for me to have it test enabled since i live here in the Philippines,
many thanks.

i was afraid you're going to say that, nonetheless, it is still a very good advice, thanks.
right now, i craeted another app with only a singel source and successfully compiled it into .mod,
i now get this error: "Application Digital Signature Failure 1028"?
i was wondering if this has got to do something brew's step #5: "Make sure the phone is test-enabled"?
there is no way for me to have it test enabled since i live here in the Philippines,
many thanks.

Did you upload the .sig too?
Just in case, go to https://amber.qualcomm.com/developer/signing/testsig.jsp , enter your application name, the ESN of the phone you want to upload on (it's the hexa number (0x) you can found on the battery of your phone), and download the .sig which is produced..
Hope this will help!
For the others: np, i'll upload my tool today!
Greetz,
/kUFa

Did you upload the .sig too?
Just in case, go to https://amber.qualcomm.com/developer/signing/testsig.jsp , enter your application name, the ESN of the phone you want to upload on (it's the hexa number (0x) you can found on the battery of your phone), and download the .sig which is produced..
Hope this will help!
For the others: np, i'll upload my tool today!
Greetz,
/kUFa

Tyndal,
i'm still having problems compiling multiple source files using gnude/make files
Quote:
For including the other files, try adding them to ADD_OBJS defined in the makefile (with a .o ending). ex.
but still i get the same error
make: *** No rule to make target capplevel.c', needed by capplevel.o'. Stop.
any ideas? i have already renamed them to .c
as of now, i am transferring all the source code into one file, because that i can compile successfully, but i'd really like to fix this since it is very hard to look at a source file that is very long and big
thanks.

Tyndal,
i'm still having problems compiling multiple source files using gnude/make files
Quote:
For including the other files, try adding them to ADD_OBJS defined in the makefile (with a .o ending). ex.
but still i get the same error
make: *** No rule to make target capplevel.c', needed by capplevel.o'. Stop.
any ideas? i have already renamed them to .c
as of now, i am transferring all the source code into one file, because that i can compile successfully, but i'd really like to fix this since it is very hard to look at a source file that is very long and big
thanks.

Hmm sorry for the delay, forgot to sent it ;)
So here is my (lame but working) tool to compile..
http://www-und.ida.liu.se/~davpo603/Compile.zip
Btw, since it is a lame lame code, some stuffs no notice (or to change, source code included) :
Source names must be > 3 chars (dont ask me why :D )
Do not include the AppGen and ModGen in your code..
Good luck!
/kUfa

Hmm sorry for the delay, forgot to sent it ;)
So here is my (lame but working) tool to compile..
http://www-und.ida.liu.se/~davpo603/Compile.zip
Btw, since it is a lame lame code, some stuffs no notice (or to change, source code included) :
Source names must be > 3 chars (dont ask me why :D )
Do not include the AppGen and ModGen in your code..
Good luck!
/kUfa

Quote:Originally posted by mickey
but still i get the same error
make: *** No rule to make target capplevel.c', needed by capplevel.o'. Stop.
any ideas? i have already renamed them to .c
Are you sure buildme.bat is pointing to your edited makefile? (the two "make -f somefilename" lines? the parameter following -f is the filepath/name of the makefile)
I have several (multiple file) apps that built fine with only that single change in the makefile and fixes to the buildme.bat
-Tyndal

Quote:Originally posted by mickey
but still i get the same error
make: *** No rule to make target capplevel.c', needed by capplevel.o'. Stop.
any ideas? i have already renamed them to .c
Are you sure buildme.bat is pointing to your edited makefile? (the two "make -f somefilename" lines? the parameter following -f is the filepath/name of the makefile)
I have several (multiple file) apps that built fine with only that single change in the makefile and fixes to the buildme.bat
-Tyndal

Ok... I almost wish it wouldn't compile! Our application compiled fine using ADS 1.2. It compiles using Gnude and creates a mod. The issue is the mod crashes the A530 phone! The ADS1.2 compiles works fine on the A530.
Any ideas? Is Gnude a good way to go on commercial apps like this?
Thanks,
Curt
MIDIRingTones

Ok... I almost wish it wouldn't compile! Our application compiled fine using ADS 1.2. It compiles using Gnude and creates a mod. The issue is the mod crashes the A530 phone! The ADS1.2 compiles works fine on the A530.
Any ideas? Is Gnude a good way to go on commercial apps like this?
Thanks,
Curt
MIDIRingTones

I tried changing the compiler optimaizer to -o3 and -o4 and it crashed. The makefile had it set to -o2 and that worked fine with my app. You may try changing it to -o1 or -o0 (is -o0 valid?). Anyhow, other than that, you simply need to comment out all of your code but the init. If that works, simply add code back little by little. If it crashes in your init, simply start commenting out each line in your init functions. Once you find what code is crashing it, post it.
kirk

I tried changing the compiler optimaizer to -o3 and -o4 and it crashed. The makefile had it set to -o2 and that worked fine with my app. You may try changing it to -o1 or -o0 (is -o0 valid?). Anyhow, other than that, you simply need to comment out all of your code but the init. If that works, simply add code back little by little. If it crashes in your init, simply start commenting out each line in your init functions. Once you find what code is crashing it, post it.
kirk

Or check for something that was my dumb mistake :D
Seems I had it set to compile to the wrong phone... Worked like a charm when I made the right setting.
-- Curt

Or check for something that was my dumb mistake :D
Seems I had it set to compile to the wrong phone... Worked like a charm when I made the right setting.
-- Curt

Hi there,
Thats great tyndal, yours 07-02-2003 messg was absolutely brillliant...cheers.
As any one had luck with c++ application up an running on the handset using gnude environment?.
venu.

Hi there,
Thats great tyndal, yours 07-02-2003 messg was absolutely brillliant...cheers.
As any one had luck with c++ application up an running on the handset using gnude environment?.
venu.

Check it out, simple quick done tool to create .bat you can use in a visual studio makefile configuration!
/kUfa

Check it out, simple quick done tool to create .bat you can use in a visual studio makefile configuration!
/kUfa

I just wanted to thank you Tyndal. Your instructions worked perfectly on the first try without a single glitch!, Thank you for your effort and time, I know you saved me some.
-Mickey Portilla

I just wanted to thank you Tyndal. Your instructions worked perfectly on the first try without a single glitch!, Thank you for your effort and time, I know you saved me some.
-Mickey Portilla

hi tyndal,
i tried using gnude by following the steps given by you, but when i run the buildme.bat file, i get an error:
The procedure entry point mbrtowc could not be located in the dynamic link library cygwin1.dll
would really appreciate it if you help me resolve this error.
vikram

hi tyndal,
i tried using gnude by following the steps given by you, but when i run the buildme.bat file, i get an error:
The procedure entry point mbrtowc could not be located in the dynamic link library cygwin1.dll
would really appreciate it if you help me resolve this error.
vikram

venugujjeti --
Yes, I've gotten it to compile a C++ application just fine that runs on multiple handsets. See my thread http://brewforums.qualcomm.com/showthread.php?s=&threadid=2033 about how to get rid of exception, rtti, and c-runtime support so your binaries aren't too huge.
-Aaron

venugujjeti --
Yes, I've gotten it to compile a C++ application just fine that runs on multiple handsets. See my thread http://brewforums.qualcomm.com/showthread.php?s=&threadid=2033 about how to get rid of exception, rtti, and c-runtime support so your binaries aren't too huge.
-Aaron

Quote:Originally posted by kirkb
I tried changing the compiler optimaizer to -o3 and -o4 and it crashed. The makefile had it set to -o2 and that worked fine with my app. You may try changing it to -o1 or -o0 (is -o0 valid?). Anyhow, other than that, you simply need to comment out all of your code but the init. If that works, simply add code back little by little. If it crashes in your init, simply start commenting out each line in your init functions. Once you find what code is crashing it, post it.
kirk
The more optimizations you try the more the compiler will mangle your code. Some times it's for the worse. -O2 is safe, -O3 is pushing it, -O4 and above use only if your application REQUIRES this extra speed ( -O4 and such are considered unstable ).
Great Thread BTW, going to test after i get my BREW Developers Extranet login.

Quote:Originally posted by kirkb
I tried changing the compiler optimaizer to -o3 and -o4 and it crashed. The makefile had it set to -o2 and that worked fine with my app. You may try changing it to -o1 or -o0 (is -o0 valid?). Anyhow, other than that, you simply need to comment out all of your code but the init. If that works, simply add code back little by little. If it crashes in your init, simply start commenting out each line in your init functions. Once you find what code is crashing it, post it.
kirk
The more optimizations you try the more the compiler will mangle your code. Some times it's for the worse. -O2 is safe, -O3 is pushing it, -O4 and above use only if your application REQUIRES this extra speed ( -O4 and such are considered unstable ).
Great Thread BTW, going to test after i get my BREW Developers Extranet login.

Hi Tyndel
It was great on gnude,
While i was testing the gnude i got error
in the errorLog file as
"
D:\gnude/bin/arm-elf-ld.exe -Ttext 0 --emit-relocs -entry AEEMod_Load -o helloworld.elf -LD:\gnude/lib/gcc-lib/arm-elf/3.3 \
AEEModGen.o AEEAppGen.o GCCResolver.o helloworld.o -lgcc
D:\gnude/bin/arm-elf-ld: cannot find -lgcc
"
What is the lgcc and why it happen?

Hi Tyndel
It was great on gnude,
While i was testing the gnude i got error
in the errorLog file as
"
D:\gnude/bin/arm-elf-ld.exe -Ttext 0 --emit-relocs -entry AEEMod_Load -o helloworld.elf -LD:\gnude/lib/gcc-lib/arm-elf/3.3 \
AEEModGen.o AEEAppGen.o GCCResolver.o helloworld.o -lgcc
D:\gnude/bin/arm-elf-ld: cannot find -lgcc
"
What is the lgcc and why it happen?

do you have the file libgcc.a in the directory D:\gnude\lib\gcc-lib\arm-elf\3.3
?
if not, you need to modify the line
LIBDIRS = -L$(GCCHOMEPATH)/lib/gcc-lib/arm-elf/3.3 in the makefile to point to the directory that holds libgcc.a -Tyndal do you have the file libgcc.a in the directory D:\gnude\lib\gcc-lib\arm-elf\3.3 ? if not, you need to modify the line LIBDIRS = -L$(GCCHOMEPATH)/lib/gcc-lib/arm-elf/3.3
in the makefile to point to the directory that holds libgcc.a
-Tyndal

Thank you Tyndel
It is properly working.
But when i tried with other source code
caught 2 error s
c:/gnude/1.1/inc/AEEDB.h:104: error: syntax error before "struct"
c:/gnude/1.1/inc/AEEDB.h:121: error: syntax error before "struct"
lines:
104 :
typedef PACKED struct
{
byte byFieldType;
byte byFieldName;
AEEDBFileBasicField;
121:
typedef PACKED struct
{
byte byFieldType;
byte byFieldName;
uint16 wFieldLen;
AEEDBFileField;
th PACKED macro makes error
it is in
AEEComdef.h
#define PACKED
If you can find time, suggest me on these too
Thank you again
Aju

Thank you Tyndel
It is properly working.
But when i tried with other source code
caught 2 error s
c:/gnude/1.1/inc/AEEDB.h:104: error: syntax error before "struct"
c:/gnude/1.1/inc/AEEDB.h:121: error: syntax error before "struct"
lines:
104 :
typedef PACKED struct
{
byte byFieldType;
byte byFieldName;
AEEDBFileBasicField;
121:
typedef PACKED struct
{
byte byFieldType;
byte byFieldName;
uint16 wFieldLen;
AEEDBFileField;
th PACKED macro makes error
it is in
AEEComdef.h
#define PACKED
If you can find time, suggest me on these too
Thank you again
Aju

Quote:Originally posted by ajas
Problems with PACKED
I am also having this difficulty, and am understandably reluctant to trawl through all of the official headers, changing things I don't understand;). Can anyone suggest a fix for this?
Cheers,
Simon
Edit:
Fixed, thanks to Tyndal's superb guide. Thanks for this, man! :)

Quote:Originally posted by ajas
Problems with PACKED
I am also having this difficulty, and am understandably reluctant to trawl through all of the official headers, changing things I don't understand;). Can anyone suggest a fix for this?
Cheers,
Simon
Edit:
Fixed, thanks to Tyndal's superb guide. Thanks for this, man! :)

Hi
I have the same problem. What did you do to solve it?
Rose

Hi
I have the same problem. What did you do to solve it?
Rose

Quote:Originally posted by rose
Hi
I have the same problem. What did you do to solve it?
Rose
Which problem? If you mean the problems pertaining to the usage of PACKED in the headers, Tyndal's post in this thread right here gave detailed instructions on how to solve it (replacing the three headers with those from the GCCSupportForBrew.zip file being the principle step that solved the PACKED problem).

Quote:Originally posted by rose
Hi
I have the same problem. What did you do to solve it?
Rose
Which problem? If you mean the problems pertaining to the usage of PACKED in the headers, Tyndal's post in this thread right here gave detailed instructions on how to solve it (replacing the three headers with those from the GCCSupportForBrew.zip file being the principle step that solved the PACKED problem).

Hello Everybody and Tyndal,
I'm knew in BREW, and I'm trying to use the GNUDE arm compiler, as described in the article posted by Tyndal in this forum. The problem is that I’m receiving this error when I’m trying to build my application using the buildme.bat (that came with the Tyndal article):
C:\progra~1\gnude/bin/arm-elf-ld.exe -Ttext 0 --emit-relocs -entry AEEMod_Load -o sample.elf -LC:\progra~1\gnude/lib/gcc-lib/arm-elf/3.3.1 \ AEEModGen.o AEEAppGen.o sample.o -lgcc AEEModGen.o(.text+0x2b4): In function AEEMod_CreateInstance':
: undefined reference to AEEClsCreateInstance' make: *** [sample.elf] Error 1
I’d like to know what I’m doing wrong, or what did I forgot to put in my gnude application directory.
I followed ALL THE STEPS introduced by Tyndal, as it’s in the forum.

Hello Everybody and Tyndal,
I'm knew in BREW, and I'm trying to use the GNUDE arm compiler, as described in the article posted by Tyndal in this forum. The problem is that I’m receiving this error when I’m trying to build my application using the buildme.bat (that came with the Tyndal article):
C:\progra~1\gnude/bin/arm-elf-ld.exe -Ttext 0 --emit-relocs -entry AEEMod_Load -o sample.elf -LC:\progra~1\gnude/lib/gcc-lib/arm-elf/3.3.1 \ AEEModGen.o AEEAppGen.o sample.o -lgcc AEEModGen.o(.text+0x2b4): In function AEEMod_CreateInstance':
: undefined reference to AEEClsCreateInstance' make: *** [sample.elf] Error 1
I’d like to know what I’m doing wrong, or what did I forgot to put in my gnude application directory.
I followed ALL THE STEPS introduced by Tyndal, as it’s in the forum.

is that the only error/warning you are getting? which version of brew are you building for?
could you attach the whole errorLog.txt file?
-Tyndal

is that the only error/warning you are getting? which version of brew are you building for?
could you attach the whole errorLog.txt file?
-Tyndal

Tyndal,
I'm getting an Error, and I send my errorLog.txt file attached as asked.
And I'm compiling and linking using "src" and "inc" files of version 2.0 (not the update version 2.1).
Alexandre

Tyndal,
I'm getting an Error, and I send my errorLog.txt file attached as asked.
And I'm compiling and linking using "src" and "inc" files of version 2.0 (not the update version 2.1).
Alexandre

"printf" is not defined in ARM

"printf" is not defined in ARM

So, please, where can I find/get the functions defined in ARM? I really don't know how to do that.
Another point is that it compiles, the problem is linking it. For example, tried to use the arm-elf-gcj.exe file to compile/link a sample.java file, and everything were fine. But when I use the gcj with the options presented in gccMakefile of Tyndal, it generates the .o file, but I get the error of the AEEClsCreateInstance, like is in my posted errorLog.txt, and a lot more related to JV_... (what I believe should be Java Virtual ...).
I'd like to know if someone has some sample file which I should try with.
Thanks.
Alexandre

So, please, where can I find/get the functions defined in ARM? I really don't know how to do that.
Another point is that it compiles, the problem is linking it. For example, tried to use the arm-elf-gcj.exe file to compile/link a sample.java file, and everything were fine. But when I use the gcj with the options presented in gccMakefile of Tyndal, it generates the .o file, but I get the error of the AEEClsCreateInstance, like is in my posted errorLog.txt, and a lot more related to JV_... (what I believe should be Java Virtual ...).
I'd like to know if someone has some sample file which I should try with.
Thanks.
Alexandre

You cant use java.
Use the "Helper Functions" defined in the api for stuff like printf.. most of them are the same words in all caps, ex: strcpy() becomes STRCPY(). Any functions outside of those you will have to implement yourself.
for printf() use DBGPRINTF().. but this is only for debugging code, it will not display anything on the device screen, it will print text in the output/debug window of the emulator, and send messages to the brew logger when using the handset. (there is an SPRINTF if you need it though).
also, did you have any problems running the app on the emulator?
-Tyndal

You cant use java.
Use the "Helper Functions" defined in the api for stuff like printf.. most of them are the same words in all caps, ex: strcpy() becomes STRCPY(). Any functions outside of those you will have to implement yourself.
for printf() use DBGPRINTF().. but this is only for debugging code, it will not display anything on the device screen, it will print text in the output/debug window of the emulator, and send messages to the brew logger when using the handset. (there is an SPRINTF if you need it though).
also, did you have any problems running the app on the emulator?
-Tyndal

Tyndal,
I really had understood that I could use Java with BREW, after reading the first part of this qualcomm page:
And like I'm using GNUDE, that giver me the posibility of generating ELF code form Java code, I thought it could work.
But anyway, the problem is with the compilation of the function AEEClsCreateInstance that comes with Qualcomm BREW "src" file AEEModGen.c.
C:\progra~1\gnude/bin/arm-elf-ld.exe -Ttext 0 --emit-relocs -entry AEEMod_Load -o sample.elf -LC:\progra~1\gnude/lib/gcc-lib/arm-elf/3.3.1 \
AEEModGen.o AEEAppGen.o GCCResolver.o sample.o
AEEModGen.o(.text+0x2b4): In function AEEMod_CreateInstance':
: undefined reference to AEEClsCreateInstance'
make: *** [sample.elf] Error 1
Why can't I link normally this file AEEModGen.o?
Thanks again.

Tyndal,
I really had understood that I could use Java with BREW, after reading the first part of this qualcomm page:
And like I'm using GNUDE, that giver me the posibility of generating ELF code form Java code, I thought it could work.
But anyway, the problem is with the compilation of the function AEEClsCreateInstance that comes with Qualcomm BREW "src" file AEEModGen.c.
C:\progra~1\gnude/bin/arm-elf-ld.exe -Ttext 0 --emit-relocs -entry AEEMod_Load -o sample.elf -LC:\progra~1\gnude/lib/gcc-lib/arm-elf/3.3.1 \
AEEModGen.o AEEAppGen.o GCCResolver.o sample.o
AEEModGen.o(.text+0x2b4): In function AEEMod_CreateInstance':
: undefined reference to AEEClsCreateInstance'
make: *** [sample.elf] Error 1
Why can't I link normally this file AEEModGen.o?
Thanks again.

looking at your attached errorlog.txt, it looks like you are not even building AEEModGen.o and AEEAppGen.o .. was that the entire errorLog.txt file?
Anyway, ive included a minimal helloworld sample source file "sample.c", try using that and see if it builds properly for you.. if not post what errors you are still getting..
if that works for you, there is probably stuff in your code conflicting and causing problems.
-Tyndal

looking at your attached errorlog.txt, it looks like you are not even building AEEModGen.o and AEEAppGen.o .. was that the entire errorLog.txt file?
Anyway, ive included a minimal helloworld sample source file "sample.c", try using that and see if it builds properly for you.. if not post what errors you are still getting..
if that works for you, there is probably stuff in your code conflicting and causing problems.
-Tyndal

Tyndal,
Thanks to send me this code. Now, I could compile my code with gnu-arm, and it generated me the .mod file.
But I could not run it in my 2.0.1 Emulator, neither with the 3.0.1, but I could run perfectly my .dll HelloWorld file. Should I do something diferent/special to run it, or change something, or...
Thanks again.
PS: Attached I send the .log file I get from the Emulator 2.0.1.

Tyndal,
Thanks to send me this code. Now, I could compile my code with gnu-arm, and it generated me the .mod file.
But I could not run it in my 2.0.1 Emulator, neither with the 3.0.1, but I could run perfectly my .dll HelloWorld file. Should I do something diferent/special to run it, or change something, or...
Thanks again.
PS: Attached I send the .log file I get from the Emulator 2.0.1.

Quote:Originally posted by Alexandre
But I could not run it in my 2.0.1 Emulator, neither with the 3.0.1, but I could run perfectly my .dll HelloWorld file. Should I do something diferent/special to run it, or change something, or...
????
You dont run a .mod file on the emulator, for that you use a .dll compiled with visual studio.
the .mod file is only used on the actual handset.
if you want to build an emulator dll, create a new project called "sample" (possibly in a new location if you already have a project called "sample"), dont create a mif file (use the one i provided), and replace the skeleton code produced by the wizard with the code i provided. It should compile and run with no problems.
-Tyndal

Quote:Originally posted by Alexandre
But I could not run it in my 2.0.1 Emulator, neither with the 3.0.1, but I could run perfectly my .dll HelloWorld file. Should I do something diferent/special to run it, or change something, or...
????
You dont run a .mod file on the emulator, for that you use a .dll compiled with visual studio.
the .mod file is only used on the actual handset.
if you want to build an emulator dll, create a new project called "sample" (possibly in a new location if you already have a project called "sample"), dont create a mif file (use the one i provided), and replace the skeleton code produced by the wizard with the code i provided. It should compile and run with no problems.
-Tyndal

Hello, I wait could help me with the problem that I have.
I to continue the instructions for the gnude and show me the following mistake:
C:\gnude/bin/arm-elf-ld: cannot find -lgcc
make: *** [helloworld.elf] Error 1
I wait someone could help. bye :confused:

Hello, I wait could help me with the problem that I have.
I to continue the instructions for the gnude and show me the following mistake:
C:\gnude/bin/arm-elf-ld: cannot find -lgcc
make: *** [helloworld.elf] Error 1
I wait someone could help. bye :confused:

Hello Ramone,
It seams that you did not followed the installtion procidure of Gnude. That is y the lgcc compiler is not found. Follow the steps outlines in the thread http://brewforums.qualcomm.com/showthread.php?t=1601 . It must solve ur problem.

Hello Ramone,
It seams that you did not followed the installtion procidure of Gnude. That is y the lgcc compiler is not found. Follow the steps outlines in the thread http://brewforums.qualcomm.com/showthread.php?t=1601 . It must solve ur problem.

Ramone wrote:Hello, I wait could help me with the problem that I have.
I to continue the instructions for the gnude and show me the following mistake:
C:\gnude/bin/arm-elf-ld: cannot find -lgcc
make: *** [helloworld.elf] Error 1
I wait someone could help. bye :confused:
HI thank you very much already I could solve my problem and everything this one of marvel mcuhas thank you :D

Ramone wrote:Hello, I wait could help me with the problem that I have.
I to continue the instructions for the gnude and show me the following mistake:
C:\gnude/bin/arm-elf-ld: cannot find -lgcc
make: *** [helloworld.elf] Error 1
I wait someone could help. bye :confused:
HI thank you very much already I could solve my problem and everything this one of marvel mcuhas thank you :D

Does anyone know how to compile apps for nokia 6225 Big endian?
Is there a way of do that using the gnude package?
I tried to change the line in the gccMakefile: END = -mlittle-endian
to: END = -mbig-endian
and I get this error:
C:\gnude/bin/arm-elf-ld: AEEModGen.o: compiled for a big endian system and target is little endian
File in wrong format: failed to merge target specific data of file AEEModGen.o
Does anybody know how to do this and make a .mod file that does not restart the nokia handset?
My little endian mod files works perfect in all little endian handsets.
Marceu

Does anyone know how to compile apps for nokia 6225 Big endian?
Is there a way of do that using the gnude package?
I tried to change the line in the gccMakefile: END = -mlittle-endian
to: END = -mbig-endian
and I get this error:
C:\gnude/bin/arm-elf-ld: AEEModGen.o: compiled for a big endian system and target is little endian
File in wrong format: failed to merge target specific data of file AEEModGen.o
Does anybody know how to do this and make a .mod file that does not restart the nokia handset?
My little endian mod files works perfect in all little endian handsets.
Marceu

Recompile AEEModGen.c

Recompile AEEModGen.c

How can I do that with the gnude package?
Thanks,
Marceu Filho

How can I do that with the gnude package?
Thanks,
Marceu Filho

Now i get these errors:
C:\gnude/bin/arm-elf-ld.exe -EB -Ttext 0 --emit-relocs -entry AEEMod_Load -o SurfeSession.elf -LC:\gnude/lib/gcc-lib/arm-elf/3.3.1 \
AEEModGen.o AEEAppGen.o GCCResolver.o SurfeSession.o -lgcc
C:\gnude/bin/arm-elf-ld: C:\gnude/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(_addsub_df.o): compiled for a little endian system and target is big endian
File in wrong format: failed to merge target specific data of file C:\gnude/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(_addsub_df.o)
C:\gnude/bin/arm-elf-ld: C:\gnude/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(_mul_df.o): compiled for a little endian system and target is big endian
File in wrong format: failed to merge target specific data of file C:\gnude/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(_mul_df.o)
C:\gnude/bin/arm-elf-ld: C:\gnude/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(_div_df.o): compiled for a little endian system and target is big endian
Does anybody knows how can I find the libgcc.a that works with big endian?
Thanks,
Marceu

Now i get these errors:
C:\gnude/bin/arm-elf-ld.exe -EB -Ttext 0 --emit-relocs -entry AEEMod_Load -o SurfeSession.elf -LC:\gnude/lib/gcc-lib/arm-elf/3.3.1 \
AEEModGen.o AEEAppGen.o GCCResolver.o SurfeSession.o -lgcc
C:\gnude/bin/arm-elf-ld: C:\gnude/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(_addsub_df.o): compiled for a little endian system and target is big endian
File in wrong format: failed to merge target specific data of file C:\gnude/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(_addsub_df.o)
C:\gnude/bin/arm-elf-ld: C:\gnude/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(_mul_df.o): compiled for a little endian system and target is big endian
File in wrong format: failed to merge target specific data of file C:\gnude/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(_mul_df.o)
C:\gnude/bin/arm-elf-ld: C:\gnude/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(_div_df.o): compiled for a little endian system and target is big endian
Does anybody knows how can I find the libgcc.a that works with big endian?
Thanks,
Marceu

I loaded the new version of gnude for Windows this morning. Tyndal's instructions work great and I compiled my first .mod from his sample program. The only changes that need to be made are in the gccMakefile. Change the include and library paths.
From:
INC = -I$(AEEINCPATH) -I$(GCCHOMEPATH)\lib\gcc-lib\arm-elf\include -I$(GCCHOMEPATH)\arm-elf\include To: INC = -I$(AEEINCPATH) -I$(GCCHOMEPATH)\lib\gcc-lib\arm-elf\3.3.1\include -I$(GCCHOMEPATH)\arm-elf\3.3.1\include
and
From:
LIBDIRS = -L$(GCCHOMEPATH)/lib/gcc-lib/arm-elf/3.3 To: LIBDIRS = -L$(GCCHOMEPATH)/lib/gcc-lib/arm-elf/3.3.1
Many thanks to Tyndal!

I loaded the new version of gnude for Windows this morning. Tyndal's instructions work great and I compiled my first .mod from his sample program. The only changes that need to be made are in the gccMakefile. Change the include and library paths.
From:
INC = -I$(AEEINCPATH) -I$(GCCHOMEPATH)\lib\gcc-lib\arm-elf\include -I$(GCCHOMEPATH)\arm-elf\include To: INC = -I$(AEEINCPATH) -I$(GCCHOMEPATH)\lib\gcc-lib\arm-elf\3.3.1\include -I$(GCCHOMEPATH)\arm-elf\3.3.1\include
and
From:
LIBDIRS = -L$(GCCHOMEPATH)/lib/gcc-lib/arm-elf/3.3 To: LIBDIRS = -L$(GCCHOMEPATH)/lib/gcc-lib/arm-elf/3.3.1
Many thanks to Tyndal!

Using Tyndal's excellent example above and jhw's suggestions from http://brewforums.qualcomm.com/showthread.php?t=1793 I edited gccMakefile and the buildme batch file to generate DLLs. You can put the attached dllMakefile in your GNUDE home directory (c:\gnude) and the dllme file in the same directory as your source. You may need to edit variable names in both these files to get them to point to both your GNUDE and GCC home directories.
I just commented out the lines I changed, so if you already have gccMakefile up and running you can compare and contrast the differences in dllMakefile. I'm really new to this, so please share any improvements or issues.

Using Tyndal's excellent example above and jhw's suggestions from http://brewforums.qualcomm.com/showthread.php?t=1793 I edited gccMakefile and the buildme batch file to generate DLLs. You can put the attached dllMakefile in your GNUDE home directory (c:\gnude) and the dllme file in the same directory as your source. You may need to edit variable names in both these files to get them to point to both your GNUDE and GCC home directories.
I just commented out the lines I changed, so if you already have gccMakefile up and running you can compare and contrast the differences in dllMakefile. I'm really new to this, so please share any improvements or issues.

I was able to use the mak file provided by tyndal in buildfiles.zip to make my mod files. I then tried to make my own mak file using brew's addin utilities. But once it was made i could not use the batch file to build my corresponding mod file. What changes do i have to make to my build procedure. Is there some tuts or faqs on maks. Please let me know. By the way comparing the gnu through cygwin, gnu through gnude and then cross compiler (worth $1500) by qualcomm, which do u think is better. is the gnu compiler reliable enough? Hope to get your inputs Thank you :D Jovialn I was able to use the mak file provided by tyndal in buildfiles.zip to make my mod files. I then tried to make my own mak file using brew's addin utilities. But once it was made i could not use the batch file to build my corresponding mod file. What changes do i have to make to my build procedure. Is there some tuts or faqs on maks. Please let me know. By the way comparing the gnu through cygwin, gnu through gnude and then cross compiler (worth$1500) by qualcomm, which do u think is better. is the gnu compiler reliable enough? Hope to get your inputs
Thank you
:D Jovialn

If you're using GNU Make instead of MS Visual Studio's NMAKE, you can find the manual here:
http://www.gnu.org/software/make/manual/make.html
Also, there are a couple of issues (well discussed on this thread) regarding BREW specific needs (like compiler flags, linker flags / order, BREWElf2Mod.exe, ... ), which are not (directly) related with creating MAK file...

If you're using GNU Make instead of MS Visual Studio's NMAKE, you can find the manual here:
http://www.gnu.org/software/make/manual/make.html
Also, there are a couple of issues (well discussed on this thread) regarding BREW specific needs (like compiler flags, linker flags / order, BREWElf2Mod.exe, ... ), which are not (directly) related with creating MAK file...

Hi Tyndal,
The tools you have provided are really good and has helped me in making work easy.
I have a new problem....
The game on which i am working on is compiling properly in ARM but fails to do so in GCC and gives error of no matching function for call ....
if i do explicit casting then it works...
i wanted to know why this problem is coming...

Hi Tyndal,
The tools you have provided are really good and has helped me in making work easy.
I have a new problem....
The game on which i am working on is compiling properly in ARM but fails to do so in GCC and gives error of no matching function for call ....
if i do explicit casting then it works...
i wanted to know why this problem is coming...

Hello,
I am using the GNUDE arm-elf compiler v3.3.1 and I am having problems with the linker. Let me say that I have read all pertinent posts regarding this matter and I still can't figure out what the problem is.
I am getting the following error:
app.o(.text+...): In function 'process(...)': undefined reference to '__udivsi3'
app.o(.text+...): In function 'process(...)': undefined reference to '__umodsi3'
NMAKE : fatal error U1077: 'c:...' : return code '0x1'
I am aware that 'libgcc.a" is library needed and indeed that library is included in the Makefile in addition to the "-lgcc" flag (using arm-elf-c++.exe compiler and arm-elf-ld.exe).
Here is the snippet of the Makefile:
INC = -I$(AEEINCPATH) -I$(GCCHOMEPATH)\lib\gcc-lib\arm-elf\3.3.1\include -I$(GCCHOMEPATH)\arm-elf\include LIBDIRS = -L$(GCCHOMEPATH)\lib\gcc-lib\arm-elf\3.3.1 -L$(GCCHOMEPATH)\arm-elf\lib LINK_CMD = -EB -Ttext 0 --emit-relocs -entry AEEMod_Load -o LDFLAGS =$(LIBDIRS) -lm -lgcc
Did/does anyone have similar problem as above? Any ideas?
Thank you.

Hello,
I am using the GNUDE arm-elf compiler v3.3.1 and I am having problems with the linker. Let me say that I have read all pertinent posts regarding this matter and I still can't figure out what the problem is.
I am getting the following error:
app.o(.text+...): In function 'process(...)': undefined reference to '__udivsi3'
app.o(.text+...): In function 'process(...)': undefined reference to '__umodsi3'
NMAKE : fatal error U1077: 'c:...' : return code '0x1'
I am aware that 'libgcc.a" is library needed and indeed that library is included in the Makefile in addition to the "-lgcc" flag (using arm-elf-c++.exe compiler and arm-elf-ld.exe).
Here is the snippet of the Makefile:
INC = -I$(AEEINCPATH) -I$(GCCHOMEPATH)\lib\gcc-lib\arm-elf\3.3.1\include -I$(GCCHOMEPATH)\arm-elf\include LIBDIRS = -L$(GCCHOMEPATH)\lib\gcc-lib\arm-elf\3.3.1 -L$(GCCHOMEPATH)\arm-elf\lib LINK_CMD = -EB -Ttext 0 --emit-relocs -entry AEEMod_Load -o LDFLAGS =$(LIBDIRS) -lm -lgcc
Did/does anyone have similar problem as above? Any ideas?
Thank you.

Hi all !
I need to get "GCCSupportForBREW.zip" file, Is there any free download site available?
Or is anyway that you guys send email with this file attached?
Just let me know ASAP.
Thank you all~

Hi all !
I need to get "GCCSupportForBREW.zip" file, Is there any free download site available?
Or is anyway that you guys send email with this file attached?
Just let me know ASAP.
Thank you all~

I donot think you can get else where "GCCSupportForBREW.zip".

I donot think you can get else where "GCCSupportForBREW.zip".

if i cannot find one is there any way i can create those files?
i mean other solutions to create .mod file using these other files and gnude-arm compiler?

if i cannot find one is there any way i can create those files?
i mean other solutions to create .mod file using these other files and gnude-arm compiler?

Hello guest,
If you can find the elf and mod file formats then you can generate a mod file with out the help of "GCCSupportForBREW.exe".
If you do open both .mod and .elf files in hex mode you can see that .mod file is nothing but elf file with some bits removed from hader and a lots of bytes removed from footer of the .elf file.

Hello guest,
If you can find the elf and mod file formats then you can generate a mod file with out the help of "GCCSupportForBREW.exe".
If you do open both .mod and .elf files in hex mode you can see that .mod file is nothing but elf file with some bits removed from hader and a lots of bytes removed from footer of the .elf file.

guest wrote:Hi all !
I need to get "GCCSupportForBREW.zip" file, Is there any free download site available?
The extranet is the only legal way to get it. But lets say you did get your hands on it without getting access to the extranet. What good it is? Sure, you can build a mod file, but you won't be able to run in on a phone. You need a test enabled phone and test signature to do that.

guest wrote:Hi all !
I need to get "GCCSupportForBREW.zip" file, Is there any free download site available?
The extranet is the only legal way to get it. But lets say you did get your hands on it without getting access to the extranet. What good it is? Sure, you can build a mod file, but you won't be able to run in on a phone. You need a test enabled phone and test signature to do that.

skumar_rao wrote:If you can find the elf and mod file formats then you can generate a mod file with out the help of "GCCSupportForBREW.exe".
If you do open both .mod and .elf files in hex mode you can see that .mod file is nothing but elf file with some bits removed from hader and a lots of bytes removed from footer of the .elf file.
That's true, almost. BREW simply loads the mod data into memory, and jumps to the first instruction, where AEEMod_Load() should be. For GCC, some extra fixups are required at load time, due to the way it employs a global offset table, and the extranet tool inserts some code in the mod file to do that. I've given more details on this elsewhere in the forum. I don't think it should take very long for someone to figure out how to make their own tool to do this.

skumar_rao wrote:If you can find the elf and mod file formats then you can generate a mod file with out the help of "GCCSupportForBREW.exe".
If you do open both .mod and .elf files in hex mode you can see that .mod file is nothing but elf file with some bits removed from hader and a lots of bytes removed from footer of the .elf file.
That's true, almost. BREW simply loads the mod data into memory, and jumps to the first instruction, where AEEMod_Load() should be. For GCC, some extra fixups are required at load time, due to the way it employs a global offset table, and the extranet tool inserts some code in the mod file to do that. I've given more details on this elsewhere in the forum. I don't think it should take very long for someone to figure out how to make their own tool to do this.

and the tool is using objdump internally, that should give some tips to those who want to write their own ;)

and the tool is using objdump internally, that should give some tips to those who want to write their own ;)

markb wrote:The extranet is the only legal way to get it. But lets say you did get your hands on it without getting access to the extranet. What good it is? Sure, you can build a mod file, but you won't be able to run in on a phone. You need a test enabled phone and test signature to do that.
Hello
I am also quite new to the brew thing. We have a java base multi user mobile game engine and would like to support brew. Therefore as a first step for us would be to be able to develop app that run on the emulator. I don't have visual studio since most work I do is linux and java based. Getting GCCSupportForBREW.zip would be a great way to start testing without having to register and spend money. So having the GCCSupportForBREW.zip downloadable would be great. The fact that It will not run on real phone is a problem that can be solved later. If the SDK is downloadable why not also this file?

markb wrote:The extranet is the only legal way to get it. But lets say you did get your hands on it without getting access to the extranet. What good it is? Sure, you can build a mod file, but you won't be able to run in on a phone. You need a test enabled phone and test signature to do that.
Hello
I am also quite new to the brew thing. We have a java base multi user mobile game engine and would like to support brew. Therefore as a first step for us would be to be able to develop app that run on the emulator. I don't have visual studio since most work I do is linux and java based. Getting GCCSupportForBREW.zip would be a great way to start testing without having to register and spend money. So having the GCCSupportForBREW.zip downloadable would be great. The fact that It will not run on real phone is a problem that can be solved later. If the SDK is downloadable why not also this file?

GCCSupportForBREW.zip is only required to support ARM, not emulator...
You can easily develop emulator DLLs with gcc, DevCPP, mingw, or whatever c/c++ compiler that's capable of building a win32 lib/dll.

GCCSupportForBREW.zip is only required to support ARM, not emulator...
You can easily develop emulator DLLs with gcc, DevCPP, mingw, or whatever c/c++ compiler that's capable of building a win32 lib/dll.

bulach wrote:GCCSupportForBREW.zip is only required to support ARM, not emulator...
You can easily develop emulator DLLs with gcc, DevCPP, mingw, or whatever c/c++ compiler that's capable of building a win32 lib/dll.
Thank you, I now have got a application working in the emulator with devcpp (and some source changes that where posted elsewhere in this forum). The forum is quite usefull.

bulach wrote:GCCSupportForBREW.zip is only required to support ARM, not emulator...
You can easily develop emulator DLLs with gcc, DevCPP, mingw, or whatever c/c++ compiler that's capable of building a win32 lib/dll.
Thank you, I now have got a application working in the emulator with devcpp (and some source changes that where posted elsewhere in this forum). The forum is quite usefull.

marceu wrote:Now i get these errors:
...
compiled for a little endian system and target is big endian
Does anybody knows how can I find the libgcc.a that works with big endian?
Thanks,
Marceu
I have the same problem.
We work with Verifone Vx510 EFTPOS terminals. ARM9 with big endian.
Does anyone know where we can get a library compiled for big endian format?
Valentin

marceu wrote:Now i get these errors:
...
compiled for a little endian system and target is big endian
Does anybody knows how can I find the libgcc.a that works with big endian?
Thanks,
Marceu
I have the same problem.
We work with Verifone Vx510 EFTPOS terminals. ARM9 with big endian.
Does anyone know where we can get a library compiled for big endian format?
Valentin

Hi Tyndal and others
I have follwoed the instructions that Tyndal has explained and am trying to generate the mod file for the device. In that process I get the following message:
C:\gnude/bin/arm-elf-ld: cannot find -lgcc
make: *** [findmetwo.elf] Error 1
The complte output of errorLog .txt is included below.
Any help on this will really be appreciated. I also need to know i fthere is any pointer where I can find th emeaning of all the switeches used for compilation.
Best Regards
Raj
************************
rm -f AEEModGen.o AEEAppGen.o GCCResolver.o findmetwo.o findmetwo.elf findmetwo.mod
------------------------------------
C:\gnude/bin/arm-elf-gcc.exe -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -IC:\gnude/2.1.0/inc -IC:\gnude\lib\gcc-lib\arm-elf\include -IC:\gnude\arm-elf\include -O2 -o AEEModGen.o C:\gnude/2.1.0/src/AEEModGen.c
C:\gnude/bin/arm-elf-gcc.exe -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -IC:\gnude/2.1.0/inc -IC:\gnude\lib\gcc-lib\arm-elf\include -IC:\gnude\arm-elf\include -O2 -o AEEAppGen.o C:\gnude/2.1.0/src/AEEAppGen.c
C:\gnude/bin/arm-elf-gcc.exe -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -IC:\gnude/2.1.0/inc -IC:\gnude\lib\gcc-lib\arm-elf\include -IC:\gnude\arm-elf\include -O2 -o GCCResolver.o C:\gnude/GCCResolver.c
C:\gnude/bin/arm-elf-gcc.exe -c -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -IC:\gnude/2.1.0/inc -IC:\gnude\lib\gcc-lib\arm-elf\include -IC:\gnude\arm-elf\include -O2 -o findmetwo.o findmetwo.c
C:\gnude/bin/arm-elf-ld.exe -Ttext 0 --emit-relocs -entry AEEMod_Load -o findmetwo.elf -LC:\gnude/lib/gcc-lib/arm-elf/3.3 \
AEEModGen.o AEEAppGen.o GCCResolver.o findmetwo.o -lgcc
C:\gnude/bin/arm-elf-ld: cannot find -lgcc
make: *** [findmetwo.elf] Error 1
------------------------------------
***********************
tyndal wrote:I was able to get GCC working using the gnude package.
This allows you to use the GCC compiler without having to rebuild gcc for cross compiling. you also do not need to install cygwin. You will only need to download 5 things:
gnude-arm-win.zip -- from the GNUDE website (WARNING: it is about 72Meg)
GCCSupportForBREW.zip -- from the BREW Developer's Extranet
build_files.zip -- attached to this posting.
build_files2.zip -- attached to the next posting. (attachment is limited to 100k)
BREW SDK (you need the include and source files from the "inc" and "src" folders)
NOTE: This will only work with a single file C application (ie sample.c) though you can use multiple header files. If you want to do anything else (Like C++ or multiple files) you will have to edit the makefile on your own.
To do this i edited the makefile included with "GCCSupportForBREW.zip" and created some batch scripts.
If you need to make changes you should add "c:\gnude" your PATH, and then copy and edit gccMakefile to your liking.
NOTE: the makefile is a gnu make makefile, not a nmake makefile DO NOT use it with NMAKE, use the make.exe included in the attached "build_files.zip".
The process:
----------------------
http://sourceforge.net/project/showfiles.php?group_id=54319
INSTALL
----------------------
unzip "gnude-arm-win.zip" somewhere (like "c:\gnude\ ")
unzip "GCCSupportForBREW.zip"
unzip "build_files.zip" and "build_files2.zip" into the root gnude directory.
example:
c:\gnude\make.exe
c:\gnude\rm.exe
c:\gnude\gccMakefile
c:\gnude\buildme.bat
c:\gnude\runme.bat
copy "GCCResolver.c" and "BREWelf2mod.exe" from "GCCSupportForBREW.zip" to the root gnude directory
example:
c:\gnude\GCCResolver.c
c:\gnude\BREWelf2mod.exe
for brew 1.1, copy the "inc" and "src" directories from the 1.1 BREW SDK to a new subdirectory "1.1" under the gnude directory
example:
c:\gnude\1.1\inc\
c:\gnude\1.1\src\
replace the 3 header files "AEEComdef.h" "AEEDB.h" and "AEELicense.h" from "BREW_SDK1.1_Support\inc" subdirecotory of "GCCSupportForBREW.zip"
example:
c:\gnude\1.1\inc\AEEComdef.h
c:\gnude\1.1\inc\AEEDB.h
for brew 2.0, copy the "inc" and "src" directories from the 2.0 BREW SDK to a new subdirectory "2.0" under the gnude directory
example:
c:\gnude\2.0\inc\
c:\gnude\2.0\src\
EDIT CONFIG
----------------------
copy "buildme.bat" to the directory containing your source files.
edit "buildme.bat"
set "SET GNUDE=" to the directory you unzipped the files into.
set "SET TARGET=" to the name of your app. (ex sample, which will create sample.mod)
set "SET BREW_VER=" to either "1.1" or "2.0" depending on which version you want to build for.
NOTE: you cannot have spaces before/after the equals signs, so
SET TARGET=sample // CORRECT
SET TARGET = sampe // INCORRECT
BUILD
----------------------
run buildme.bat to run the gcc compiler and build your application.
compiler output will be written to a file called errorLog.txt that you need to check for any warnings/errors.
----------------------------------------------------
Happy Building.
-Tyndal
----------------------------------------------------
ATTACHED:
"build_files.zip" containing 4 files:
bulidme.bat -- dos batch file for building
cleanme.bat -- dos batch file for cleanup
gccMakefile -- gnu makefile for building
make.exe -- gnu make program for reading "gccMakefile"

Hi Tyndal and others
I have follwoed the instructions that Tyndal has explained and am trying to generate the mod file for the device. In that process I get the following message:
C:\gnude/bin/arm-elf-ld: cannot find -lgcc
make: *** [findmetwo.elf] Error 1
The complte output of errorLog .txt is included below.
Any help on this will really be appreciated. I also need to know i fthere is any pointer where I can find th emeaning of all the switeches used for compilation.
Best Regards
Raj
************************
rm -f AEEModGen.o AEEAppGen.o GCCResolver.o findmetwo.o findmetwo.elf findmetwo.mod
------------------------------------
C:\gnude/bin/arm-elf-gcc.exe -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -IC:\gnude/2.1.0/inc -IC:\gnude\lib\gcc-lib\arm-elf\include -IC:\gnude\arm-elf\include -O2 -o AEEModGen.o C:\gnude/2.1.0/src/AEEModGen.c
C:\gnude/bin/arm-elf-gcc.exe -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -IC:\gnude/2.1.0/inc -IC:\gnude\lib\gcc-lib\arm-elf\include -IC:\gnude\arm-elf\include -O2 -o AEEAppGen.o C:\gnude/2.1.0/src/AEEAppGen.c
C:\gnude/bin/arm-elf-gcc.exe -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -IC:\gnude/2.1.0/inc -IC:\gnude\lib\gcc-lib\arm-elf\include -IC:\gnude\arm-elf\include -O2 -o GCCResolver.o C:\gnude/GCCResolver.c
C:\gnude/bin/arm-elf-gcc.exe -c -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -IC:\gnude/2.1.0/inc -IC:\gnude\lib\gcc-lib\arm-elf\include -IC:\gnude\arm-elf\include -O2 -o findmetwo.o findmetwo.c
C:\gnude/bin/arm-elf-ld.exe -Ttext 0 --emit-relocs -entry AEEMod_Load -o findmetwo.elf -LC:\gnude/lib/gcc-lib/arm-elf/3.3 \
AEEModGen.o AEEAppGen.o GCCResolver.o findmetwo.o -lgcc
C:\gnude/bin/arm-elf-ld: cannot find -lgcc
make: *** [findmetwo.elf] Error 1
------------------------------------
***********************
tyndal wrote:I was able to get GCC working using the gnude package.
This allows you to use the GCC compiler without having to rebuild gcc for cross compiling. you also do not need to install cygwin. You will only need to download 5 things:
gnude-arm-win.zip -- from the GNUDE website (WARNING: it is about 72Meg)
GCCSupportForBREW.zip -- from the BREW Developer's Extranet
build_files.zip -- attached to this posting.
build_files2.zip -- attached to the next posting. (attachment is limited to 100k)
BREW SDK (you need the include and source files from the "inc" and "src" folders)
NOTE: This will only work with a single file C application (ie sample.c) though you can use multiple header files. If you want to do anything else (Like C++ or multiple files) you will have to edit the makefile on your own.
To do this i edited the makefile included with "GCCSupportForBREW.zip" and created some batch scripts.
If you need to make changes you should add "c:\gnude" your PATH, and then copy and edit gccMakefile to your liking.
NOTE: the makefile is a gnu make makefile, not a nmake makefile DO NOT use it with NMAKE, use the make.exe included in the attached "build_files.zip".
The process:
----------------------
http://sourceforge.net/project/showfiles.php?group_id=54319
INSTALL
----------------------
unzip "gnude-arm-win.zip" somewhere (like "c:\gnude\ ")
unzip "GCCSupportForBREW.zip"
unzip "build_files.zip" and "build_files2.zip" into the root gnude directory.
example:
c:\gnude\make.exe
c:\gnude\rm.exe
c:\gnude\gccMakefile
c:\gnude\buildme.bat
c:\gnude\runme.bat
copy "GCCResolver.c" and "BREWelf2mod.exe" from "GCCSupportForBREW.zip" to the root gnude directory
example:
c:\gnude\GCCResolver.c
c:\gnude\BREWelf2mod.exe
for brew 1.1, copy the "inc" and "src" directories from the 1.1 BREW SDK to a new subdirectory "1.1" under the gnude directory
example:
c:\gnude\1.1\inc\
c:\gnude\1.1\src\
replace the 3 header files "AEEComdef.h" "AEEDB.h" and "AEELicense.h" from "BREW_SDK1.1_Support\inc" subdirecotory of "GCCSupportForBREW.zip"
example:
c:\gnude\1.1\inc\AEEComdef.h
c:\gnude\1.1\inc\AEEDB.h
for brew 2.0, copy the "inc" and "src" directories from the 2.0 BREW SDK to a new subdirectory "2.0" under the gnude directory
example:
c:\gnude\2.0\inc\
c:\gnude\2.0\src\
EDIT CONFIG
----------------------
copy "buildme.bat" to the directory containing your source files.
edit "buildme.bat"
set "SET GNUDE=" to the directory you unzipped the files into.
set "SET TARGET=" to the name of your app. (ex sample, which will create sample.mod)
set "SET BREW_VER=" to either "1.1" or "2.0" depending on which version you want to build for.
NOTE: you cannot have spaces before/after the equals signs, so
SET TARGET=sample // CORRECT
SET TARGET = sampe // INCORRECT
BUILD
----------------------
run buildme.bat to run the gcc compiler and build your application.
compiler output will be written to a file called errorLog.txt that you need to check for any warnings/errors.
----------------------------------------------------
Happy Building.
-Tyndal
----------------------------------------------------
ATTACHED:
"build_files.zip" containing 4 files:
bulidme.bat -- dos batch file for building
cleanme.bat -- dos batch file for cleanup
gccMakefile -- gnu makefile for building
make.exe -- gnu make program for reading "gccMakefile"

Dear all
Please ignore my posting. I identified the problem. In the gccMakeFile
the system was accessing the C:\gnude\lib\gcc-lib\arm-elf\3.3 whereas actually it is
C:\gnude\lib\gcc-lib\arm-elf\3.3.1
Thanks to all
Best Regards
Raj
I have follwoed the instructions that Tyndal has explained and am trying to generate the mod file for the device. In that process I get the following message:
C:\gnude/bin/arm-elf-ld: cannot find -lgcc
make: *** [findmetwo.elf] Error 1
The complte output of errorLog .txt is included below.
Any help on this will really be appreciated. I also need to know i fthere is any pointer where I can find th emeaning of all the switeches used for compilation.
Best Regards
Raj
************************
rm -f AEEModGen.o AEEAppGen.o GCCResolver.o findmetwo.o findmetwo.elf findmetwo.mod
------------------------------------
C:\gnude/bin/arm-elf-gcc.exe -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -IC:\gnude/2.1.0/inc -IC:\gnude\lib\gcc-lib\arm-elf\include -IC:\gnude\arm-elf\include -O2 -o AEEModGen.o C:\gnude/2.1.0/src/AEEModGen.c
C:\gnude/bin/arm-elf-gcc.exe -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -IC:\gnude/2.1.0/inc -IC:\gnude\lib\gcc-lib\arm-elf\include -IC:\gnude\arm-elf\include -O2 -o AEEAppGen.o C:\gnude/2.1.0/src/AEEAppGen.c
C:\gnude/bin/arm-elf-gcc.exe -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -IC:\gnude/2.1.0/inc -IC:\gnude\lib\gcc-lib\arm-elf\include -IC:\gnude\ar
m-elf\include -O2 -o GCCResolver.o C:\gnude/GCCResolver.c
C:\gnude/bin/arm-elf-gcc.exe -c -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -IC:\gnude/2.1.0/inc -IC:\gnude\lib\gcc-lib\arm-elf\include -IC:\gnude\arm-elf\include -O2 -o findmetwo.o findmetwo.c
C:\gnude/bin/arm-elf-ld.exe -Ttext 0 --emit-relocs -entry AEEMod_Load -o findmetwo.elf -LC:\gnude/lib/gcc-lib/arm-elf/3.3 \
AEEModGen.o AEEAppGen.o GCCResolver.o findmetwo.o -lgcc
C:\gnude/bin/arm-elf-ld: cannot find -lgcc
make: *** [findmetwo.elf] Error 1
------------------------------------
***********************

Dear all
Please ignore my posting. I identified the problem. In the gccMakeFile
the system was accessing the C:\gnude\lib\gcc-lib\arm-elf\3.3 whereas actually it is
C:\gnude\lib\gcc-lib\arm-elf\3.3.1
Thanks to all
Best Regards
Raj
I have follwoed the instructions that Tyndal has explained and am trying to generate the mod file for the device. In that process I get the following message:
C:\gnude/bin/arm-elf-ld: cannot find -lgcc
make: *** [findmetwo.elf] Error 1
The complte output of errorLog .txt is included below.
Any help on this will really be appreciated. I also need to know i fthere is any pointer where I can find th emeaning of all the switeches used for compilation.
Best Regards
Raj
************************
rm -f AEEModGen.o AEEAppGen.o GCCResolver.o findmetwo.o findmetwo.elf findmetwo.mod
------------------------------------
C:\gnude/bin/arm-elf-gcc.exe -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -IC:\gnude/2.1.0/inc -IC:\gnude\lib\gcc-lib\arm-elf\include -IC:\gnude\arm-elf\include -O2 -o AEEModGen.o C:\gnude/2.1.0/src/AEEModGen.c
C:\gnude/bin/arm-elf-gcc.exe -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -IC:\gnude/2.1.0/inc -IC:\gnude\lib\gcc-lib\arm-elf\include -IC:\gnude\arm-elf\include -O2 -o AEEAppGen.o C:\gnude/2.1.0/src/AEEAppGen.c
C:\gnude/bin/arm-elf-gcc.exe -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -IC:\gnude/2.1.0/inc -IC:\gnude\lib\gcc-lib\arm-elf\include -IC:\gnude\ar
m-elf\include -O2 -o GCCResolver.o C:\gnude/GCCResolver.c
C:\gnude/bin/arm-elf-gcc.exe -c -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -IC:\gnude/2.1.0/inc -IC:\gnude\lib\gcc-lib\arm-elf\include -IC:\gnude\arm-elf\include -O2 -o findmetwo.o findmetwo.c
C:\gnude/bin/arm-elf-ld.exe -Ttext 0 --emit-relocs -entry AEEMod_Load -o findmetwo.elf -LC:\gnude/lib/gcc-lib/arm-elf/3.3 \
AEEModGen.o AEEAppGen.o GCCResolver.o findmetwo.o -lgcc
C:\gnude/bin/arm-elf-ld: cannot find -lgcc
make: *** [findmetwo.elf] Error 1
------------------------------------
***********************

First of all, let me thank tyndal for providing the groundwork for everyone.
I am trying to compile c++ files, and I am having problems. I changed the compiler from the arm-elf-gcc to arm-elf-g++.
I have followed all the instructions, and I am able to build each object file, however linking fails. I get errors like these:
ABrewApp.o(.text+0x36c): In function ABrewApp::ABrewApp(_IShell*)':
: undefined reference to __gxx_personality_sj0'
ABrewApp.o(.text+0x5c8): In function ABrewApp::ABrewApp(_IShell*)':
: undefined reference to __gxx_personality_sj0'
ABrewApp.o(.text+0x6f4): In function ABrewApp::~ABrewApp()':
: undefined reference to __gxx_personality_sj0'
Thanks.

First of all, let me thank tyndal for providing the groundwork for everyone.
I am trying to compile c++ files, and I am having problems. I changed the compiler from the arm-elf-gcc to arm-elf-g++.
I have followed all the instructions, and I am able to build each object file, however linking fails. I get errors like these:
ABrewApp.o(.text+0x36c): In function ABrewApp::ABrewApp(_IShell*)':
: undefined reference to __gxx_personality_sj0'
ABrewApp.o(.text+0x5c8): In function ABrewApp::ABrewApp(_IShell*)':
: undefined reference to __gxx_personality_sj0'
ABrewApp.o(.text+0x6f4): In function ABrewApp::~ABrewApp()':
: undefined reference to __gxx_personality_sj0'
Thanks.

i followed ur instructions but encountering errors which point to the src and inc of the sdk although i followed each and every step as u had described in ur post.my code is in BREW SDk 2.1 and uses .cpp files(with static variables). i made a few corresponding changes.What can be the posssible reason.AEEAppGen.o and AEEModGen.o are created only.
error is:
C:\gnude/bin/arm-elf-gcc.exe -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -IC:\gnude/2.0/inc -IC:\gnude\lib\gcc-lib\arm-elf\2.0\include -IC:\gnude\arm-elf\include -O2 -o trumptycoon.o
D:\Ankit\Projects\tt\trumptycoon\trumptycoon.cpp
In file included from C:/gnude/2.0/inc/AEEWeb.h:22,
from D:/Ankit/Projects/tt/trumptycoon/ApiHum/brew/ApiHum.h:27,
from D:/Ankit/Projects/tt/trumptycoon/trumptycoon.cpp:5:
C:/gnude/2.0/inc/AEESource.h:190: error: declaration of int32
(*IGetLineVtbl::GetLine)(IGetLine*, GetLine*, long int)'
C:/gnude/2.0/inc/AEESource.h:176: error: changes meaning of GetLine' from 
typedef struct GetLine GetLine'
In file included from C:/gnude/2.0/inc/AEEWeb.h:24,
from D:/Ankit/Projects/tt/trumptycoon/ApiHum/brew/ApiHum.h:27,
from D:/Ankit/Projects/tt/trumptycoon/trumptycoon.cpp:5:
C:/gnude/2.0/inc/AEEWebOpts.h:419:27: warning: no newline at end of file
make: *** [trumptycoon.o] Error 1
plz advise what should be done. i'm caught in a very akward situation.

i followed ur instructions but encountering errors which point to the src and inc of the sdk although i followed each and every step as u had described in ur post.my code is in BREW SDk 2.1 and uses .cpp files(with static variables). i made a few corresponding changes.What can be the posssible reason.AEEAppGen.o and AEEModGen.o are created only.
error is:
C:\gnude/bin/arm-elf-gcc.exe -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -IC:\gnude/2.0/inc -IC:\gnude\lib\gcc-lib\arm-elf\2.0\include -IC:\gnude\arm-elf\include -O2 -o trumptycoon.o
D:\Ankit\Projects\tt\trumptycoon\trumptycoon.cpp
In file included from C:/gnude/2.0/inc/AEEWeb.h:22,
from D:/Ankit/Projects/tt/trumptycoon/ApiHum/brew/ApiHum.h:27,
from D:/Ankit/Projects/tt/trumptycoon/trumptycoon.cpp:5:
C:/gnude/2.0/inc/AEESource.h:190: error: declaration of int32
(*IGetLineVtbl::GetLine)(IGetLine*, GetLine*, long int)'
C:/gnude/2.0/inc/AEESource.h:176: error: changes meaning of GetLine' from
typedef struct GetLine GetLine'
In file included from C:/gnude/2.0/inc/AEEWeb.h:24,
from D:/Ankit/Projects/tt/trumptycoon/ApiHum/brew/ApiHum.h:27,
from D:/Ankit/Projects/tt/trumptycoon/trumptycoon.cpp:5:
C:/gnude/2.0/inc/AEEWebOpts.h:419:27: warning: no newline at end of file
make: *** [trumptycoon.o] Error 1
plz advise what should be done. i'm caught in a very akward situation.

Joox:
------
I think you need to include C++ libraries when you switch your gcc build over to supporting C++. In you makefile, make sure you have the library path and library names specified for minimal C++ support, e.g.:
LIBDIRS = -L$(GCCHOMEPATH)/lib/gcc-lib/arm-elf/3.3.1 \ -L$(GCCHOMEPATH)/lib/gcc-lib/arm-elf/3.3.1/thumb \
-L$(GCCHOMEPATH)/arm-elf/lib \ -L$(GCCHOMEPATH)/arm-elf/lib/thumb \
LIBS = -lstdc++ -lgcc
I will attach my full C++/GCC/Gnude makefiles (for the ARM .mod, and for the Win32 .dll). You might want to examine them and see how they differs from yours. Keep in mind you'll have to change paths and versions of gnude and cygwin installs to match your own machine. Gnude alone is required for the ARM build, but Gnude and Cygwin (with minimal GCC/G++ development packages) are required for the Win32/.dll build.
The build also tries to avoid pulling in extra library code for exceptions & RTTI, for this you will need to redefine a couple of methods yourself (cx_pure_virtual and assert). memcpy, memset, and strcpy are redefined to make the .dll emulator build work (dllMakefile). new and delete you want to redefine for C++ builds no matter what. Here are the redefinitions:
(redefine.h):
-----
#include "AEEStdlib.h"
extern "C" void* memcpy( void *s1, const void *s2, size_t n);
extern "C" void* memset ( void * buffer, int c, size_t num );
extern "C" int strcmp( const char * string1, const char * string2 );
extern "C" void __cxa_pure_virtual (void);
extern "C" void __assert( const char * , const char * , int );
void* operator new(size_t nBytes);
void operator delete(void * p);
void* operator new[](size_t nBytes);
void operator delete[](void * p);
(redefine.cpp):
-------
#include "redefine.h"
void __cxa_pure_virtual (void) {}
void __assert(const char * , const char * , int ) {}
void* memcpy( void *s1, const void *s2, size_t n)
{
return MEMCPY( s1, s2, n);

int strcmp( const char * string1, const char * string2 )
{
return STRCMP( string1, string2);

void * memset ( void * buffer, int c, size_t num )
{
return MEMSET( buffer, c, num);

void * operator new(size_t nBytes)
{
return MALLOC(nBytes);

void operator delete(void * p)
{
FREE(p);

void * operator new[](size_t nBytes)
{
return MALLOC(nBytes);

void operator delete[](void * p)
{
FREE(p);

Hope this helps!
Sam

Joox:
------
I think you need to include C++ libraries when you switch your gcc build over to supporting C++. In you makefile, make sure you have the library path and library names specified for minimal C++ support, e.g.:
LIBDIRS = -L$(GCCHOMEPATH)/lib/gcc-lib/arm-elf/3.3.1 \ -L$(GCCHOMEPATH)/lib/gcc-lib/arm-elf/3.3.1/thumb \
-L$(GCCHOMEPATH)/arm-elf/lib \ -L$(GCCHOMEPATH)/arm-elf/lib/thumb \
LIBS = -lstdc++ -lgcc
I will attach my full C++/GCC/Gnude makefiles (for the ARM .mod, and for the Win32 .dll). You might want to examine them and see how they differs from yours. Keep in mind you'll have to change paths and versions of gnude and cygwin installs to match your own machine. Gnude alone is required for the ARM build, but Gnude and Cygwin (with minimal GCC/G++ development packages) are required for the Win32/.dll build.
The build also tries to avoid pulling in extra library code for exceptions & RTTI, for this you will need to redefine a couple of methods yourself (cx_pure_virtual and assert). memcpy, memset, and strcpy are redefined to make the .dll emulator build work (dllMakefile). new and delete you want to redefine for C++ builds no matter what. Here are the redefinitions:
(redefine.h):
-----
#include "AEEStdlib.h"
extern "C" void* memcpy( void *s1, const void *s2, size_t n);
extern "C" void* memset ( void * buffer, int c, size_t num );
extern "C" int strcmp( const char * string1, const char * string2 );
extern "C" void __cxa_pure_virtual (void);
extern "C" void __assert( const char * , const char * , int );
void* operator new(size_t nBytes);
void operator delete(void * p);
void* operator new[](size_t nBytes);
void operator delete[](void * p);
(redefine.cpp):
-------
#include "redefine.h"
void __cxa_pure_virtual (void) {}
void __assert(const char * , const char * , int ) {}
void* memcpy( void *s1, const void *s2, size_t n)
{
return MEMCPY( s1, s2, n);

int strcmp( const char * string1, const char * string2 )
{
return STRCMP( string1, string2);

void * memset ( void * buffer, int c, size_t num )
{
return MEMSET( buffer, c, num);

void * operator new(size_t nBytes)
{
return MALLOC(nBytes);

void operator delete(void * p)
{
FREE(p);

void * operator new[](size_t nBytes)
{
return MALLOC(nBytes);

void operator delete[](void * p)
{
FREE(p);

Hope this helps!
Sam

Ankitaggarwal:
-------------------
Just open the file C:\gnude\2.0\inc\AEESource.h, go to lines 176-190, and change them so they look like this:
#define DECLARE_IGETLINE(iname)\
int32 (*GetLine) (iname *po, struct GetLine *pgl, int32 nTypeEOL);\
void (*UngetLine)(iname *po, int32 nLenUnused)
#define INHERIT_IGetline(iname)\
INHERIT_IPeek(iname);\
int32 (*GetLine) (iname *po, struct GetLine *pgl, int32 nTypeEOL);\
void (*UngetLine)(iname *po, int32 nLenUnused)
You are adding the keyword "struct" before the struct name GetLine, in the function pointer definitions. This is required b/c apparently Qualcomm violated the C/C++ standards in these lines, which GCC interprets more strictly than ADS.
Hope this helps!
Sam

Ankitaggarwal:
-------------------
Just open the file C:\gnude\2.0\inc\AEESource.h, go to lines 176-190, and change them so they look like this:
#define DECLARE_IGETLINE(iname)\
int32 (*GetLine) (iname *po, struct GetLine *pgl, int32 nTypeEOL);\
void (*UngetLine)(iname *po, int32 nLenUnused)
#define INHERIT_IGetline(iname)\
INHERIT_IPeek(iname);\
int32 (*GetLine) (iname *po, struct GetLine *pgl, int32 nTypeEOL);\
void (*UngetLine)(iname *po, int32 nLenUnused)
You are adding the keyword "struct" before the struct name GetLine, in the function pointer definitions. This is required b/c apparently Qualcomm violated the C/C++ standards in these lines, which GCC interprets more strictly than ADS.
Hope this helps!
Sam

thanx splandorf,
the change u advised removed that error but then i landed with this error.now what shall i do.i'm really struggling.Isnt there any documents which tells what does the error code signify.
C:\gnude/bin/arm-elf-gcc.exe -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -IC:\gnude/2.0/inc -IC:\gnude\lib\gcc-lib\arm-elf\2.0\include -IC:\gnude\arm-elf\include -O0 -o trumptycoon.o D:\Ankit\Projects\tt\trumptycoon\trumptycoon.cpp
#ankit
make: *** [trumptycoon.o] Error 255
------------------------------------
i'm attaching the make file.plz tell me what is going wrong.i have taken into account your suggestions also but my problem doesnt solve.I will be highly obliged if u devote a few moments out your precious time.

thanx splandorf,
the change u advised removed that error but then i landed with this error.now what shall i do.i'm really struggling.Isnt there any documents which tells what does the error code signify.
C:\gnude/bin/arm-elf-gcc.exe -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -IC:\gnude/2.0/inc -IC:\gnude\lib\gcc-lib\arm-elf\2.0\include -IC:\gnude\arm-elf\include -O0 -o trumptycoon.o D:\Ankit\Projects\tt\trumptycoon\trumptycoon.cpp
#ankit
make: *** [trumptycoon.o] Error 255
------------------------------------
i'm attaching the make file.plz tell me what is going wrong.i have taken into account your suggestions also but my problem doesnt solve.I will be highly obliged if u devote a few moments out your precious time.

Hello,
I get the same error which Raj was getting. But could not solve the problem with the given solution by Raj. I get the -lgcc error in template GCCAppTemplate.mak I changed the LIBDIRS variable to -L$(GCC_HOME)/lib/gcc-lib/arm-elf/3.3.1 but it does not work. Please help. regards Sanjeev D:\gnude\bin\arm-elf-ld -Ttext 0 --emit-relocs -entry AEEMod_Load -o gui test.elf -L/lib/gcc-lib/arm-elf/3.3.1 AEEModGen.o AEEAppGen.o guitest.o GCCReso lver.o -lgcc /cygdrive/d/gnude/bin/arm-elf-ld: cannot find -lgcc NMAKE : fatal error U1077: 'D:\gnude\bin\arm-elf-ld' : return code '0x1' Stop. Hello, I get the same error which Raj was getting. But could not solve the problem with the given solution by Raj. I get the -lgcc error in template GCCAppTemplate.mak I changed the LIBDIRS variable to -L$(GCC_HOME)/lib/gcc-lib/arm-elf/3.3.1 but it does not work. Please help.
regards
Sanjeev
D:\gnude\bin\arm-elf-ld -Ttext 0 --emit-relocs -entry AEEMod_Load -o gui
test.elf -L/lib/gcc-lib/arm-elf/3.3.1 AEEModGen.o AEEAppGen.o guitest.o GCCReso
lver.o -lgcc
/cygdrive/d/gnude/bin/arm-elf-ld: cannot find -lgcc
NMAKE : fatal error U1077: 'D:\gnude\bin\arm-elf-ld' : return code '0x1'
Stop.

ajas wrote:Hi Tyndel
It was great on gnude,
While i was testing the gnude i got error
in the errorLog file as
"
D:\gnude/bin/arm-elf-ld.exe -Ttext 0 --emit-relocs -entry AEEMod_Load -o helloworld.elf -LD:\gnude/lib/gcc-lib/arm-elf/3.3 \
AEEModGen.o AEEAppGen.o GCCResolver.o helloworld.o -lgcc
D:\gnude/bin/arm-elf-ld: cannot find -lgcc
"
What is the lgcc and why it happen?
had same problem. Edited my gccMakefile and changed:
LIBS =
#LIBS = -lgcc
and it worked just fine, but not sure what it is or does

ajas wrote:Hi Tyndel
It was great on gnude,
While i was testing the gnude i got error
in the errorLog file as
"
D:\gnude/bin/arm-elf-ld.exe -Ttext 0 --emit-relocs -entry AEEMod_Load -o helloworld.elf -LD:\gnude/lib/gcc-lib/arm-elf/3.3 \
AEEModGen.o AEEAppGen.o GCCResolver.o helloworld.o -lgcc
D:\gnude/bin/arm-elf-ld: cannot find -lgcc
"
What is the lgcc and why it happen?
had same problem. Edited my gccMakefile and changed:
LIBS =
#LIBS = -lgcc
and it worked just fine, but not sure what it is or does

Has anyone successfully modified this makefile to support C++ files? Are there any examples of this? Any help would be greatly appreciated!
Thanks
-Eric

Has anyone successfully modified this makefile to support C++ files? Are there any examples of this? Any help would be greatly appreciated!
Thanks
-Eric

guest wrote:Hi all !
I need to get "GCCSupportForBREW.zip" file, Is there any free download site available?
Or is anyway that you guys send email with this file attached?
Just let me know ASAP.
Thank you all~
hi,,
Can anyone give any suggestion.
thanks
anoop bal

guest wrote:Hi all !
I need to get "GCCSupportForBREW.zip" file, Is there any free download site available?
Or is anyway that you guys send email with this file attached?
Just let me know ASAP.
Thank you all~
hi,,
Can anyone give any suggestion.
thanks
anoop bal

Hi All,
I have followed the instructions that Tyndal has explained and have successfully generated the mod file for the device. Now for some reason I am using third party library(.lib) in my project. I've already included that library in my project in “Input” pane of the Linker folder of the project’s properties in Microsoft Visual Studio.It build succesfully... Now when I generate the mod file of my project it give me the below mention error....
/// error log///////////
rm -f AEEModGen.o AEEAppGen.o GCCResolver.o helloworld.o helloworld.elf helloworld.mod
------------------------------------
D:\GNU/bin/arm-elf-gcc.exe -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -ID:\GNU/3.0/inc -ID:\GNU\lib\gcc-lib\arm-elf\3.3.1\include -ID:\GNU\arm-elf\include -O2 -o AEEModGen.o D:\GNU/3.0/src/AEEModGen.c
D:\GNU/bin/arm-elf-gcc.exe -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -ID:\GNU/3.0/inc -ID:\GNU\lib\gcc-lib\arm-elf\3.3.1\include -ID:\GNU\arm-elf\include -O2 -o AEEAppGen.o D:\GNU/3.0/src/AEEAppGen.c
D:\GNU/bin/arm-elf-gcc.exe -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -ID:\GNU/3.0/inc -ID:\GNU\lib\gcc-lib\arm-elf\3.3.1\include -ID:\GNU\arm-elf\include -O2 -o GCCResolver.o D:\GNU/GCCResolver.c
D:\GNU/bin/arm-elf-gcc.exe -c -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -ID:\GNU/3.0/inc -ID:\GNU\lib\gcc-lib\arm-elf\3.3.1\include -ID:\GNU\arm-elf\include -O2 -o helloworld.o helloworld.c
helloworld.c: In function SendCB':
helloworld.c:39: warning: passing arg 3 of pointer to function from incompatible pointer type
D:\GNU/bin/arm-elf-ld.exe -Ttext 0 --emit-relocs -entry AEEMod_Load -o helloworld.elf -LD:\GNU/lib/gcc-lib/arm-elf/3.3.1 \
AEEModGen.o AEEAppGen.o GCCResolver.o helloworld.o -lgcc
D:\GNU/bin/arm-elf-ld: Warning: D:\GNU/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(_udivsi3.o) does not support interworking, whereas helloworld.elf does
D:\GNU/bin/arm-elf-ld: Warning: D:\GNU/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(_dvmd_tls.o) does not support interworking, whereas helloworld.elf does
helloworld.o(.text+0x2c4): In function Send':
: undefined reference to MMSSender_Send'
helloworld.o(.text+0x390): In function HandleEvent':
: undefined reference to MMSSender_Release'
helloworld.o(.text+0x39c): In function HandleEvent':
: undefined reference to MMSSender_New'
make: *** [helloworld.elf] Error 1
------------------------------------
/////////////////////////////////////////////////
I have already included my header file of the library in "D:\GNU\3.0\inc" ... Have no idea where should I put my library files(.lib files)???????????
Please help me in this regard what important step am I missing? :confused: as its very urgent.....
Defination Of these function are in libray file...have no idea where should I put my library file so that GNU finds the defination of these functions
Abbay

Hi All,
I have followed the instructions that Tyndal has explained and have successfully generated the mod file for the device. Now for some reason I am using third party library(.lib) in my project. I've already included that library in my project in “Input” pane of the Linker folder of the project’s properties in Microsoft Visual Studio.It build succesfully... Now when I generate the mod file of my project it give me the below mention error....
/// error log///////////
rm -f AEEModGen.o AEEAppGen.o GCCResolver.o helloworld.o helloworld.elf helloworld.mod
------------------------------------
D:\GNU/bin/arm-elf-gcc.exe -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -ID:\GNU/3.0/inc -ID:\GNU\lib\gcc-lib\arm-elf\3.3.1\include -ID:\GNU\arm-elf\include -O2 -o AEEModGen.o D:\GNU/3.0/src/AEEModGen.c
D:\GNU/bin/arm-elf-gcc.exe -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -ID:\GNU/3.0/inc -ID:\GNU\lib\gcc-lib\arm-elf\3.3.1\include -ID:\GNU\arm-elf\include -O2 -o AEEAppGen.o D:\GNU/3.0/src/AEEAppGen.c
D:\GNU/bin/arm-elf-gcc.exe -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -ID:\GNU/3.0/inc -ID:\GNU\lib\gcc-lib\arm-elf\3.3.1\include -ID:\GNU\arm-elf\include -O2 -o GCCResolver.o D:\GNU/GCCResolver.c
D:\GNU/bin/arm-elf-gcc.exe -c -c -DDYNAMIC_APP -mcpu=arm7tdmi -mapcs-frame -mthumb-interwork -mlittle-endian -fshort-enums -fno-builtin -ID:\GNU/3.0/inc -ID:\GNU\lib\gcc-lib\arm-elf\3.3.1\include -ID:\GNU\arm-elf\include -O2 -o helloworld.o helloworld.c
helloworld.c: In function SendCB':
helloworld.c:39: warning: passing arg 3 of pointer to function from incompatible pointer type
D:\GNU/bin/arm-elf-ld.exe -Ttext 0 --emit-relocs -entry AEEMod_Load -o helloworld.elf -LD:\GNU/lib/gcc-lib/arm-elf/3.3.1 \
AEEModGen.o AEEAppGen.o GCCResolver.o helloworld.o -lgcc
D:\GNU/bin/arm-elf-ld: Warning: D:\GNU/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(_udivsi3.o) does not support interworking, whereas helloworld.elf does
D:\GNU/bin/arm-elf-ld: Warning: D:\GNU/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(_dvmd_tls.o) does not support interworking, whereas helloworld.elf does
helloworld.o(.text+0x2c4): In function Send':
: undefined reference to MMSSender_Send'
helloworld.o(.text+0x390): In function HandleEvent':
: undefined reference to MMSSender_Release'
helloworld.o(.text+0x39c): In function HandleEvent':
: undefined reference to MMSSender_New'
make: *** [helloworld.elf] Error 1
------------------------------------
/////////////////////////////////////////////////
I have already included my header file of the library in "D:\GNU\3.0\inc" ... Have no idea where should I put my library files(.lib files)???????????
Please help me in this regard what important step am I missing? :confused: as its very urgent.....
Defination Of these function are in libray file...have no idea where should I put my library file so that GNU finds the defination of these functions
Abbay

Thanks a lot Tyndal, I was able to build the helloworld app and run it fine in 8100 device. The problem now is I have a bunch of .c and .cpp files in my project. They are structured into several of directories like root, root->resource, root->logger etc...
How would I list these files for compilation. Also I want to keep the source folders as it is. I dont wanna move them into GNUDE.
where does it have to be mentioned ?
regards
Jagat

Thanks a lot Tyndal, I was able to build the helloworld app and run it fine in 8100 device. The problem now is I have a bunch of .c and .cpp files in my project. They are structured into several of directories like root, root->resource, root->logger etc...
How would I list these files for compilation. Also I want to keep the source folders as it is. I dont wanna move them into GNUDE.
where does it have to be mentioned ?
regards
Jagat

why would i get error
Makefile:472: *** multiple target patterns. Stop.

why would i get error
Makefile:472: *** multiple target patterns. Stop.

Hi all,
After successfully building a helloworld and running in the device, I wanted to build a total project structure . I modified the make file as follows. But I get an error "Makefile:186: *** multiple target patterns. Stop." at the line marked bold. Please point to anything obvious I am missing. It should be a small brew independent problem which I am unable to catch.
ARM_HOME = c:\gnude
BREW_HOME = c:\gnude
APP_HOME = .
BIN_DIR = $(APP_HOME)\bin TARGET_DIR = .\deploy #------------------------------------------------------------------------------- # Software tool and environment definitions #------------------------------------------------------------------------------- AEESRCPATH =$(BREW_HOME)\src
AEEINCPATH = $(BREW_HOME)\inc ARMBIN =$(ARM_HOME)\Bin
ARMINC = $(ARM_HOME)\include ARMLIB =$(ARM_HOME)\lib
BREWELFMOD = C:\PROGRA~1\BREWEL~1\bin
TCPP = $(ARMBIN)\tcpp TCCC =$(ARMBIN)\tcc
ARMCC = $(ARMBIN)\arm-elf-gcc.exe ARMCPP =$(ARMBIN)\arm-elf-g++.exe
LD = $(ARMBIN)\arm-elf-ld.exe HEXTOOL =$(BREWELFMOD)\elf2mod.exe
OBJ_CMD = -o $(BIN_DIR) MKDIR = mkdir #------------------------------------------------------------------------------- # Targets #------------------------------------------------------------------------------- TARGET = myapp # # NOTE: For some reason, mkdir -p doesn't work... so we'll have to make each # sub-directory in order... THIS ASSUMES that BREW_HOME is only one # directory deep # DIRS :=$(BIN_DIR) \
$(BIN_DIR)$(BREW_HOME_BASE) \
$(BIN_DIR)$(BREW_HOME) \
$(BIN_DIR)$(AEESRCPATH) \
$(BIN_DIR)$(AEESRCPATH)\thrdutil \
$(BIN_DIR)\A \$(BIN_DIR)\B \
$(BIN_DIR)$(BREW_HOME) \
$(BIN_DIR)$(AEESRCPATH)
C_SRC := $(AEESRCPATH)\AEEAppGen.c \$(AEESRCPATH)\AEEMediaUtil.c \
$(AEESRCPATH)\AEEModGen.c \$(AEESRCPATH)\thrdutil\AEETU_TLS.c \
$(AEESRCPATH)\GCCResolver.c CPP_SRC := \ myapp.cpp \ A\A.cpp \ B\B.cpp C_OBJS =$(C_SRC:%.c=%.o)
CPP_OBJS = $(CPP_SRC:%.cpp=%.o) APP_OBJS :=$(addprefix $(BIN_DIR)\,$(C_OBJS)) $(addprefix$(BIN_DIR)\,$(CPP_OBJS)) APP_INCLUDES = -I$(APP_HOME)\A -I$(APP_HOME)\B EXETYPE = elf MODULE = mod SCB = scb DYNAPP = -DDYNAMIC_APP -DUSE_BREW_2_BITMAPS CPU = -cpu ARM7TDMI INTERWRK = interwork APCS = -apcs /$(INTERWRK)
CHK = -fa
OUT = -c
#DBG = -g
OPT = -Ospace -O2
END = -littleend
ZA = -zo -zc -gtp -fy
CODE = $(END)$(ZA)
WARNINGS = -W
INC = -I. -I$(AEEINCPATH)$(APP_INCLUDES)
BINFORMAT = -output
#-------------------------------------------------------------------------------
# Compiler flag definitions
#-------------------------------------------------------------------------------
CFLAGS0 = $(WARNINGS)$(OUT) $(DYNAPP)$(CPU) $(APCS)$(CODE) $(CHK)$(DBG)
CFLAGS = $(WARNINGS)$(CFLAGS0) $(OPT) #------------------------------------------------------------------------------- # Linker flag definitions #------------------------------------------------------------------------------- # the -entry flag is not really needed, but it keeps the linker from reporting # warning L6305W (no entry point). The address LFLAGS = -entry 0x8000# #---------------------------------------------------------------------------- # Default target #---------------------------------------------------------------------------- all:$(C_OBJS) $(CPP_OBJS)$(TARGET).$(MODULE) #---------------------------------------------------------------------------- # Thumb target #---------------------------------------------------------------------------- thumb: @$(MAKE) -e ARMCPP=$(TCPP) #---------------------------------------------------------------------------- # Debug target #---------------------------------------------------------------------------- debug: @$(MAKE) all -e DBG=-g
#----------------------------------------------------------------------------
# Clean target
#----------------------------------------------------------------------------
# The object subdirectory, target image file, and target hex file are deleted.
clean :
@echo ---------------------------------------------------------------
@echo CLEAN
rm -rf $(BIN_DIR)$(MAKE) setup
rm -f $(TARGET).$(EXETYPE)
rm -f $(TARGET).$(MODULE)
@echo ---------------------------------------------------------------
#----------------------------------------------------------------------------
# setup target
#----------------------------------------------------------------------------
setup:
$(MKDIR)$(DIRS)
#----------------------------------------------------------------------------
# Rules
#----------------------------------------------------------------------------
.c.o :
@echo ---------------------------------------------------------------
@echo OBJECT $(@F) @echo$(ARMCC) $(CFLAGS)$(INC) $<$(OBJ_CMD)\$@ @echo --------------------------------------------------------------- .cpp.o : @echo --------------------------------------------------------------- @echo OBJECT$(@F)
@echo
$(ARMCPP)$(CFLAGS) $(INC)$< $(OBJ_CMD)\$@
@echo ---------------------------------------------------------------
$(TARGET).$(EXETYPE) : $(APP_OBJS) @echo --------------------------------------------------------------- @echo TARGET$@
$(LD)$(LINK_CMD) $(TARGET).$(EXETYPE) $(LFLAGS)$(LINK_ORDER) $(APP_OBJS)$(TARGET).$(MODULE) :$(TARGET).$(EXETYPE) @echo --------------------------------------------------------------- @echo TARGET$@
$(HEXTOOL)$(BINFORMAT) $(TARGET_DIR)\$(TARGET).$(MODULE)$(TARGET).$(EXETYPE) Hi all, After successfully building a helloworld and running in the device, I wanted to build a total project structure . I modified the make file as follows. But I get an error "Makefile:186: *** multiple target patterns. Stop." at the line marked bold. Please point to anything obvious I am missing. It should be a small brew independent problem which I am unable to catch. ARM_HOME = c:\gnude BREW_HOME = c:\gnude APP_HOME = . BIN_DIR =$(APP_HOME)\bin
TARGET_DIR = .\deploy
#-------------------------------------------------------------------------------
# Software tool and environment definitions
#-------------------------------------------------------------------------------
AEESRCPATH = $(BREW_HOME)\src AEEINCPATH =$(BREW_HOME)\inc
ARMBIN = $(ARM_HOME)\Bin ARMINC =$(ARM_HOME)\include
ARMLIB = $(ARM_HOME)\lib BREWELFMOD = C:\PROGRA~1\BREWEL~1\bin TCPP =$(ARMBIN)\tcpp
TCCC = $(ARMBIN)\tcc ARMCC =$(ARMBIN)\arm-elf-gcc.exe
ARMCPP = $(ARMBIN)\arm-elf-g++.exe LD =$(ARMBIN)\arm-elf-ld.exe
HEXTOOL = $(BREWELFMOD)\elf2mod.exe OBJ_CMD = -o$(BIN_DIR)
MKDIR = mkdir
#-------------------------------------------------------------------------------
# Targets
#-------------------------------------------------------------------------------
TARGET = myapp
#
# NOTE: For some reason, mkdir -p doesn't work... so we'll have to make each
# sub-directory in order... THIS ASSUMES that BREW_HOME is only one
# directory deep
#
DIRS := $(BIN_DIR) \$(BIN_DIR)$(BREW_HOME_BASE) \$(BIN_DIR)$(BREW_HOME) \$(BIN_DIR)$(AEESRCPATH) \$(BIN_DIR)$(AEESRCPATH)\thrdutil \$(BIN_DIR)\A \
$(BIN_DIR)\B \$(BIN_DIR)$(BREW_HOME) \$(BIN_DIR)$(AEESRCPATH) C_SRC :=$(AEESRCPATH)\AEEAppGen.c \
$(AEESRCPATH)\AEEMediaUtil.c \$(AEESRCPATH)\AEEModGen.c \
$(AEESRCPATH)\thrdutil\AEETU_TLS.c \$(AEESRCPATH)\GCCResolver.c
CPP_SRC := \
myapp.cpp \
A\A.cpp \
B\B.cpp
C_OBJS = $(C_SRC:%.c=%.o) CPP_OBJS =$(CPP_SRC:%.cpp=%.o)
APP_OBJS := $(addprefix$(BIN_DIR)\,$(C_OBJS))$(addprefix $(BIN_DIR)\,$(CPP_OBJS))
APP_INCLUDES = -I $(APP_HOME)\A -I$(APP_HOME)\B
EXETYPE = elf
MODULE = mod
SCB = scb
DYNAPP = -DDYNAMIC_APP -DUSE_BREW_2_BITMAPS
CPU = -cpu ARM7TDMI
INTERWRK = interwork
APCS = -apcs /$(INTERWRK) CHK = -fa OUT = -c #DBG = -g OPT = -Ospace -O2 END = -littleend ZA = -zo -zc -gtp -fy CODE =$(END) $(ZA) WARNINGS = -W INC = -I. -I$(AEEINCPATH) $(APP_INCLUDES) LINK_CMD = -split -reloc -o ROPILINK = -ropi LINK_ORDER = -first AEEMod_Load BINFORMAT = -output #------------------------------------------------------------------------------- # Compiler flag definitions #------------------------------------------------------------------------------- CFLAGS0 =$(WARNINGS) $(OUT)$(DYNAPP) $(CPU)$(APCS) $(CODE)$(CHK) $(DBG) CFLAGS =$(WARNINGS) $(CFLAGS0)$(OPT)
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# the -entry flag is not really needed, but it keeps the linker from reporting
# warning L6305W (no entry point). The address
LFLAGS = -entry 0x8000#
#----------------------------------------------------------------------------
# Default target
#----------------------------------------------------------------------------
all: $(C_OBJS)$(CPP_OBJS) $(TARGET).$(MODULE)
#----------------------------------------------------------------------------
# Thumb target
#----------------------------------------------------------------------------
thumb:
@$(MAKE) -e ARMCPP=$(TCPP)
#----------------------------------------------------------------------------
# Debug target
#----------------------------------------------------------------------------
debug:
@$(MAKE) all -e DBG=-g #---------------------------------------------------------------------------- # Clean target #---------------------------------------------------------------------------- # The object subdirectory, target image file, and target hex file are deleted. clean : @echo --------------------------------------------------------------- @echo CLEAN rm -rf$(BIN_DIR)
$(MAKE) setup rm -f$(TARGET).$(EXETYPE) rm -f$(TARGET).$(MODULE) @echo --------------------------------------------------------------- #---------------------------------------------------------------------------- # setup target #---------------------------------------------------------------------------- setup:$(MKDIR) $(DIRS) #---------------------------------------------------------------------------- # Rules #---------------------------------------------------------------------------- .c.o : @echo --------------------------------------------------------------- @echo OBJECT$(@F)
@echo
$(ARMCC)$(CFLAGS) $(INC)$< $(OBJ_CMD)\$@
@echo ---------------------------------------------------------------
.cpp.o :
@echo ---------------------------------------------------------------
@echo OBJECT $(@F) @echo$(ARMCPP) $(CFLAGS)$(INC) $<$(OBJ_CMD)\$@ @echo ---------------------------------------------------------------$(TARGET).$(EXETYPE) :$(APP_OBJS)
@echo ---------------------------------------------------------------
@echo TARGET $@$(LD) $(LINK_CMD)$(TARGET).$(EXETYPE)$(LFLAGS) $(LINK_ORDER)$(APP_OBJS)
$(TARGET).$(MODULE) : $(TARGET).$(EXETYPE)
@echo ---------------------------------------------------------------
@echo TARGET $@$(HEXTOOL) $(BINFORMAT)$(TARGET_DIR)\$(TARGET).$(MODULE) $(TARGET).$(EXETYPE)

I got the error "ISO C++ forbids declaration of __int64' with no type" while compiling in gcc can anybody please suggest the solution ?
regards
Jagat

I got the error "ISO C++ forbids declaration of __int64' with no type" while compiling in gcc can anybody please suggest the solution ?
regards
Jagat

i figured out there needs to be some macros defined before compilation process atarts how to do that in arm-elfg++ ?
regards
Jagat

i figured out there needs to be some macros defined before compilation process atarts how to do that in arm-elfg++ ?
regards
Jagat

I was able to compile all and now I am getting linker error
\gnude/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(unwind-sjlj.o)(.text+0x140): In functi
on _Unwind_RaiseException_Phase2':
../../gcc-3.3.1/gcc/unwind.inc:67: undefined reference to abort'
\gnude/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(unwind-sjlj.o)(.text+0x3d8): In functi
on _Unwind_SjLj_Resume':
../../gcc-3.3.1/gcc/unwind.inc:230: undefined reference to abort'
\gnude/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(unwind-sjlj.o)(.text+0x444): In functi
on _Unwind_SjLj_Resume_or_Rethrow':
../../gcc-3.3.1/gcc/unwind.inc:256: undefined reference to abort'
/cygdrive/c/gnude/Bin/../arm-elf/lib/libstdc++.a(del_op.o)(.text+0x14): In funct
ion operator delete(void*)':
../../../../gcc-3.3.1/libstdc++-v3/libsupc++/del_op.cc:39: undefined reference t
o free'
/cygdrive/c/gnude/Bin/../arm-elf/lib/libstdc++.a(eh_personality.o)(.text+0x5c):
In function size_of_encoded_value':
../../../../gcc-3.3.1/gcc/unwind-pe.h:76: undefined reference to abort'
/cygdrive/c/gnude/Bin/../arm-elf/lib/libstdc++.a(eh_personality.o)(.text+0x98):
In function base_of_encoded_value':
../../../../gcc-3.3.1/gcc/unwind-pe.h:106: undefined reference to abort'
/cygdrive/c/gnude/Bin/../arm-elf/lib/libstdc++.a(eh_personality.o)(.text+0x2b4):
In function read_encoded_value_with_base':
../../../../gcc-3.3.1/gcc/unwind-pe.h:243: undefined reference to abort'
/cygdrive/c/gnude/Bin/../arm-elf/lib/libstdc++.a(eh_terminate.o)(.text+0x54): In
function __cxxabiv1::__terminate(void (*)())':
../../../../gcc-3.3.1/libstdc++-v3/libsupc++/eh_terminate.cc:50: undefined refer
ence to abort'
/cygdrive/c/gnude/Bin/../arm-elf/lib/libstdc++.a(eh_terminate.o)(.data+0x0):../.
./../../gcc-3.3.1/libstdc++-v3/libsupc++/eh_terminate.cc:45: undefined reference
to abort'
/cygdrive/c/gnude/Bin/../arm-elf/lib/libstdc++.a(pure.o)(.text+0x24): In functio
n __cxa_pure_virtual':
../../../../gcc-3.3.1/libstdc++-v3/libsupc++/pure.cc:49: undefined reference to
fwrite'
/cygdrive/c/gnude/Bin/../arm-elf/lib/libstdc++.a(pure.o)(.text+0x2c):../../../..
/gcc-3.3.1/libstdc++-v3/libsupc++/pure.cc:50: undefined reference to _impure_pt
r'
/cygdrive/c/gnude/Bin/../arm-elf/lib/libstdc++.a(eh_alloc.o)(.text+0x14): In fun
ction __cxa_allocate_exception':
../../../../gcc-3.3.1/libstdc++-v3/libsupc++/eh_alloc.cc:102: undefined referenc
e to malloc'
/cygdrive/c/gnude/Bin/../arm-elf/lib/libstdc++.a(eh_alloc.o)(.text+0xe0): In fun
ction __cxa_free_exception':
../../../../gcc-3.3.1/libstdc++-v3/libsupc++/eh_alloc.cc:162: undefined referenc
e to free'
make: *** [myapp.elf] Error 1
how to correct these ?

I was able to compile all and now I am getting linker error
\gnude/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(unwind-sjlj.o)(.text+0x140): In functi
on _Unwind_RaiseException_Phase2':
../../gcc-3.3.1/gcc/unwind.inc:67: undefined reference to abort'
\gnude/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(unwind-sjlj.o)(.text+0x3d8): In functi
on _Unwind_SjLj_Resume':
../../gcc-3.3.1/gcc/unwind.inc:230: undefined reference to abort'
\gnude/lib/gcc-lib/arm-elf/3.3.1/libgcc.a(unwind-sjlj.o)(.text+0x444): In functi
on _Unwind_SjLj_Resume_or_Rethrow':
../../gcc-3.3.1/gcc/unwind.inc:256: undefined reference to abort'
/cygdrive/c/gnude/Bin/../arm-elf/lib/libstdc++.a(del_op.o)(.text+0x14): In funct
ion operator delete(void*)':
../../../../gcc-3.3.1/libstdc++-v3/libsupc++/del_op.cc:39: undefined reference t
o free'
/cygdrive/c/gnude/Bin/../arm-elf/lib/libstdc++.a(eh_personality.o)(.text+0x5c):
In function size_of_encoded_value':
../../../../gcc-3.3.1/gcc/unwind-pe.h:76: undefined reference to abort'
/cygdrive/c/gnude/Bin/../arm-elf/lib/libstdc++.a(eh_personality.o)(.text+0x98):
In function base_of_encoded_value':
../../../../gcc-3.3.1/gcc/unwind-pe.h:106: undefined reference to abort'
/cygdrive/c/gnude/Bin/../arm-elf/lib/libstdc++.a(eh_personality.o)(.text+0x2b4):
In function read_encoded_value_with_base':
../../../../gcc-3.3.1/gcc/unwind-pe.h:243: undefined reference to abort'
/cygdrive/c/gnude/Bin/../arm-elf/lib/libstdc++.a(eh_terminate.o)(.text+0x54): In
function __cxxabiv1::__terminate(void (*)())':
../../../../gcc-3.3.1/libstdc++-v3/libsupc++/eh_terminate.cc:50: undefined refer
ence to abort'
/cygdrive/c/gnude/Bin/../arm-elf/lib/libstdc++.a(eh_terminate.o)(.data+0x0):../.
./../../gcc-3.3.1/libstdc++-v3/libsupc++/eh_terminate.cc:45: undefined reference
to abort'
/cygdrive/c/gnude/Bin/../arm-elf/lib/libstdc++.a(pure.o)(.text+0x24): In functio
n __cxa_pure_virtual':
../../../../gcc-3.3.1/libstdc++-v3/libsupc++/pure.cc:49: undefined reference to
fwrite'
/cygdrive/c/gnude/Bin/../arm-elf/lib/libstdc++.a(pure.o)(.text+0x2c):../../../..
/gcc-3.3.1/libstdc++-v3/libsupc++/pure.cc:50: undefined reference to _impure_pt
r'
/cygdrive/c/gnude/Bin/../arm-elf/lib/libstdc++.a(eh_alloc.o)(.text+0x14): In fun
ction __cxa_allocate_exception':
../../../../gcc-3.3.1/libstdc++-v3/libsupc++/eh_alloc.cc:102: undefined referenc
e to malloc'
/cygdrive/c/gnude/Bin/../arm-elf/lib/libstdc++.a(eh_alloc.o)(.text+0xe0): In fun
ction __cxa_free_exception':
../../../../gcc-3.3.1/libstdc++-v3/libsupc++/eh_alloc.cc:162: undefined referenc
e to free'
make: *** [myapp.elf] Error 1
how to correct these ?

hey kUfa, your link seems to be broken. can you redirect to a working url, or upload the file here as attachment.