PROBLEMS with cygwin


#1

Hello,
I am sruggling with cygwin about 2 weeks! Somebody help me!

I am using OpenAT v2.10, SGT_VER: v1.2.4_c, Microsoft Visual C++ 6.00

I create new blank openAT (not ADL project) project and I compiled it succesfully using MS Visual C++ 6.00 ,there exist three warnings during compile :
LINK : warning LNK4098: defaultlib “mfc42.lib” conflicts with use of other libs; use /NODEFAULTLIB:library
LINK : warning LNK4098: defaultlib “mfcs42.lib” conflicts with use of other libs; use /NODEFAULTLIB:library
LINK : warning LNK4098: defaultlib “msvcrt.lib” conflicts with use of other libs; use /NODEFAULTLIB:library

I don’t know whether these warnings are important. Any way there exists .exe file in the project directory so the code works, should work cause it is empty, has only mandatory funtions.

When I try to make target application, .dwl file, there exists the build error , here are the cygwin codes and reports:

wmnew -path /cygdrive/c/openat/…/project -32 -ads
RES: OK
wmmake appli -d
RES: Launch a full library or binary process
/cygdrive/c/openat/v210b/TgtGen/WmGen/mak/gen.mak:47: *** The ARMCONF environment variable is not set… Stop.
—>then I tried gcc compiler

wmnew -path /cygdrive/c/openat/…/project -32 -gcc
RES: Overwrite existing… (Y/N)?
–>YES
RES: OK
wmmake appli -d
RES: Launch …
Dependency graph is being built …
…7out/appli.flt

Build sources filtering rules for appli
…/out/appli.flt


Get c:/openat/compile/z/src/appli.c appli.c
Get C:/OpenAT/V210b/TgtGen/WmHeader/wm_types.h wm_types.h

…ALL OTHER wm_…header files indicated

Copy all needed libray and obect files
Copy /cygdrive/C/OpenAT/TgtGen/Library/gcc_wmopenat_210b.lib …/out/gcc_wmopenat_210b.lib

… Link step in progress …

… Link appli.bin …
/cygdrive/C/OpenAT/TgtGen/GCC/bin/arm-elf-nm: appli.elf No such file or directory
make: *** [make_single_bin] Error 1

I don’t know how to fix this error.

NOTE: wmnew -sample/ -32 -gcc (or -ads)
wmmake -d
commands work and create mak and out directories and creastes .dwl file and created .dwl files work when I embed them into modem (q2406b), but if I change any code in .c file again cygwin creates .dwl file but when I embed it into modem it does not work.

Please help,

Thanks in advance
piedos@e-kolay.net


#2

I don’t know the answer to all your questions but here’s my opinion on some of them

In page 24 of “Open AT 2.10 Tools manual” it is written:

You have not installed, or have not properly configured, the ADS ARM compiler.

I tried to reproduce your problem but the first time when I tried with a newly created project (wmnew … -gcc), I sucessfully built it with GCC.
Then I changed it to ADS (first I cleaned the project and then wmnew … -ads), this was also successful and then I changed back to GCC again and now I also got the same problem as you describe. And now it does not matter if I clean the project (make_lib project all_clean) or makes a completely new project, the “arm-elf-nm: project.elf no such file” -error still hounts me. I’m still trying to find why this .elf file is missing and I’ll let you know if I find something more.

Could this be related to that you actually fail in your build process when you change the source file?
And that you use a pre-built .dwl file (that very likely will work directly) when you download it without modifications.
Check the timestamp on the .dwl file you download and then you will see if it is newly build or just copied from the sample directory.
Another tip could be to erase everything before download (AT+WOPEN=3 and AT+WOPEN=4)

/Snoooze


#3

About the problem with the:

The problem seems to be in the wmnew script (or some subscript)
It seems like when wmnew is executed it writes 2 entries of the source file in the makefile that lists the source files (e.g. appli.mak).

SRC_C_LIST =  \
             appli.c \
             appli.c

When building the code with the ADS compiler, it works almost almost all the time but when usíng the GCC compiler, it does not work. It seems like there is an error while linking.
In the “appli_err_lnk.tmp” file in the /out directory, there’s an indication that it failed:

After reading the error displayed to the user, is not clearly obvious that it is a link error:

This info is just confusing and does not inform what really happend.

Anyway, so my advice is to manually edit the makefiles and remove the double entry of the appli.c file.

This is anyhow necessary when you want to add more files to your project. (if you are using OpenAt 2.10).

In Open AT 3.02 it is strongly recommended to use the project wizard to update an existing project (see paragraph 4.4 in Open AT 3.02 Tools Manual).

Its also good to read the tools document (or the SGT user guide in 2.10) to get an understanding about how the build process works.

Good luck

/Snoooze


#4

I also have a cywin problem.
I have installed OpenAt alot of times.
Sofar I was able to get it working everytime.
But yesterday I installed it and it dit not create the “BIN” folder.
So cywin would not startup?
I then copied the “BIN” folder from my laptop to this PC and everything worked fine?
Can anybody help me to understand why it would install everything(without errors) but not the “BIN” folder?
Thanx Walter


#5

I can’t find that text in the Open AT v3.03 Tools Manual (certainly not on p24).

However, I do get the LNK4098 Warning when building several of the Sample projects.

Is it safe to ignore this warning?

Why have Wavecom removed this explanatory information?

Is the old (v2.10) version of this document available from somewhere so that I can see the full text?
Or, can someone point me to a similar explanation in the v3.03 documentation (I haven’t been able to find any).


#6

My application was not also compiling with the same link error ( no such file or directory xxx.elf. ) . I lost too much time searching for an error in configuration , but the real problem was, I was using itoa c function in code and this caused somehow a link error. The code used to compile in debug target , but failed in wismo target. here is a part from a tmp file in out directory complaining about itoa.

elf/3.0.4/…/…/…/…/arm-elf/bin/ld: section .data [00222268 -> 00222bcf] overlaps section .glue_7t [00222268 -> 0022226f]
hello_world.o: In function generateError': /cygdrive/c/helloworld/gcc/out/hello_world.c:428: undefined reference toitoa’
/cygdrive/C/OpenAT/Tools/GCC/3.0.4/bin/…/lib/gcc-lib/arm-elf/3.0.4/…/…/…/…/arm-elf/bin/ld: link errors found, deleting executable `gcc_Hello_World_B.elf’


#7

Any unresolved links, like a function will cause this type of link error also.

In my case it was a function without a definition (seems obvious but). The only hint was given durring ‘*_rte’ source code compile when the VS6 IDE gave a warring of assumed external linkage.

This might be due to VS6 not explicitly requiring forward function declarations?