[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] caml stubdom crashes





On 4/3/09 4:53 AM, "Alex Zeffertt" <alex.zeffertt@xxxxxxxxxxxxx> wrote:

> George S. Coker, II wrote:
>> 
>> 
>> On 4/2/09 12:22 PM, "Patrick Colp" <pjcolp@xxxxxxxxx> wrote:
>> 
>>> Alex Zeffertt wrote:
>>>> Hello ocaml minios stubdomain experts (that's narrowed down the list
>>>> somewhat!)
>>>> 
>>>> I've been playing with the caml version of the "hello world" example
>>>> stubdomain that can be found in xen-unstable.hg/stubdom/caml/.
>>>> 
>>>> If I make the following trivial modification to stubdom/caml/hello.ml
>>>> the stub domain page faults.  According to addr2line the page fault is
>>>> in ungetc.c:0.
>>>> 
>>>> --- a/stubdom/caml/hello.ml    Mon Mar 30 11:42:16 2009 +0100
>>>> +++ b/stubdom/caml/hello.ml    Thu Apr 02 15:15:45 2009 +0100
>>>> @@ -1,4 +1,6 @@
>>>> +let yr = 2009
>>>> +
>>>>  let main arg =
>>>> -  Printf.printf "Hello, world!\n%!."
>>>> +  Printf.printf "Hello, world %d!\n%!." yr
>>>> 
>>>>  let _ = Callback.register "main" main
>>>> 
>>>> 
>>>> Without the above change the stub domain runs as expected, i.e. it does
>>>> not page fault.
>>>> 
>>>> I suspect the problem is that the caml-stubdom target in
>>>> stubdom/caml/Makefile compiles stubdom/caml/hello.ml and links it with
>>>> $(CAMLLIB)/libasmrun.a.  But this is a library compiled for the
>>>> development machine platform (linux-i386-glibc) not for the stubdomain
>>>> platform (minios-i386-newlib).
>>>> 
>> 
>> I don't think this is a linux-i386-glibc vs minios-i386-newlib issue but
>> rather the FORTIFY compiler options that introduce the
>> __fprintf_chk/__sprintf_chk funcs.  There is still something about the
>> behavior of the FORTIFY options that I am still not accounting for.  As
>> Patrick points out, special ports of ocaml should not be (and have not been)
>> necessary.
>>  
> 
> Hi George, thanks for replying.
> 
> Is this an option that was used when the ubuntu package managers built ocaml,
> but was not used by Debian.  Or have I misunderstood.
> 
> I'm using your "_chk and _fail canaries" patch (actually I've had to extend it
> as I got even more undefined syms when I tried to compile
> xen-ocaml-tools/xenstored.)  Are you saying that there is a problem with this
> patch?
> 
I think my patch is correct, but as you have found out my patch is also
incomplete.  I was not able to test with the ocaml xenstored when I created
the patch.

The issues that this patch and your other patch address are introduced by
the FORTIFY and -Wstack-protector options that are used to compile the
system ocaml libraries.  Debian is the last hold out to implement these
options (and I *think* the most recent versions of Debian have started to
build system tools with these protections).  So I attempted to sketch out a
patch that would point the way for allowing mini-os to be linked with and
leverage these system libraries without pulling in special builds of system
tools or distro development dependencies.

Thanks for your patch.  I'm going to have a further look into this issue
today.

> Regards,
> 
> Alex

-- 
George S. Coker, II <gscoker@xxxxxxxxxxxxxx>



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.