R Karthick <[EMAIL PROTECTED]> writes:

> I havent thought about dynamically-linked executables yet. However I
> believe multi-threaded applications should work as the GC already
> supports it.

Supports it how?

In order to implement GC in multi-threaded environment, you must
be able to tell where all the thread stacks are. How are you going
to achieve that?

> Just to add more detail, these are the static address
> pointers used by MIPS and SPARC respectively
>
> // MIPS
> #define STATIC_0 ((USINTP*)USRDATA)
> #define STATIC_1 (&end)
>
> // SPARC
> #define STATIC_0 ((unsigned*)(((((int)&etext)+NBPG-1)/NBPG)*NBPG))
> #define STATIC_1 (&end)
> // NBPG comes from user.h with value as page size as default.

So it assumes that .data+.bss starts at 'etext' and goes to 'end'.

> I am looking for the static start address for X86 similarly.

Linux 'ld' by default provides '_edata' and '_end', and will provide
'_etext' if you reference that symbol.

Cheers,
-- 
In order to understand recursion you must first understand recursion.
Remove /-nsp/ for email.
_______________________________________________
help-gplusplus mailing list
help-gplusplus@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gplusplus

Reply via email to