Request for swapcontext and getcontext to be ported to our libc

Petr Janda elekktretterr at exemail.com.au
Thu Jan 4 22:56:34 PST 2007


your test doesnt work either:

[elevator] ~/projects/mtasker% make
c++  -I/usr/pkg/include -c mt.cc
In file included from mtasker.hh:114,
                from mt.cc:2:
mtasker.cc: In member function `void MTasker<EventKey, EventVal>::yield()':
mtasker.cc:51: error: there are no arguments to `swapcontext' that 
depend on a template parameter, so a declaration of `swapcontext' must 
be available
mtasker.cc:51: error: (if you use `-fpermissive', G++ will accept your 
code, but allowing the use of an undeclared name is deprecated)
mtasker.cc: In member function `int MTasker<EventKey, 
EventVal>::sendEvent(const EventKey&, const EventVal*)':
mtasker.cc:78: error: there are no arguments to `swapcontext' that 
depend on a template parameter, so a declaration of `swapcontext' must 
be available
mtasker.cc: In member function `void MTasker<EventKey, 
EventVal>::makeThread(void (*)(void*), void*, const std::string&)':
mtasker.cc:94: error: there are no arguments to `getcontext' that depend 
on a template parameter, so a declaration of `getcontext' must be available
mtasker.cc: In member function `bool MTasker<EventKey, 
EventVal>::schedule()':
mtasker.cc:125: error: there are no arguments to `swapcontext' that 
depend on a template parameter, so a declaration of `swapcontext' must 
be available
mt.cc: In function `void printer(void*)':
mt.cc:10: warning: cast from pointer to integer of different size
mtasker.cc: In member function `void MTasker<EventKey, 
EventVal>::yield() [with EventKey = int, EventVal = int]':
mt.cc:13:   instantiated from here
mtasker.cc:51: error: `swapcontext' undeclared (first use this function)
mtasker.cc:51: error: (Each undeclared identifier is reported only once 
for each function it appears in.)
mtasker.cc: In member function `void MTasker<EventKey, 
EventVal>::makeThread(void (*)(void*), void*, const std::string&) [with 
EventKey = int, EventVal = int]':
mt.cc:20:   instantiated from here
mtasker.cc:94: error: `getcontext' undeclared (first use this function)
mt.cc:20:   instantiated from here
mtasker.cc:104: error: `makecontext' undeclared (first use this function)
mtasker.cc: In member function `bool MTasker<EventKey, 
EventVal>::schedule() [with EventKey = int, EventVal = int]':
mt.cc:24:   instantiated from here
mtasker.cc:125: error: `swapcontext' undeclared (first use this function)
*** Error code 1

Stop in /home/petr/projects/mtasker.

I took the tarball of all kernel and libc changes/new files and unpacked 
it in /usr/src. However Ive only done quickworld. Was i meant to do 
buildworld

Petr

Matt EMatt Emmerton <matt at gsicomp.on.ca>mmerton wrote:
The first cut of this work has been completed.  I've ported over the FreeBSD
i386 work, which is a hybrid libc + kernel syscall implementation.
You can find the source changes and a tiny test program here:
http://www.gsicomp.on.ca/~matt/dfly/
I hope to have a libc-only implementation completed before the end of the
week.
--
Matt Emmerton


  






More information about the Users mailing list