README.NanoX
author Ryan C. Gordon <icculus@icculus.org>
Mon, 12 Dec 2005 09:13:12 +0000
changeset 1199 2d6dc7de1145
parent 471 26dafefeebb2
permissions -rw-r--r--
From: Mike Frysinger <vapier@gentoo.org>
To: sdl@libsdl.org
Date: Sun, 11 Dec 2005 22:57:37 -0500
Subject: [SDL] exec stack in libsdl update

i posted back in September a patch to remove executable stacks:
http://www.devolution.com/pipermail/sdl/2005-September/070626.html

later in November, a similar patch was merged it seems:
http://www.libsdl.org/cgi/cvsweb.cgi/SDL12/src/hermes/mmx_main.asm

however, this lacks the additional output format checks that i posted in my
patch ... this isnt a problem if the hermes asm code is only ever used to
produce ELF objects, but if this is not true, then the additional checks in
my original patch will need to be merged
-mike
slouken@30
     1
  =================================================================
slouken@471
     2
  Patch version 0.9 of SDL(Simple DirectMedia Layer) for Nano-X API
slouken@30
     3
  =================================================================
slouken@30
     4
  
slouken@471
     5
  Authors: Hsieh-Fu Tsai, clare@setabox.com
slouken@471
     6
           Greg Haerr, greg@censoft.com
slouken@30
     7
slouken@471
     8
  This patch is against SDL version 1.2.4.
slouken@471
     9
  It enhances previous patch 0.8 by providing direct framebuffer
slouken@471
    10
  access as well as dynamic hardware pixel type support, not
slouken@471
    11
  requiring a compile-time option setting for different framebuffer
slouken@471
    12
  modes.
slouken@471
    13
  Tested against Microwindows version 0.89pre9.
slouken@30
    14
slouken@471
    15
  Older Microwindows versions
slouken@471
    16
  ===========================
slouken@471
    17
  If running on a version older than Microwindows 0.89pre9,
slouken@471
    18
  the following items might need to be patched in Microwindows.
slouken@30
    19
slouken@471
    20
  1. Patch src/nanox/client.c::GrClose()
slouken@30
    21
  It fixes the client side GrClose(). In the original version, 
slouken@30
    22
  GrOpen() can only be called once. When the GrOpen() is called at 
slouken@30
    23
  the second time, the program will terminate. In order to prevent
slouken@30
    24
  this situation, we need to insert "nxSocket = -1" after 
slouken@30
    25
  "close(nxSocket)" in GrClose(). If you do not have this problem,
slouken@30
    26
  you may skip this step. 
slouken@30
    27
slouken@471
    28
  2. Patch src/nanox/clientfb.c to return absolute x,y coordinates
slouken@471
    29
  when using GrGetWindowFBInfo().  Copy the version 0.89pre9
slouken@471
    30
  of src/nanox/clientfb.c to your system, or configure
slouken@471
    31
  using --disable-nanox-direct-fb.
slouken@471
    32
slouken@30
    33
  =============
slouken@30
    34
  Quick Install 
slouken@30
    35
  =============
slouken@30
    36
slouken@30
    37
  1. ./configure --disable-video-x11 --disable-video-fbcon \ 
slouken@30
    38
       --enable-video-nanox \ 
slouken@30
    39
       --with-nanox-pixel-type=[rgb/0888/888/565/555/332/pal] 
slouken@30
    40
  2. make clean 
slouken@30
    41
  3. make 
slouken@30
    42
  4. make install (as root) 
slouken@30
    43
slouken@30
    44
  ============
slouken@30
    45
  Nitty-gritty 
slouken@30
    46
  ============
slouken@30
    47
slouken@471
    48
  --enable-nanox-direct-fb       Use direct framebuffer access
slouken@30
    49
  --enable-nanox-debug           Show debug messages 
slouken@30
    50
  --enable-nanox-share-memory    Use shared-memory to speed up 
slouken@30
    51
slouken@471
    52
  When running multi-threaded applications using SDL, such
slouken@471
    53
  as SMPEG, set THREADSAFE=Y in Microwindows' config file,
slouken@471
    54
  to enable GrXXX() system call critical section support.
slouken@471
    55
slouken@30
    56
  =============================================
slouken@30
    57
  Some programs can be used to test this patch. 
slouken@30
    58
  =============================================
slouken@30
    59
slouken@30
    60
  1. http://www.cs.berkeley.edu/~weimer/atris (a tetris-like game) 
slouken@30
    61
  2. http://www.libsdl.org/projects/newvox/
slouken@30
    62
  3. http://www.libsdl.org/projects/xflame/
slouken@30
    63
  4. http://www.libsdl.org/projects/optimum/ 
slouken@30
    64
  5. http://www.gnugeneration.com/software/loop/ 
slouken@471
    65
  6: http://www.lokigames.com/development/smpeg.php3 (SMPEG version 0.4.4)
slouken@471
    66
slouken@30
    67
  =========
slouken@30
    68
  Todo List 
slouken@30
    69
  =========
slouken@30
    70
slouken@30
    71
  1. Create hardware surface
slouken@30
    72
  2. Create YUVOverlay on hardware
slouken@30
    73
  3. Use OpenGL
slouken@30
    74
  4. Gamma correction
slouken@30
    75
  5. Hide/Change mouse pointer
slouken@471
    76
  6. Better window movement control with direct fb access
slouken@471
    77
  7. Palette handling in 8bpp could be improved
slouken@30
    78
slouken@30
    79
  =====================
slouken@30
    80
  Supporting Institutes
slouken@30
    81
  =====================
slouken@30
    82
  
slouken@30
    83
  Many thanks to go to Setabox Co., Ltd. and CML (Communication and
slouken@30
    84
  Multimedia Laboratory, http://www.cmlab.csie.ntu.edu.tw/) in the 
slouken@30
    85
  Department of Computer Science and Information Engineering of 
slouken@30
    86
  National Taiwan University for supporting this porting project.
slouken@30
    87
  
slouken@471
    88
  Century Embedded Technologies (http://embedded.censoft.com)
slouken@471
    89
  for this patch.
slouken@471
    90
slouken@30
    91
  ===================
slouken@30
    92
  Contact Information
slouken@30
    93
  ===================
slouken@30
    94
slouken@30
    95
  Welcome to give me any suggestion and to report bugs.
slouken@30
    96
  My e-mail address : clare@setabox.com or niky@cmlab.csie.ntu.edu.tw
slouken@471
    97
                      or greg@censoft.com