Working with GDI+

2002-11-26 Thread François-Denis Gonthier
Having to port System.Windows.Forms and System.Drawing to Linux, I would like 
to know how GDI+ works under Wine and WineLib?

Anyone tried?




Re: Wine & Boehm garbage collector

2002-11-22 Thread François-Denis Gonthier
Thank you for all that information. I consider that any progress, even the
smallest one, is welcomed on that issue.  If needed, I'll forward that
information to a group that is more experience with Boehm's GC (GNU GJC
comes to my mind).

- Original Message -
From: "Vincent Béron" <[EMAIL PROTECTED]>
To: "François-Denis Gonthier" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Friday, November 22, 2002 8:56 PM
Subject: Re: Wine & Boehm garbage collector


Le jeu 21/11/2002 à 21:22, Alexandre Julliard a écrit :
> François-Denis Gonthier <[EMAIL PROTECTED]> writes:
>
> > Apparently, the problem lies in Boehm GC, but before mailing Hans
Boehm
> > about this (he can probably provide limited support only), I'd like
to hear
> > about the people that knows about the internals of Wine.
>
> It seems that seg fault is deliberate, it's trying to determine the
> end of the addressable space. So if you continue execution the signal
> should get handled; maybe this is what breaks, or maybe it's something
> else later on.

It's somewhere else:

Program received signal SIGSEGV, Segmentation fault.
0x405a54ab in GC_mark_from (mark_stack_top=0x80871b8,
mark_stack=0x80870a8,
mark_stack_limit=0x808f0a8) at mark.c:647
647   deferred = *limit;
(gdb) bt
#0  0x405a54ab in GC_mark_from (mark_stack_top=0x80871b8,
mark_stack=0x80870a8, mark_stack_limit=0x808f0a8) at mark.c:647
#1  0x405a51a0 in GC_mark_some (
cold_gc_frame=0x40822cf8
"´\005\\@\034-\202@h7[@(ÕY@´\005\\@L-\202@@ÙY@(ÕY@h7[@L-\202@+ÙY@¯ÓZ@")
at mark.c:374
#2  0x4059dc46 in GC_stopped_mark (stop_func=0x4059d528
)
at alloc.c:500
#3  0x4059d940 in GC_try_to_collect_inner (
stop_func=0x4059d528 ) at alloc.c:353
#4  0x405a7868 in GC_init_inner () at misc.c:703
#5  0x405a3b6d in GC_generic_malloc_inner (lb=100, k=1) at malloc.c:123
#6  0x405a3c9f in GC_generic_malloc (lb=100, k=1) at malloc.c:190
#7  0x405a3f51 in GC_malloc (lb=100) at malloc.c:295
#8  0x4021512b in WinMain () at boehm_crash.c:5
#9  0x402150a5 in __wine_exe_main () at boehm_crash.exe.spec.c:109
#10 0x400b1f5c in start_process () at ../../scheduler/process.c:564
#11 0x400b5ed5 in call_on_thread_stack (func=0x400b1d24)
at ../../scheduler/sysdeps.c:112

I can't seem to find anything else for now, such as why limits gets too
high.

Vincent





Re: Wine & Boehm garbage collector

2002-11-21 Thread François-Denis Gonthier
-lntdll.dll and -lpthreads were left here from another makefile I've got.
I've removed them but it didn't help.  Here is the usual backtrace from gdb:

Starting program: /usr/local/bin/wine boehm_crash.exe.so
[New Thread 16384 (LWP 18946)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 18946)]
0x4048926a in GC_find_limit (p=0x805b77c "", up=0) at os_dep.c:647
647 GC_noop1((word)(*result));
(gdb) bt
#0  0x4048926a in GC_find_limit (p=0x805b77c "", up=0) at os_dep.c:647
#1  0x40489087 in GC_init_linux_data_start () at os_dep.c:186
#2  0x40488394 in GC_init_inner () at misc.c:592
#3  0x404846d4 in GC_generic_malloc_inner (lb=100, k=1) at malloc.c:121
#4  0x4048482d in GC_generic_malloc (lb=100, k=1) at malloc.c:190
#5  0x40484ae4 in GC_malloc (lb=100) at malloc.c:309
#6  0x404720e4 in WinMain () at boehm_crash.c:5
#7  0x40472099 in __wine_exe_main () from
/home/neumann/monocvs/boehm_crash/boehm_crash.exe.so
#8  0x400bdfc0 in start_process () at ../../scheduler/process.c:564
#9  0x400c200d in call_on_thread_stack (func=0x400bdda4) at
../../scheduler/sysdeps.c:112

Apparently, the problem lies in Boehm GC, but before mailing Hans Boehm
about this (he can probably provide limited support only), I'd like to hear
about the people that knows about the internals of Wine.

- Original Message -
From: "Alexandre Julliard" <[EMAIL PROTECTED]>
To: "François-Denis Gonthier" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Thursday, November 21, 2002 9:22 PM
Subject: Re: Wine & Boehm garbage collector


François-Denis Gonthier <[EMAIL PROTECTED]> writes:

François-Denis Gonthier <[EMAIL PROTECTED]> writes:

> boehm_crash.exe.so: boehm_crash.o boehm_crash.exe.spec.o
boehm_crash.exe.dbg.o
> gcc -shared -Wl,-Bsymbolic -D_REENTRANT -DWINELIB -o boehm_crash.exe.so \
> boehm_crash.exe.spec.o \
> boehm_crash.o boehm_crash.exe.dbg.o -lgc \
> -lwine -lntdll.dll -lm -lpthread

You should remove -lntdll and -lpthread, it will probably help. If it
doesn't please post a gdb backtrace of the crash.

--
Alexandre Julliard
[EMAIL PROTECTED]





Wine & Boehm garbage collector

2002-11-21 Thread François-Denis Gonthier
Hello Wine-Devel

I have not filled a bug with this a some of you may already know a solution
to this problem.

I've a contributor to the Mono project (http://www.go-mono.com) working on
the System.Windows.Forms namespace.  It has been decided to use Wine to
implement this assembly since the S.W.F is rather tightly bound to the Win32
API.

But we are facing a nasty problem.  Current Mono implementation is using
Hans Boehm conservative garbage collector and Wine cannot seems to work
happily with that garbage collector.  The temporary solution for development
is to use Mono without garbage collection.  This solution however, should
not even be considered when Mono and it's System.Windows.Forms
implementation will go mainstream.

I've joined a small test case so one can try.  Wine just crash at the first
call to GC_malloc.  Any help or advice is appreciated.

François-Denis Gonthier



makefile
Description: Binary data
#include 

int WinMain (void)
{
GC_malloc(100);
}