Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Sun 21 Dec 2014, 19:54
All times are UTC - 4
 Forum index » Advanced Topics » Cutting edge
Puppy In-House Development
Moderators: Flash, Ian, JohnMurga
Post_new_topic   Reply_to_topic View_previous_topic :: View_next_topic
Page 3 of 26 Posts_count   Goto page: Previous 1, 2, 3, 4, 5, ..., 24, 25, 26 Next
Author Message
Iguleder


Joined: 11 Aug 2009
Posts: 1927
Location: Israel, somewhere in the beautiful desert

PostPosted: Sat 26 Oct 2013, 05:07    Post_subject:  

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.

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.

_________________
My homepage
My GitHub profile
Back to top
View user's profile Send_private_message Visit_website MSNM 
ICQ 
Ibidem

Joined: 25 May 2010
Posts: 527
Location: State of Jefferson

PostPosted: Sun 27 Oct 2013, 17:23    Post_subject:  

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.

I just compiled Xfbdev from tinyXserver source, and it's working nicely.

Note, though, that you will need to edit standard_definitions.mk if you are cross-compiling: the standard setup for tinyxlib installs to /usr, and tinyxserver expects the libc and tinyxlib headers to be in /usr/include.

To build Xvesa may require a little editing; I don't think musl includes <sys/io.h> or <sys/vm86.h>, but only the macros are needed.
goingnut's makefile doesn't handle building just Xfbdev that well; try running "make -i" or commenting out every line that mentions vesa.

Quote:
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.

Hmmm...somehow I'm reminded of NanoX/Microwindows...
Back to top
View user's profile Send_private_message 
Iguleder


Joined: 11 Aug 2009
Posts: 1927
Location: Israel, somewhere in the beautiful desert

PostPosted: Sun 27 Oct 2013, 17:44    Post_subject:  

What distro are you building on?
_________________
My homepage
My GitHub profile
Back to top
View user's profile Send_private_message Visit_website MSNM 
ICQ 
Ibidem

Joined: 25 May 2010
Posts: 527
Location: State of Jefferson

PostPosted: Mon 28 Oct 2013, 01:57    Post_subject:  

Iguleder wrote:
What distro are you building on?

Self-hosted built-from-scratch musl+busybox+gcc. Linux 3.0 kernel, but that's probably not relevant.
(Yes, self-hosted can really make things simpler.)

But you'll need the kernel headers installed in your target's includedir.

Tell me a couple things and I should be able to get a build-system patch:
-prefix for musl on the host
-I assume all the libs and headers get installed in the same directory on the host?
(for example, use /opt/musl as prefix for everything and install as you go)
Back to top
View user's profile Send_private_message 
technosaurus


Joined: 18 May 2008
Posts: 4424

PostPosted: Mon 28 Oct 2013, 15:43    Post_subject:  

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.
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)

For the kernel modules, finit_module syscall (added in 3.8 ) is quite convenient and was extremely fast with my flat modules experiment (all modules in 1 directory /lib/modules/X.X.X) It worked well with the normal module tree as well, but not as fast as the flat style.

_________________
Web Programming - Pet Packaging 100 & 101
Back to top
View user's profile Send_private_message 
Ibidem

Joined: 25 May 2010
Posts: 527
Location: State of Jefferson

PostPosted: Mon 28 Oct 2013, 17:56    Post_subject:  

I see you are using ${SYSROOT} as the target root directory, and headers go in the usual place.

This should get the cross-compiling part working:
Code:
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


That doesn't take care of it building the vesa stuff; but you should find removing that from the makefile pretty easy.
Back to top
View user's profile Send_private_message 
Iguleder


Joined: 11 Aug 2009
Posts: 1927
Location: Israel, somewhere in the beautiful desert

PostPosted: Sat 02 Nov 2013, 10:05    Post_subject:  

Quote:
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


tinyxlib builds just fine, but tinyxserver doesn't. Here's what I get, under Debian Wheezy, x86_64.

I've been trying to figure out why this happens for hours - I tried to evaluate all those macros and found no duplicate values so far.

EDIT: this doesn't happen when I pass "-m32" to GCC. It's some 64-bit incompatibility.

_________________
My homepage
My GitHub profile
Back to top
View user's profile Send_private_message Visit_website MSNM 
ICQ 
technosaurus


Joined: 18 May 2008
Posts: 4424

