perhaps should read:
Code: Select all
I have a webpage dedicated to MenuetOS:
My MenuetOS webpage: http://www.goosee.com/menuetos/
perhaps should read:
Code: Select all
I have a webpage dedicated to MenuetOS:
My MenuetOS webpage: http://www.goosee.com/menuetos/
Code: Select all
for(int i = 1; i <= argc; i++) {
//loop body: use argv[i]
}
Code: Select all
if (0 == strcmp("loop",token)) {
*is_loop = true;
} else if (0 == strcmp("ro",token)) {
//continue in like vein
So what is the scope? It clearly isn't going to be self-hosting, since the kernel alone needs over half a dozen flags for grep...Iguleder wrote:I'm unaware of any BSD-licensed busybox-like tool with good code (i. e toybuf in toybox is ugly as hell) and true minimalism. lazy-utils does not adhere to any standard, so it misses some features beyond its scope and it's fine.
You will probably want this patch (I'm posting it in git format):goingnuts wrote:Link to present tiny-Xserver-0.03 source
Code: Select all
commit 9cb2af3b3e39a1e25a626427a273a6801c0a163d
Author: Isaac Dunham <ibid.ag@gmail.com>
Date: Wed Oct 16 23:30:40 2013 -0700
Backport CVE-2013-4396 fix.
diff --git a/dix/dixfonts.c b/dix/dixfonts.c
index 8ec4e0f..4367801 100644
--- a/dix/dixfonts.c
+++ b/dix/dixfonts.c
@@ -1301,6 +1301,7 @@ doPolyText(client, c)
int len;
GC *pGC;
PTclosurePtr new_closure;
+ PTclosurePtr old_closure;
/* We're putting the client to sleep. We need to do a few things
to ensure successful and atomic-appearing execution of the
@@ -1325,6 +1326,7 @@ doPolyText(client, c)
err = BadAlloc;
goto bail;
}
+ old_closure = c;
*new_closure = *c;
c = new_closure;
@@ -1333,6 +1335,7 @@ doPolyText(client, c)
if (!c->data)
{
xfree(c);
+ c = old_closure;
err = BadAlloc;
goto bail;
}
@@ -1347,6 +1350,7 @@ doPolyText(client, c)
{
xfree(c->data);
xfree(c);
+ c = old_closure;
err = BadAlloc;
goto bail;
}
@@ -1363,6 +1367,7 @@ doPolyText(client, c)
FreeScratchGC(pGC);
xfree(c->data);
xfree(c);
+ c = old_closure;
err = BadAlloc;
goto bail;
}
I just compiled Xfbdev from tinyXserver source, and it's working nicely.Iguleder wrote:The only thing that builds fine with today's kernel, musl and GCC is tinyxlib, but any variant of X I've tried (XFree86, early X.Org kdrive versions) doesn't.
Hmmm...somehow I'm reminded of NanoX/Microwindows...I've wrote some proof-of-concept display server that draws rectangles on the screen through a framebuffer device - if I get it to work well, I'll try to port a stripped-down GTK 1 to it.
Self-hosted built-from-scratch musl+busybox+gcc. Linux 3.0 kernel, but that's probably not relevant.Iguleder wrote:What distro are you building on?
I highly recommend netsurf's nsfb as a starting point because it is small and has xcb (not X11) wayland and linux framebuffer backends (and some others - SDL, ram, and some other framebuffer)Iguleder wrote:I've wrote some proof-of-concept display server that draws rectangles on the screen through a framebuffer device - if I get it to work well, I'll try to port a stripped-down GTK 1 to it.
By the way, I added a faster, hash-based cache to the kernel module tools, so they're a lot faster now.
Code: Select all
cd tinyxlib
sed -e 's_/usr_${SYSROOT}/usr_g' standard_definitions.mk >newdefs.mk
cp newdefs.mk standard_definitions.mk
cd ../tiny-Xserver-0.03
sed -e 's_\(^CC\)=_#\1_g' -e 's_\(/usr\)_${SYSROOT}\1_g' standard_definitions.mk >newdefs.mk
cp newdefs.mk standard_definitions.mk
tinyxlib builds just fine, but tinyxserver doesn't. Here's what I get, under Debian Wheezy, x86_64.cd render; make
make[1]: Entering directory `/root/Downloads/tinyxserver-master/render'
ar cr librender.a glyph.o miglyph.o miindex.o mipict.o mirect.o picture.o render.o
make[1]: Leaving directory `/root/Downloads/tinyxserver-master/render'
cd dix; make
make[1]: Entering directory `/root/Downloads/tinyxserver-master/dix'
make[1]: `libdix.a' is up to date.
make[1]: Leaving directory `/root/Downloads/tinyxserver-master/dix'
cd os; make
make[1]: Entering directory `/root/Downloads/tinyxserver-master/os'
ar cr libos.a WaitFor.o access.o connection.o io.o osinit.o utils.o auth.o mitauth.o secauth.o xdmcp.o decompress.o transport.o
make[1]: Leaving directory `/root/Downloads/tinyxserver-master/os'
cd mi; make
make[1]: Entering directory `/root/Downloads/tinyxserver-master/mi'
ar cr libmi.a cbrt.o miarc.o mibank.o mibitblt.o mibstore.o miclipn.o micmap.o micursor.o midash.o midispcur.o mieq.o miexpose.o mifillarc.o mifillrct.o mifpolycon.o migc.o miglblt.o miinitext.o mioverlay.o mipointer.o mipoly.o mipolycon.o mipolygen.o mipolypnt.o mipolyrect.o mipolyseg.o mipolytext.o mipolyutil.o mipushpxl.o miregion.o miscrinit.o mispans.o misprite.o mivaltree.o miwideline.o miwindow.o mizerarc.o mizerclip.o mizerline.o
make[1]: Leaving directory `/root/Downloads/tinyxserver-master/mi'
cd Xext; make
make[1]: Entering directory `/root/Downloads/tinyxserver-master/Xext'
ar cr libext.a bigreq.o mbuf.o saver.o xf86dga2.o xtest.o cup.o mbufpx.o xf86dga.o xvdisp.o mitmisc.o shm.o xf86misc.o xvmain.o dpmsstubs.o sleepuntil.o xf86vmode.o xvmc.o EVI.o sync.o xprint.o xvmod.o fontcache.o xcmisc.o xtest1dd.o mbufbf.o sampleEVI.o xf86bigfont.o xtest1di.o
make[1]: Leaving directory `/root/Downloads/tinyxserver-master/Xext'
cd Xext/extmod; make
make[1]: Entering directory `/root/Downloads/tinyxserver-master/Xext/extmod'
make[1]: `libextmod.a' is up to date.
make[1]: Leaving directory `/root/Downloads/tinyxserver-master/Xext/extmod'
cd XTrap; make
make[1]: Entering directory `/root/Downloads/tinyxserver-master/XTrap'
ar cr libxtrap.a xf86XTrapModule.o xtrapddmi.o xtrapdi.o xtrapdiswp.o xtrapditbl.o
make[1]: Leaving directory `/root/Downloads/tinyxserver-master/XTrap'
cd hw/kdrive; make
make[1]: Entering directory `/root/Downloads/tinyxserver-master/hw/kdrive'
ar cr libkdrive.a kaa.o kasync.o kcmap.o kcolor.o kcurscol.o kdrive.o kinfo.o kinput.o kmap.o kmode.o knoop.o kpict.o kshadow.o ktest.o kxv.o vga.o
make[1]: Leaving directory `/root/Downloads/tinyxserver-master/hw/kdrive'
cd hw/kdrive/linux; make
make[1]: Entering directory `/root/Downloads/tinyxserver-master/hw/kdrive/linux'
ar cr liblinux.a agp.o bus.o keyboard.o linux.o mouse.o ms.o ps2.o
make[1]: Leaving directory `/root/Downloads/tinyxserver-master/hw/kdrive/linux'
cd fb; make
make[1]: Entering directory `/root/Downloads/tinyxserver-master/fb'
/root/Downloads/sysroot/bin/musl-gcc -I../include -I../mi -I../fb -I../hw/kdrive -I../render -I../Xext -pipe -Os -Wall -D_BSD_SOURCE -D_GNU_SOURCE -D__KERNEL_STRICT_NAMES -fno-strength-reduce -nodefaultlibs -fno-strict-aliasing -ffunction-sections -fdata-sections -I/opt/musl/include -I. -DNOERROR -D__i386__ -Dlinux -D_POSIX_SOURCE -D_BSD_SOURCE -DTOSHIBA_SMM -D_SVID_SOURCE -D_GNU_SOURCE -DX_LOCALE -DKDRIVESERVER -DGCCUSESGAS -DDDXOSINIT -DNOFONTSERVERACCESS -DNDEBUG -DNARROWPROTO -DPIXPRIV -DFUNCPROTO=15 -DCOMPILEDDEFAULTFONTPATH=\"/usr/share/fonts/X11/misc/\" -DRGB_DB=\"/usr/share/X11/rgb\" -D_POSIX_C_SOURCE=2 -DMITSHM -DRENDER -DXCMISC -DXV -DUSE_RGB_TXT -D__KERNEL_STRICT_NAMES -c -o fbblt.o fbblt.c
fbblt.c: In function ‘fbBlt’:
fbblt.c:136:7: error: duplicate case value
fbblt.c:136:7: error: previously used here
fbblt.c:136:7: error: duplicate case value
fbblt.c:136:7: error: previously used here
fbblt.c:144:7: error: duplicate case value
fbblt.c:144:7: error: previously used here
fbblt.c:144:7: error: duplicate case value
fbblt.c:144:7: error: previously used here
fbblt.c:260:7: error: duplicate case value
fbblt.c:260:7: error: previously used here
fbblt.c:260:7: error: duplicate case value
fbblt.c:260:7: error: previously used here
fbblt.c:272:7: error: duplicate case value
fbblt.c:272:7: error: previously used here
fbblt.c:272:7: error: duplicate case value
fbblt.c:272:7: error: previously used here
make[1]: *** [fbblt.o] Error 1
make[1]: Leaving directory `/root/Downloads/tinyxserver-master/fb'
make: *** [all] Error 2
Code: Select all
gcc -m32 -E ... > m32res;gcc -m64 -E ... > m64res; diff -u m32res m64res