Starter wrote:
> I have used arm-elf-gcc at many times with Cstartup.S and Windows> Program must run under ARM.
... so you are not "Starter"... I realy like real names or at least
names that sound like real names. Anyway.
> When have tried change c to c++ caused this error:>...>c:/winarm/bin/../lib/gcc/arm-elf/4.1.0/../../../../arm-elf/lib\libstdc+ +.a(eh_pe> rsonality.o): In function> `read_encoded_value_with_base':c:/winarms/gcc-4.1.0/gc> c/unwind-pe.h:259: undefined reference to `abort'>...
So how about just providing a function with this name. I used this code
in my few C++ Examples:
void abort(void)
{
while(1);
}
Martin Thomas

Martin Thomas wrote:
> ... so you are not "Starter"... I realy like real names or at least> names that sound like real names. Anyway.
Excuse me - my name is well-known in my surroundings and I don't like
fake "real" names. Please, leave me some privacy.
>> When have tried change c to c++ caused this error:>>...>>c:/winarm/bin/../lib/gcc/arm-elf/4.1.0/../../../../arm-elf/lib\libstdc
++.a(eh_pe
>> rsonality.o): In function>> `read_encoded_value_with_base':c:/winarms/gcc-4.1.0/gc>> c/unwind-pe.h:259: undefined reference to `abort'>>...>> So how about just providing a function with this name. I used this code> in my few C++ Examples:>> void abort(void)> {> while(1);> }
I think this is not solution here. There are many functions like this
(not only "abort") and these maybe needed. I think this is a compiler
(linker) internal error and caused by library search mismatch. I can
turn this error on and off simply use one (1) expression: queue. If use,
it occurs this error.

>> [...]>> So how about just providing a function with this name. I used this code>> in my few C++ Examples:>>>> void abort(void)>> {>> while(1);>> }> I think this is not solution here.
Why? What do you expect as "solution"? Since you do not have a system to
abort to there is not much you can do in this syscall. Of cause some
additional code can be implemented here (blink LED, send debug-output,
watchdog-reset...)
> There are many functions like this> (not only "abort") and these maybe needed.
You did not mention the names so it's difficult to help here. I guess
the missing functions are the usual syscall which the libstdc++ relies
on to interface with he hardware (sbrk, read, write, etc).
> I think this is a compiler> (linker) internal error and caused by library search mismatch.
I'm pretty sure that there is no "compiler (linker) internal error".
Maybe a search-problem a something with library-ordering. But not an
internal error.
> I can> turn this error on and off simply use one (1) expression: queue. If use,> it occurs this error.
Which queue? From the c++ (ST)-library? This should be the reason why
the syscalls are needed and you see the linker-errors. Since the c++-
RTL queue needs some syscalls, at least sbrk as interface to the heap.
In some configurations you may try -lnosys to bring in a "generic" sbrk
without writing own code (take care to provide end, see linker-script).

Martin Thomas wrote:
> Why? What do you expect as "solution"? Since you do not have a system to> abort to there is not much you can do in this syscall. Of cause some> additional code can be implemented here (blink LED, send debug-output,> watchdog-reset...)
You are right in here but there are another functions.
>> There are many functions like this>> (not only "abort") and these maybe needed.> You did not mention the names so it's difficult to help here. I guess> the missing functions are the usual syscall which the libstdc++ relies> on to interface with he hardware (sbrk, read, write, etc).
Yes. These ones, isatty and other file functions. No files, op. system
and terminal at this system of course.
>> I can>> turn this error on and off simply use one (1) expression: queue. If use,>> it occurs this error.> Which queue? From the c++ (ST)-library? This should be the reason why> the syscalls are needed and you see the linker-errors. Since the c++-> RTL queue needs some syscalls, at least sbrk as interface to the heap.> In some configurations you may try -lnosys to bring in a "generic" sbrk> without writing own code (take care to provide end, see linker-script).
-lnosys exists but has no effect.
I have get an advice to implement my own queue. Is there an only
solution - or write fake calls like fread, and all others?
Is there any example program without these functions?
I have thought programmers of libraries solved this problem at any way.