PostPosted: Sat 02 Nov 2013, 10:41    Post_subject:  

In the future, you can comment out all of the #includes that are of no concern and then preprocess the file with gcc -E ... to evaluate the macros. It would be nice to fix it for 64bit (and xfbdev for arm, mips,..) I am interested in porting xfbdev to the BSD framebuffer and using mfsBSD to bootstrap a totally unencumbered stray pup.

Does anyone happen to know any substantial app that works on both the Linux and BSD framebuffers?

_________________
Web Programming - Pet Packaging 100 & 101
Back to top
View user's profile Send_private_message 
Iguleder


Joined: 11 Aug 2009
Posts: 1927
Location: Israel, somewhere in the beautiful desert

PostPosted: Sat 02 Nov 2013, 12:02    Post_subject:  

Tried that, but it doesn't evaluate more than one level.

I tried some old FreeBSD patches but the problem persists.

_________________
My homepage
My GitHub profile
Back to top
View user's profile Send_private_message Visit_website MSNM 
ICQ 
technosaurus


Joined: 18 May 2008
Posts: 4424

PostPosted: Sat 02 Nov 2013, 12:31    Post_subject:  

does:
Code:
gcc -m32 -E ... > m32res;gcc -m64 -E ... > m64res; diff -u m32res m64res
provide anything helpful?
_________________
Web Programming - Pet Packaging 100 & 101
Back to top
View user's profile Send_private_message 
Iguleder


Joined: 11 Aug 2009
Posts: 1927
Location: Israel, somewhere in the beautiful desert

PostPosted: Sat 02 Nov 2013, 12:42    Post_subject:  

Nope.

However, I was able to build it for x86_64 when I remove the last 3 cases. I get a black screen when I run it, though.

_________________
My homepage
My GitHub profile
Back to top
View user's profile Send_private_message Visit_website MSNM 
ICQ 
technosaurus


Joined: 18 May 2008
Posts: 4424

PostPosted: Sat 02 Nov 2013, 15:43    Post_subject:  

wtf, now I need to see it, can you point me to a copy of the source you are using?
_________________
Web Programming - Pet Packaging 100 & 101
Back to top
View user's profile Send_private_message 
Iguleder


Joined: 11 Aug 2009
Posts: 1927
Location: Israel, somewhere in the beautiful desert

PostPosted: Sat 02 Nov 2013, 23:39    Post_subject:  

goingnuts put them in this thread.
_________________
My homepage
My GitHub profile
Back to top
View user's profile Send_private_message Visit_website MSNM 
ICQ 
goingnuts

Joined: 07 Dec 2008
Posts: 784

PostPosted: Sun 03 Nov 2013, 03:42    Post_subject:  

The tiny Xvesa is patched to give black screen.

I have XFree86-4.8.0 building Xvesa, Xfbdev and XFree86 with uclibc. I have attached the background patch and my build script. Some external functions are missing but you will get the picture.
The Xvesa/Xfbdev is 930K static linked - the XFree86 is 8.8Mb.
20131104: Removed files as not relevant

Edited_time_total
Back to top
View user's profile Send_private_message Visit_website 
nooby

Joined: 29 Jun 2008
Posts: 10557
Location: SwedenEurope

PostPosted: Sun 03 Nov 2013, 03:45    Post_subject:  

http://www.murga-linux.com/puppy/viewtopic.php?p=730532#730532
Goingnuts writes
Quote:
Posted: Mon Oct 14, 2013 Post subject:
Link to present tiny-Xserver-0.03 source

https://www.dropbox.com/s/ndamatph1sci8fm/tiny-Xserver-0.03.tar.gz

I trust somebody correct me if I got the link wrong Smile

_________________
I use Google Search on Puppy Forum
not an ideal solution though
Back to top
View user's profile Send_private_message 
Display_posts:   Sort by:   
Page 3 of 26 Posts_count   Goto page: Previous 1, 2, 3, 4, 5, ..., 24, 25, 26 Next
Post_new_topic   Reply_to_topic View_previous_topic :: View_next_topic
 Forum index » Advanced Topics » Cutting edge
Jump to:  

Rules_post_cannot
Rules_reply_cannot
Rules_edit_cannot
Rules_delete_cannot
Rules_vote_cannot
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.1023s ][ Queries: 12 (0.0130s) ][ GZIP on ]