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

[Xen-devel] Re: Pesky '#define current' in mini-os/sched.h



Samuel Thibault <samuel.thibault@xxxxxxxxxxxx> writes:

> Ferenc Wagner, le Mon 27 Apr 2009 22:29:02 +0200, a Ãcrit :
>
>> LDLIBS := -L/home/wferi/xen/xen-3.3.1/stubdom/ncurses-x86_32/lib -lncurses
>
> That's not how it's supposed to be done. See the Cross-zlib paragraph
> for instance: the cross-zlib target not only configures & builds libz,
> but also installs it, the prefix being properly set during configuration
> into the cross-chain directory.

Now I have ncurses installed into cross-root.  Suppose I want to use
it from c-stubdom.  #include <ncurses/curses.h> works without any
further modification, but where should I put -lncurses?  The best I
could come up with is APP_LDLIBS in extras/mini-os/Makefile...

>> /home/wferi/xen/xen-3.3.1/stubdom/mini-os-x86_32-c/mini-os.o: In function 
>> `grub_memalign':
>> /home/wferi/xen/grub2/util/misc.c:263: undefined reference to 
>> `posix_memalign'
>
> It should just be a matter of setting it as an alias for newlib's
> memalign, by adding a macro into newlib/libc/include/malloc.h for
> instance.  Ideally it should be reported to newlib's upstream actually.

Seems good.

> Should be fixed by the patch below.

Works as advertised, thanks!

>> /home/wferi/xen/xen-3.3.1/stubdom/ncurses-x86_32/ncurses/../ncurses/./tinfo/lib_baudrate.c:244:
>>  undefined reference to `cfgetospeed'
>
> I'm a bit surprised you actually got code using cfgetospeed compiled in
> the miniOS environment.  It's supposed to return something like B9600,
> but that's not defined by newlib!

I'll stub this to always return B38400 and define those constants.  Do
you think it matters the least?

>> /home/wferi/xen/xen-3.3.1/stubdom/ncurses-x86_32/ncurses/../ncurses/./tinfo/lib_kernel.c:67:
>>  undefined reference to `fpathconf'
>
> Same issue: how did you get that code to compile? _PC_VDISABLE is not
> defined...  I believe you are not using the cross-chain flags.

newlib-1.16.0/newlib/libc/include/sys/unistd.h defines _PC_VDISABLE.
It even has an fpathconf implementation in libc/sys/linux.  Is there a
way to get that work or had I better stub this one, too?

>> /home/wferi/xen/xen-3.3.1/stubdom/ncurses-x86_32/ncurses/../ncurses/./tinfo/access.c:112:
>>  undefined reference to `access'
>> /home/wferi/xen/xen-3.3.1/stubdom/ncurses-x86_32/ncurses/../ncurses/./tinfo/access.c:125:
>>  undefined reference to `access'
>
> Mmmm, the fsif protocol does not provide an access operation to
> implement that properly. You could add a dummy implementation in
> lib/sys.c that just open()/close() it and return proper error codes if
> any and it should be fine for ncurses' use cases.

I stubbed this last one, and now I can compile the ncurses example at
http://www.captain.at/howto-curses-example.php as a c-stubdom; too bad
it does not work:

Error opening terminal: unknown.

Now let's try to hardwire the terminal type to xterm or similar...
-- 
Cheers,
Feri.

_______________________________________________
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®.