From ac7a991ae2d256cbc18e7ec7c5744d0322818c65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20K=C3=BChling?= Date: Thu, 6 Jan 2011 14:41:46 +0100 Subject: [PATCH] Port of SVGAlib; patched to only use the linux frame buffer Try the svgalib-demo programs: vgatest, speedtest etc. seem to work. --- svgalib/Makefile | 140 +++++++++++++ svgalib/patches/010-configure.patch | 215 ++++++++++++++++++++ svgalib/patches/020-ioh-missing.patch | 13 ++ svgalib/patches/030-no-vga.patch | 206 +++++++++++++++++++ svgalib/patches/040-sigunused.patch | 15 ++ svgalib/patches/050-ml_getint.patch | 13 ++ svgalib/patches/060-no-asm.patch | 41 ++++ svgalib/patches/070-no-background-fix.patch | 13 ++ svgalib/patches/080-make-install.patch | 191 +++++++++++++++++ svgalib/patches/090-soname.patch | 26 +++ svgalib/patches/100-fbdev-setpage.patch | 24 +++ 11 files changed, 897 insertions(+) create mode 100644 svgalib/Makefile create mode 100644 svgalib/patches/010-configure.patch create mode 100644 svgalib/patches/020-ioh-missing.patch create mode 100644 svgalib/patches/030-no-vga.patch create mode 100644 svgalib/patches/040-sigunused.patch create mode 100644 svgalib/patches/050-ml_getint.patch create mode 100644 svgalib/patches/060-no-asm.patch create mode 100644 svgalib/patches/070-no-background-fix.patch create mode 100644 svgalib/patches/080-make-install.patch create mode 100644 svgalib/patches/090-soname.patch create mode 100644 svgalib/patches/100-fbdev-setpage.patch diff --git a/svgalib/Makefile b/svgalib/Makefile new file mode 100644 index 0000000..7611bc5 --- /dev/null +++ b/svgalib/Makefile @@ -0,0 +1,140 @@ +# +# Copyright (C) 2011 David Kuehling +# +# License GPLv2 or later. NO WARRANTY. +# +# OpenWRT package for the SVGAlib + +# On the nanonote you might need export SVGALIB_DEFAULT_MODE=54 +# for applications to work correctly. + +include $(TOPDIR)/rules.mk + +PKG_NAME:=svgalib +PKG_VERSION:=1.4.3 +PKG_RELEASE:=1 +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=http://www.svgalib.org/ +PKG_MD5SUM:=7d2778e3beebc07dd7c74668f6887c6f +PKG_INSTALL:=1 +#PKG_FIXUP:=libtool + +#PKG_BUILD_DEPENDS:= libtool/host + +include $(INCLUDE_DIR)/package.mk + + +define Package/svgalib/Default + SECTION:=libs + CATEGORY:=Libraries + TITLE:=Linux SVGA Library + URL:=http://www.svgalib.org/ +endef + +define Package/svgalib/Default/description +SVGAlib is a low-level graphics library for Linux. +This package compiles a portable version that only contains the Linux +framebuffer driver. +endef + +define Package/svgalib +$(call Package/svgalib/Default) + TITLE += + DEPENDS:= +endef + +define Package/svgalib/description +$(call Package/svgalib/Default/description) +endef + + +define Package/svgalib-demo +$(call Package/svgalib/Default) + TITLE += (demo programs) + DEPENDS:=svgalib +endef + +define Package/svgalib-demo/description +$(call Package/svgalib/Default/description) +This package contains the demo programs. +endef + +TARGET_CFLAGS += + +#TARGET_LDFLAGS += -Wl,-rpath -Wl,$(STAGING_DIR)/usr/lib + +# Nothing todo. Makefile.cfg adapted via patch +define Build/Configure +endef + +#MAKE_FLAGS += -j2 + +SVGALIB_BUILD_TARGETS = \ + shared \ + static + +SVGALIB_INSTALL_TARGETS = \ + installstaticlib \ + installsharedlib \ + installheaders \ + installconfig + +ifdef CONFIG_PACKAGE_svgalib-demo +SVGALIB_BUILD_TARGETS += demoprogs +define SVGALIB_COMPILE_DEMO + $(INSTALL_DIR) $(PKG_BUILD_DIR)/tmp-install/usr/lib + $(call Build/Compile/Default,installsharedlib DESTDIR=$(PKG_BUILD_DIR)/tmp-install) + $(call Build/Compile/Default,demoprogs LDFLAGS+="-L$(PKG_BUILD_DIR)/tmp-install/usr/lib") +endef +else +SVGALIB_COMPILE_DEMO:= +endif + +define Build/Compile + $(call Build/Compile/Default,shared static) + $(call SVGALIB_COMPILE_DEMO) +endef + +define Build/Install + $(INSTALL_DIR) $(PKG_INSTALL_DIR)/etc/ + $(INSTALL_DIR) $(PKG_INSTALL_DIR)/usr/lib + $(call Build/Install/Default,\ + installstaticlib installsharedlib installheaders installconfig) +endef + +define Build/InstallDev + $(INSTALL_DIR) $(1)/usr/include $(1)/usr/lib + $(CP) \ + $(PKG_INSTALL_DIR)/usr/include/* \ + $(1)/usr/include/ + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/*.{a,so*} \ + $(1)/usr/lib/ +endef + + +define Package/svgalib/install + $(INSTALL_DIR) $(1)/usr/lib + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/*.so* \ + $(1)/usr/lib/ + $(INSTALL_DIR) $(1)/etc/vga + $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/vga/* \ + $(1)/etc/vga/ +endef + +define Package/svgalib-demo/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $$$$(find $(PKG_BUILD_DIR)/demos -executable -type f) \ + $(1)/usr/bin/ + $(INSTALL_BIN) $(PKG_BUILD_DIR)/threeDKit/{plane,wrapdemo} \ + $(1)/usr/bin/ +endef + +$(eval $(call BuildPackage,svgalib)) +$(eval $(call BuildPackage,svgalib-demo)) + + +# The following comments configure the Emacs editor. Just ignore them. +# Local Variables: +# compile-command: "make -C ~/h/src/qi/openwrt-xburst package/svgalib/compile -j2 V=99" +# End: diff --git a/svgalib/patches/010-configure.patch b/svgalib/patches/010-configure.patch new file mode 100644 index 0000000..b1edb99 --- /dev/null +++ b/svgalib/patches/010-configure.patch @@ -0,0 +1,215 @@ +Index: svgalib-1.4.3/Makefile.cfg +=================================================================== +--- svgalib-1.4.3.orig/Makefile.cfg 2011-01-06 13:52:51.000000000 +0100 ++++ svgalib-1.4.3/Makefile.cfg 2011-01-06 13:53:01.000000000 +0100 +@@ -24,8 +24,8 @@ + + # Common prefix for installation directories. + # NOTE: This directory must exist when you start the install. +-TOPDIR= +-prefix = $(TOPDIR)/usr/local ++TOPDIR=$(DESTDIR) ++prefix = $(TOPDIR)/usr + exec_prefix = $(prefix) + + # Directory where the shared stubs and static library will be installed. +@@ -52,7 +52,7 @@ + + #uncomment this if your compiler fails on compiling the assembler in + #src/vgaconvplanar.c, gl/inlstring.h, gl/line.c or gl/scale.c +-# NO_ASM = y ++NO_ASM = y + + # Uncomment this if you want root processes to be able to always get a new + # VC. Alas, some games misuse suid root privs and become root, svgalib cannot +@@ -123,98 +123,98 @@ + # + # Comment out any driver that you don't want included in the library. + # +-INCLUDE_ET4000_DRIVER = y +-INCLUDE_CIRRUS_DRIVER = y +-INCLUDE_TVGA_DRIVER = y ++# INCLUDE_ET4000_DRIVER = y ++# INCLUDE_CIRRUS_DRIVER = y ++# INCLUDE_TVGA_DRIVER = y + #INCLUDE_OAK_DRIVER = y + #INCLUDE_EGA_DRIVER = y +-INCLUDE_MACH32_DRIVER = y +-INCLUDE_S3_DRIVER = y ++# INCLUDE_MACH32_DRIVER = y ++# INCLUDE_S3_DRIVER = y + #INCLUDE_ET3000_DRIVER = y + #INCLUDE_GVGA6400_DRIVER = y + #INCLUDE_ARK_DRIVER = y + #INCLUDE_ATI_DRIVER = y + #INCLUDE_ALI_DRIVER = y +-INCLUDE_CHIPS_DRIVER = y +-INCLUDE_APM_DRIVER = y +-INCLUDE_NV3_DRIVER = y +-INCLUDE_ET6000_DRIVER = y +-INCLUDE_VESA_DRIVER = y +-INCLUDE_MX_DRIVER = y +-INCLUDE_PARADISE_DRIVER = y +-INCLUDE_RAGE_DRIVER = y +-INCLUDE_BANSHEE_DRIVER = y +-INCLUDE_SIS_DRIVER = y +-INCLUDE_I740_DRIVER = y +-INCLUDE_LAGUNA_DRIVER = y +-INCLUDE_NEO_DRIVER = y +-INCLUDE_R128_DRIVER = y +-INCLUDE_G400_DRIVER = y ++# INCLUDE_CHIPS_DRIVER = y ++# INCLUDE_APM_DRIVER = y ++# INCLUDE_NV3_DRIVER = y ++# INCLUDE_ET6000_DRIVER = y ++# INCLUDE_VESA_DRIVER = y ++# INCLUDE_MX_DRIVER = y ++# INCLUDE_PARADISE_DRIVER = y ++# INCLUDE_RAGE_DRIVER = y ++# INCLUDE_BANSHEE_DRIVER = y ++# INCLUDE_SIS_DRIVER = y ++# INCLUDE_I740_DRIVER = y ++# INCLUDE_LAGUNA_DRIVER = y ++# INCLUDE_NEO_DRIVER = y ++# INCLUDE_R128_DRIVER = y ++# INCLUDE_G400_DRIVER = y + INCLUDE_FBDEV_DRIVER = y +-INCLUDE_SAVAGE_DRIVER = y ++# INCLUDE_SAVAGE_DRIVER = y + # + # Comment out any adapter you don't want to autodetect. + # +-INCLUDE_ET4000_DRIVER_TEST = y +-INCLUDE_CIRRUS_DRIVER_TEST = y +-INCLUDE_TVGA_DRIVER_TEST = y ++# INCLUDE_ET4000_DRIVER_TEST = y ++# INCLUDE_CIRRUS_DRIVER_TEST = y ++# INCLUDE_TVGA_DRIVER_TEST = y + #INCLUDE_OAK_DRIVER_TEST = y + #INCLUDE_EGA_DRIVER_TEST = y +-INCLUDE_MACH32_DRIVER_TEST = y ++# INCLUDE_MACH32_DRIVER_TEST = y + #INCLUDE_GVGA6400_DRIVER_TEST = y +-INCLUDE_S3_DRIVER_TEST = y ++# INCLUDE_S3_DRIVER_TEST = y + #INCLUDE_ET3000_DRIVER_TEST = y + #INCLUDE_ARK_DRIVER_TEST = y + #INCLUDE_ATI_DRIVER_TEST = y + #INCLUDE_ALI_DRIVER_TEST = y +-INCLUDE_CHIPS_DRIVER_TEST = y +-INCLUDE_APM_DRIVER_TEST = y +-INCLUDE_NV3_DRIVER_TEST = y +-INCLUDE_ET6000_DRIVER_TEST = y +-INCLUDE_MX_DRIVER_TEST = y +-INCLUDE_PARADISE_DRIVER_TEST = y +-INCLUDE_RAGE_DRIVER_TEST = y +-INCLUDE_BANSHEE_DRIVER_TEST = y +-INCLUDE_SIS_DRIVER_TEST = y +-INCLUDE_I740_DRIVER_TEST = y +-INCLUDE_LAGUNA_DRIVER_TEST = y +-INCLUDE_NEO_DRIVER_TEST = y +-INCLUDE_G400_DRIVER_TEST = y +-INCLUDE_R128_DRIVER_TEST = y +-#INCLUDE_FBDEV_DRIVER_TEST = y +-INCLUDE_SAVAGE_DRIVER_TEST = y ++# INCLUDE_CHIPS_DRIVER_TEST = y ++# INCLUDE_APM_DRIVER_TEST = y ++# INCLUDE_NV3_DRIVER_TEST = y ++# INCLUDE_ET6000_DRIVER_TEST = y ++# INCLUDE_MX_DRIVER_TEST = y ++# INCLUDE_PARADISE_DRIVER_TEST = y ++# INCLUDE_RAGE_DRIVER_TEST = y ++# INCLUDE_BANSHEE_DRIVER_TEST = y ++# INCLUDE_SIS_DRIVER_TEST = y ++# INCLUDE_I740_DRIVER_TEST = y ++# INCLUDE_LAGUNA_DRIVER_TEST = y ++# INCLUDE_NEO_DRIVER_TEST = y ++# INCLUDE_G400_DRIVER_TEST = y ++# INCLUDE_R128_DRIVER_TEST = y ++INCLUDE_FBDEV_DRIVER_TEST = y ++# INCLUDE_SAVAGE_DRIVER_TEST = y + + #Might be too dangerous: +-INCLUDE_VESA_DRIVER_TEST = y ++# INCLUDE_VESA_DRIVER_TEST = y + + # + # Comment out any dac support that you don't want included in the library. + # + # you must include SIERRA_DAC, if you include any of SCxxxx DACs. + +-INCLUDE_NORMAL_DAC = y +-INCLUDE_S3_SDAC_DAC = y +-INCLUDE_S3_GENDAC_DAC = y +-INCLUDE_S3_TRIO64_DAC = y +-INCLUDE_SIERRA_DAC = y +-INCLUDE_SC15025_DAC = y +-INCLUDE_ATT20C490_DAC = y +-INCLUDE_ATT20C498_DAC = y +-INCLUDE_ICW_DAC = y +-INCLUDE_IBMRGB52x_DAC = y +-INCLUDE_SC1148X_DAC = y ++# INCLUDE_NORMAL_DAC = y ++# INCLUDE_S3_SDAC_DAC = y ++# INCLUDE_S3_GENDAC_DAC = y ++# INCLUDE_S3_TRIO64_DAC = y ++# INCLUDE_SIERRA_DAC = y ++# INCLUDE_SC15025_DAC = y ++# INCLUDE_ATT20C490_DAC = y ++# INCLUDE_ATT20C498_DAC = y ++# INCLUDE_ICW_DAC = y ++# INCLUDE_IBMRGB52x_DAC = y ++# INCLUDE_SC1148X_DAC = y + + # + # Comment out any dac you don't want to autodetect. + # (not all dacs can be autodetected, at this time) + # +-INCLUDE_S3_SDAC_DAC_TEST = y +-INCLUDE_S3_GENDAC_DAC_TEST = y +-INCLUDE_SC15025_DAC_TEST = y +-INCLUDE_ATT20C490_DAC_TEST = y +-INCLUDE_IBMRGB52x_DAC_TEST = y +-INCLUDE_SC1148X_DAC_TEST = y +- ++# INCLUDE_S3_SDAC_DAC_TEST = y ++# INCLUDE_S3_GENDAC_DAC_TEST = y ++# INCLUDE_SC15025_DAC_TEST = y ++# INCLUDE_ATT20C490_DAC_TEST = y ++# INCLUDE_IBMRGB52x_DAC_TEST = y ++# INCLUDE_SC1148X_DAC_TEST = y ++# + # Location of the svgalib configuration file. + SVGALIB_CONFIG_FILE = $(datadir)/libvga.config + +@@ -226,7 +226,7 @@ + # If you just want to use the et4000.regs in the source directory, + # comment out the definition of DYNAMIC. DYNAMIC allows development of new + # resolutions without recompiling. +-DYNAMIC = y ++# DYNAMIC = y + ET4000_REGS = $(datadir)/libvga.et4000 + + # The EGA driver may load additional modes (SuperEGA cards) like the +@@ -270,9 +270,9 @@ + CFLAGS = $(WARN) $(DLLFLAGS) $(INCLUDES) $(OPTIMIZE) $(DEFINES) + # ELF doesn't like -N. It is beneficial for small tools with a.out + ifeq (a.out, $(TARGET_FORMAT)) +- LDFLAGS = -N -s ++# LDFLAGS = -N -s + else +- LDFLAGS = -s ++# LDFLAGS = -s + endif + + # Uncomment the following if you are compiling a.out shared libraries +@@ -289,6 +289,6 @@ + + # Utilites used. + AR = ar +-INSTALL_PROGRAM = install -c -s -m 755 -o root -g bin +-INSTALL_SHLIB = install -c -m 755 -o root -g bin +-INSTALL_DATA = install -c -m 644 -o root -g bin ++INSTALL_PROGRAM = install -c -s -m 755 ++INSTALL_SHLIB = install -c -m 755 ++INSTALL_DATA = install -c -m 644 diff --git a/svgalib/patches/020-ioh-missing.patch b/svgalib/patches/020-ioh-missing.patch new file mode 100644 index 0000000..edc768e --- /dev/null +++ b/svgalib/patches/020-ioh-missing.patch @@ -0,0 +1,13 @@ +Index: svgalib-1.4.3/src/libvga.h +=================================================================== +--- svgalib-1.4.3.orig/src/libvga.h 2011-01-06 12:04:51.000000000 +0100 ++++ svgalib-1.4.3/src/libvga.h 2011-01-06 12:05:42.000000000 +0100 +@@ -9,7 +9,7 @@ + + #include + # if defined __GLIBC__ && __GLIBC__ >= 2 +-#include ++/* #include */ + #endif + + /* --------------------- Macro definitions shared by library modules */ diff --git a/svgalib/patches/030-no-vga.patch b/svgalib/patches/030-no-vga.patch new file mode 100644 index 0000000..60edb53 --- /dev/null +++ b/svgalib/patches/030-no-vga.patch @@ -0,0 +1,206 @@ +Index: svgalib-1.4.3/src/vga.c +=================================================================== +--- svgalib-1.4.3.orig/src/vga.c 2011-01-06 12:44:21.000000000 +0100 ++++ svgalib-1.4.3/src/vga.c 2011-01-06 13:24:11.000000000 +0100 +@@ -519,7 +519,8 @@ + + /* Chipset specific functions */ + +-DriverSpecs *__svgalib_driverspecs = &__svgalib_vga_driverspecs; ++#define __svgalib_vga_driverspecs __svgalib_fbdev_driverspecs ++DriverSpecs *__svgalib_driverspecs = &__svgalib_fbdev_driverspecs; + + #ifndef BACKGROUND + static void (*__svgalib_setpage) (int); /* gives little faster vga_setpage() */ +@@ -537,7 +538,9 @@ + DriverSpecs *__svgalib_driverspecslist[] = + { + NULL, /* chipset undefined */ ++#if 0 /* vga disabled */ + &__svgalib_vga_driverspecs, ++#endif + #ifdef INCLUDE_ET4000_DRIVER + &__svgalib_et4000_driverspecs, + #else +@@ -1504,12 +1507,12 @@ + else + #endif + +- if (__svgalib_vga_driverspecs.test()) +- CHIPSET = VGA; ++ if (__svgalib_fbdev_driverspecs.test()) ++ CHIPSET = FBDEV; + else + /* else */ + { +- fprintf(stderr, "svgalib: Cannot find EGA or VGA graphics device.\n"); ++ fprintf(stderr, "svgalib: Cannot find fbdev graphics device.\n"); + exit(1); + } + __svgalib_setpage = __svgalib_driverspecs->__svgalib_setpage; +@@ -4441,7 +4444,8 @@ + }; + + +-#ifdef __alpha__ ++#if 0 ++/* #ifdef __alpha__ */ + + #define vuip volatile unsigned int * + +Index: svgalib-1.4.3/src/vgadrv.c +=================================================================== +--- svgalib-1.4.3.orig/src/vgadrv.c 2011-01-06 12:44:21.000000000 +0100 ++++ svgalib-1.4.3/src/vgadrv.c 2011-01-06 13:13:47.000000000 +0100 +@@ -13,6 +13,8 @@ + #include "libvga.h" + #include "driver.h" + ++#if 0 /* vga disabled */ ++ + /* BIOS mode 0Dh - 320x200x16 */ + static const unsigned char g320x200x16_regs[60] = + { +@@ -311,3 +313,5 @@ + + return 0; + } ++ ++#endif /* vga disabled */ +Index: svgalib-1.4.3/src/libvga.h +=================================================================== +--- svgalib-1.4.3.orig/src/libvga.h 2011-01-06 13:13:47.000000000 +0100 ++++ svgalib-1.4.3/src/libvga.h 2011-01-06 13:13:47.000000000 +0100 +@@ -216,7 +216,18 @@ + extern void __svgalib_acquirevt_signal(int n); + #endif + +-#ifdef __alpha__ ++ ++/* do not compile vga direct hw access code. It is not called anyways when ++ * using fbdev driver. It won't compile on some non-x86 hw. */ ++#define ioperm(a,b,c) (-1) ++#define port_in(a) (0) ++#define port_out(a,b) (void)0 ++#define port_outw(a,b) (void)0 ++#define inb(a) (0) ++#define outb(a,b) (void)0 ++ ++#if 0 ++/* #ifdef __alpha__ */ + + #include + +@@ -270,50 +281,60 @@ + + #else + +-static __inline__ void port_out(int value, int port) +-{ +- __asm__ volatile ("outb %0,%1" +- ::"a" ((unsigned char) value), "d"((unsigned short) port)); +-} +- +-static __inline__ void port_outw(int value, int port) +-{ +- __asm__ volatile ("outw %0,%1" +- ::"a" ((unsigned short) value), "d"((unsigned short) port)); +-} +- +-static __inline__ void port_outl(int value, int port) +-{ +- __asm__ volatile ("outl %0,%1" +- ::"a" ((unsigned long)value), "d" ((unsigned short) port)); +-} +- +-static __inline__ int port_in(int port) +-{ +- unsigned char value; +- __asm__ volatile ("inb %1,%0" +- :"=a" (value) +- :"d"((unsigned short) port)); +- return value; +-} +- +-static __inline__ int port_inw(int port) +-{ +- unsigned short value; +- __asm__ volatile ("inw %1,%0" +- :"=a" (value) +- :"d"((unsigned short) port)); +- return value; +-} +- +-static __inline__ int port_inl(int port) +-{ +- unsigned int value; +- __asm__ volatile("inl %1,%0" : +- "=a" (value) : +- "d" ((unsigned short)port)); +- return value; +-} ++/* do not compile vga direct hw access code. It is not called anyways when ++ * using fbdev driver. It won't compile on some non-x86 hw. */ ++#define ioperm(a,b,c) (-1) ++#define port_in(a) (0) ++#define port_inw(a) (0) ++#define port_inl(a) (0) ++#define port_out(a,b) (void)0 ++#define port_outl(a,b) (void)0 ++#define port_outw(a,b) (void)0 ++ ++/* static __inline__ void port_out(int value, int port) */ ++/* { */ ++/* __asm__ volatile ("outb %0,%1" */ ++/* ::"a" ((unsigned char) value), "d"((unsigned short) port)); */ ++/* } */ ++ ++/* static __inline__ void port_outw(int value, int port) */ ++/* { */ ++/* __asm__ volatile ("outw %0,%1" */ ++/* ::"a" ((unsigned short) value), "d"((unsigned short) port)); */ ++/* } */ ++ ++/* static __inline__ void port_outl(int value, int port) */ ++/* { */ ++/* __asm__ volatile ("outl %0,%1" */ ++/* ::"a" ((unsigned long)value), "d" ((unsigned short) port)); */ ++/* } */ ++ ++/* static __inline__ int port_in(int port) */ ++/* { */ ++/* unsigned char value; */ ++/* __asm__ volatile ("inb %1,%0" */ ++/* :"=a" (value) */ ++/* :"d"((unsigned short) port)); */ ++/* return value; */ ++/* } */ ++ ++/* static __inline__ int port_inw(int port) */ ++/* { */ ++/* unsigned short value; */ ++/* __asm__ volatile ("inw %1,%0" */ ++/* :"=a" (value) */ ++/* :"d"((unsigned short) port)); */ ++/* return value; */ ++/* } */ ++ ++/* static __inline__ int port_inl(int port) */ ++/* { */ ++/* unsigned int value; */ ++/* __asm__ volatile("inl %1,%0" : */ ++/* "=a" (value) : */ ++/* "d" ((unsigned short)port)); */ ++/* return value; */ ++/* } */ + + #define gr_readb(off) (((volatile unsigned char *)GM)[(off)]) + #define gr_readw(off) (*(volatile unsigned short*)((GM)+(off))) +@@ -322,7 +343,6 @@ + #define gr_writew(v,off) (*(unsigned short*)((GM)+(off)) = (v)) + #define gr_writel(v,off) (*(unsigned long*)((GM)+(off)) = (v)) + +- + #endif + + /* Note that the arguments of outb/w are reversed compared with the */ diff --git a/svgalib/patches/040-sigunused.patch b/svgalib/patches/040-sigunused.patch new file mode 100644 index 0000000..0f99534 --- /dev/null +++ b/svgalib/patches/040-sigunused.patch @@ -0,0 +1,15 @@ +Index: svgalib-1.4.3/src/vga.c +=================================================================== +--- svgalib-1.4.3.orig/src/vga.c 2011-01-06 12:05:43.000000000 +0100 ++++ svgalib-1.4.3/src/vga.c 2011-01-06 12:05:43.000000000 +0100 +@@ -38,6 +38,10 @@ + #include "vgaregs.h" + #include "vgaversion.h" + ++#ifndef SIGUNUSED ++#define SIGUNUSED 32 ++#endif ++ + #ifdef BACKGROUND + #include "vgabg.h" + diff --git a/svgalib/patches/050-ml_getint.patch b/svgalib/patches/050-ml_getint.patch new file mode 100644 index 0000000..8141c3e --- /dev/null +++ b/svgalib/patches/050-ml_getint.patch @@ -0,0 +1,13 @@ +Index: svgalib-1.4.3/src/vga.c +=================================================================== +--- svgalib-1.4.3.orig/src/vga.c 2011-01-06 12:16:21.000000000 +0100 ++++ svgalib-1.4.3/src/vga.c 2011-01-06 12:16:21.000000000 +0100 +@@ -3920,7 +3920,7 @@ + + #define ML_GETINT(x) \ + ptr = strtok(NULL, " "); if(!ptr) break; \ +- mmt.##x = atoi(ptr); ++ mmt.x = atoi(ptr); + + ML_GETINT(HDisplay); + ML_GETINT(HSyncStart); diff --git a/svgalib/patches/060-no-asm.patch b/svgalib/patches/060-no-asm.patch new file mode 100644 index 0000000..4909965 --- /dev/null +++ b/svgalib/patches/060-no-asm.patch @@ -0,0 +1,41 @@ +Index: svgalib-1.4.3/src/vgapix.c +=================================================================== +--- svgalib-1.4.3.orig/src/vgapix.c 2011-01-06 12:33:23.000000000 +0100 ++++ svgalib-1.4.3/src/vgapix.c 2011-01-06 12:35:04.000000000 +0100 +@@ -26,7 +26,7 @@ + /* However bswap is not supported by 386 */ + + if (MODEFLAGS & RGB_MISORDERED) +-#ifdef __alpha__ ++#if 1 + c = ((c >> 0) & 0xff) << 16 | + ((c >> 8) & 0xff) << 8 | + ((c >> 16) & 0xff) << 0; +Index: svgalib-1.4.3/gl/driver.c +=================================================================== +--- svgalib-1.4.3.orig/gl/driver.c 2011-01-06 12:36:13.000000000 +0100 ++++ svgalib-1.4.3/gl/driver.c 2011-01-06 12:36:20.000000000 +0100 +@@ -33,7 +33,8 @@ + /* However bswap is not supported by 386 */ + + if (MODEFLAGS & MODEFLAG_24BPP_REVERSED) +-#ifdef __alpha__ ++#if 1 ++/* #ifdef __alpha__ */ + c = ((c >> 0) & 0xff) << 16 | + ((c >> 8) & 0xff) << 8 | + ((c >> 16) & 0xff) << 0; +Index: svgalib-1.4.3/gl/scale.c +=================================================================== +--- svgalib-1.4.3.orig/gl/scale.c 2011-01-06 12:37:26.000000000 +0100 ++++ svgalib-1.4.3/gl/scale.c 2011-01-06 12:38:04.000000000 +0100 +@@ -13,7 +13,8 @@ + /* #define USE_ASM */ + + +-#ifdef __alpha__ ++#if 1 ++/* #ifdef __alpha__ */ + + static inline int muldiv64(int m1, int m2, int d) + { diff --git a/svgalib/patches/070-no-background-fix.patch b/svgalib/patches/070-no-background-fix.patch new file mode 100644 index 0000000..4a046c7 --- /dev/null +++ b/svgalib/patches/070-no-background-fix.patch @@ -0,0 +1,13 @@ +Index: svgalib-1.4.3/src/vgamisc.c +=================================================================== +--- svgalib-1.4.3.orig/src/vgamisc.c 2011-01-06 12:21:30.000000000 +0100 ++++ svgalib-1.4.3/src/vgamisc.c 2011-01-06 12:22:08.000000000 +0100 +@@ -47,7 +47,7 @@ + } + + #ifndef BACKGROUND +-static void *__svgalib_linearframebuffer; ++void *__svgalib_linearframebuffer; + #endif + #ifdef BACKGROUND + void *__svgalib_linearframebuffer; diff --git a/svgalib/patches/080-make-install.patch b/svgalib/patches/080-make-install.patch new file mode 100644 index 0000000..6224114 --- /dev/null +++ b/svgalib/patches/080-make-install.patch @@ -0,0 +1,191 @@ +Index: svgalib-1.4.3/Makefile +=================================================================== +--- svgalib-1.4.3.orig/Makefile 2011-01-06 13:52:48.000000000 +0100 ++++ svgalib-1.4.3/Makefile 2011-01-06 14:03:17.000000000 +0100 +@@ -110,10 +110,6 @@ + + installheaders: + @echo Installing header files in $(includedir). +- @if [ -f /usr/include/vga.h ]; then \ +- rm -f /usr/include/vga.h /usr/include/vgagl.h; \ +- echo Old header files in /usr/include removed.; \ +- fi + mkdir -p $(includedir) + @cp $(srcdir)/src/vga.h $(includedir)/vga.h + @chmod a+r $(includedir)/vga.h +@@ -134,17 +130,6 @@ + chmod a+r $(libdir)/$$foo; \ + done + endif +- @if [ -f /usr/lib/libvga.sa ]; then \ +- rm -f /usr/lib/libvga.sa /usr/lib/libvgagl.sa; \ +- echo Old stubs in /usr/lib removed.; \ +- fi +- @rm -f $(OBSOLETESHAREDIMAGES) +-ifndef KEEPSHAREDLIBS +- @echo "Removing shared library images (old & current)..." +- @for i in $(OBSOLETELDIRS); do \ +- rm -f `echo $(OBSOLETESHAREDIMAGES) | sed s?/lib/?$$i?g`; \ +- done +-endif + mkdir -p $(sharedlibdir) + @echo Installing shared library image as \ + $(addprefix $(sharedlibdir)/,$(notdir $(SHAREDLIBS))). +@@ -153,7 +138,6 @@ + (cd $(sharedlibdir); \ + ln -sf $$foo `echo $$foo | sed 's/\.so\..*/.so/'` ); \ + done +- @ldconfig + + ifdef INSTALLAOUTDIR + +@@ -169,7 +153,6 @@ + (cd $(TOPDIR)/$(INSTALLAOUTDIR); \ + ln -sf $$foo `echo $$foo | sed 's/\.so\..*/.so/'` ); \ + done +- @ldconfig + + else + +@@ -180,10 +163,8 @@ + + installstaticlib: static + @echo Installing static libraries in $(libdir). +- @rm -f /usr/lib/libvga.a + @$(INSTALL_DATA) staticlib/libvga.a $(libdir)/libvga.a + @chmod a+r $(libdir)/libvga.a +- @rm -f /usr/lib/libvgagl.a + @$(INSTALL_DATA) staticlib/libvgagl.a $(libdir)/libvgagl.a + @chmod a+r $(libdir)/libvgagl.a + +@@ -192,14 +173,6 @@ + echo No $(bindir) directory, creating it.; \ + mkdir $(bindir); \ + fi +- @if [ -f /usr/bin/restorefont ]; then \ +- echo Removing old utilities in /usr/bin.; \ +- for x in $(UTILS); do rm -f /usr/bin/$$x; done; \ +- fi +- @if [ -f /usr/bin/convfont ]; then \ +- echo Removing inappropriate utilities in /usr/bin.; \ +- rm -f /usr/bin/convfont /usr/bin/setmclk; \ +- fi + @echo Installing textmode utilities in $(bindir): + @echo "restorefont: Save/restore textmode font." + @cp utils/restorefont $(bindir) +@@ -225,22 +198,6 @@ + mkdir $(datadir); \ + chmod go-w $(datadir); \ + fi +- @if [ \( -f /usr/local/lib/libvga.config -a ! -f $(datadir)/libvga.config \) ]; then \ +- echo "Moving old config file /usr/local/lib/libvga.config to $(datadir)." ; \ +- mv -f /usr/local/lib/libvga.config $(datadir)/libvga.config; \ +- fi +- @if [ \( -f /usr/local/lib/libvga.et4000 -a ! -f $(datadir)/libvga.et4000 \) ]; then \ +- echo "Moving old config file /usr/local/lib/libvga.et4000 to $(datadir)." ; \ +- mv -f /usr/local/lib/libvga.et4000 $(datadir)/libvga.et4000; \ +- fi +- @if [ \( -f /usr/local/lib/libvga.ega -a ! -f $(datadir)/libvga.ega \) ]; then \ +- echo "Moving old config file /usr/local/lib/libvga.ega to $(datadir)." ; \ +- mv -f /usr/local/lib/libvga.ega $(datadir)/libvga.ega; \ +- fi +- @if [ \( -f /etc/mach32.eeprom -a ! -f $(datadir)/mach32.eeprom \) ]; then \ +- echo Consider moving your /etc/mach32.eeprom file to $(datadir) ; \ +- echo and changing $(datadir)/libvga.config appropriately. ; \ +- fi + @if [ ! -f $(datadir)/libvga.config ]; then \ + echo Installing default configuration file in $(datadir).; \ + cp $(confdir)/libvga.config $(datadir)/libvga.config; \ +@@ -269,48 +226,6 @@ + @echo demos/ and threedkit/. + + uninstall: +- @echo "Removing textmode utilities..." +- @for i in $(OBSOLETEBDIRS); do \ +- for prog in $(UTILS); do \ +- rm -f $$i$$prog ; \ +- done ; \ +- done +- @echo "Removing shared library stubs (old & current)..." +- @for i in $(OBSOLETELDIRS); do \ +- rm -f `echo /lib/libvga.so.$(VERSION) /lib/libvgagl.so.$(VERSION) \ +- $(OBSOLETELIBLINKS) /lib/libvga.sa /lib/libvgagl.sa \ +- | sed s?/lib/?$$i?g`; \ +- done +-ifndef KEEPSHAREDLIBS +- @echo "Removing shared library images (old & current)..." +- @for i in $(OBSOLETELDIRS); do \ +- rm -f `echo $(OBSOLETESHAREDIMAGES) | sed s?/lib/?$$i?g`; \ +- done +-endif +-ifneq ($(INSTALLAOUTDIR), ) +- @echo "Removing shared a.out library stubs (old & current)..." +- @for i in $(OBSOLETEAOUTDIRS); do \ +- rm -f `echo /lib/libvga.so.$(VERSION) /lib/libvgagl.so.$(VERSION) \ +- $(OBSOLETELIBLINKS) /lib/libvga.sa /lib/libvgagl.sa \ +- | sed s?/lib/?$$i?g`; \ +- done +-ifndef KEEPSHAREDLIBS +- @echo "Removing shared a.out library images (old & current)..." +- @for i in $(OBSOLETEAOUTDIRS); do \ +- rm -f `echo $(OBSOLETESHAREDIMAGES) | sed s?/lib/?$$i?g`; \ +- done +-endif +-endif +- @echo "Removing static libraries..." +- @for i in $(OBSOLETELDIRS); do \ +- rm -f `echo /lib/libvga.a /lib/libvgagl.a | sed s?/lib/?$$i?g`; \ +- done +- @echo "Removing header files..." +- @for i in $(OBSOLETEHDIRS); do \ +- rm -f `echo $(OBSOLETEHEADERS) | sed s?/inc/?$$i?g`; \ +- done +- (cd doc; $(MAKE) -f $(srcdir)/doc/Makefile srcdir="$(srcdir)" uninstall) +- + + SHAREDDIRS0 = sharedlib/mouse sharedlib/keyboard sharedlib/ramdac \ + sharedlib/clockchip sharedlib/joystick +Index: svgalib-1.4.3/threeDKit/Makefile +=================================================================== +--- svgalib-1.4.3.orig/threeDKit/Makefile 2011-01-06 13:52:48.000000000 +0100 ++++ svgalib-1.4.3/threeDKit/Makefile 2011-01-06 14:03:17.000000000 +0100 +@@ -39,13 +39,9 @@ + + plane: planukit.o planinit.o $(OBJECTS) $(LVGADEP) + $(CC) $(LDFLAGS) -o plane planukit.o planinit.o $(OBJECTS) $(LIBS) +- chown root plane +- chmod u+s plane + + wrapdemo: wrapdemo.o $(OBJECTS) $(LVGADEP) + $(CC) $(CFLAGS) $(LDFLAGS) -o wrapdemo wrapdemo.c $(OBJECTS) $(LIBS) +- chown root wrapdemo +- chmod u+s wrapdemo + + .c.o: + $(CC) $(CFLAGS) -c -o $*.o $< +Index: svgalib-1.4.3/demos/Makefile +=================================================================== +--- svgalib-1.4.3.orig/demos/Makefile 2011-01-06 14:03:32.000000000 +0100 ++++ svgalib-1.4.3/demos/Makefile 2011-01-06 14:04:20.000000000 +0100 +@@ -44,21 +44,15 @@ + + .c: + $(CC) $(CFLAGS) $(LDFLAGS) -o $* $*.c $(LIBS) +- chown 0 $* +- chmod 4755 $* + + rwpage: rwpage.pp + $(PC) -Rintel rwpage.pp + + testaccel: testaccel.c + $(CC) $(CFLAGS) $(LDFLAGS) -o testaccel testaccel.c $(LIBS) -lm +- chown 0 testaccel +- chmod 4755 testaccel + + accel: accel.c + $(CC) $(CFLAGS) $(LDFLAGS) -o accel accel.c $(LIBS) -lm +- chown 0 accel +- chmod 4755 accel + + clean: cleanbin + rm -f .depend *.o *~ *.bak diff --git a/svgalib/patches/090-soname.patch b/svgalib/patches/090-soname.patch new file mode 100644 index 0000000..5a54c6e --- /dev/null +++ b/svgalib/patches/090-soname.patch @@ -0,0 +1,26 @@ +Index: svgalib-1.4.3/gl/Makefile +=================================================================== +--- svgalib-1.4.3.orig/gl/Makefile 2011-01-06 13:48:39.000000000 +0100 ++++ svgalib-1.4.3/gl/Makefile 2011-01-06 13:49:05.000000000 +0100 +@@ -29,7 +29,7 @@ + .PHONY: all clean dep + + libvgagl.so.$(VERSION): $(MODULES) +- $(CC) -s -shared -Wl,-soname,libvgagl.so.$(MAJOR_VER) -o libvgagl.so.$(VERSION) \ ++ $(CC) -s -shared -Wl,-soname,libvgagl.so -o libvgagl.so.$(VERSION) \ + $(MODULES) + + libvgagl.a: $(MODULES) +Index: svgalib-1.4.3/src/Makefile +=================================================================== +--- svgalib-1.4.3.orig/src/Makefile 2011-01-06 13:48:36.000000000 +0100 ++++ svgalib-1.4.3/src/Makefile 2011-01-06 13:48:52.000000000 +0100 +@@ -387,7 +387,7 @@ + + # These rules are for ELF only. + libvga.so.$(VERSION): $(ALLOBJS) +- $(CC) -s -shared -Wl,-soname,libvga.so.$(MAJOR_VER) \ ++ $(CC) -s -shared -Wl,-soname,libvga.so \ + -o libvga.so.$(VERSION) $(ALLOBJS) -lm + + $(sharedlibdir)/libvga.so.$(VERSION): libvga.so.$(VERSION) diff --git a/svgalib/patches/100-fbdev-setpage.patch b/svgalib/patches/100-fbdev-setpage.patch new file mode 100644 index 0000000..5adda43 --- /dev/null +++ b/svgalib/patches/100-fbdev-setpage.patch @@ -0,0 +1,24 @@ +Index: svgalib-1.4.3/src/fbdev.c +=================================================================== +--- svgalib-1.4.3.orig/src/fbdev.c 2011-01-06 14:24:59.000000000 +0100 ++++ svgalib-1.4.3/src/fbdev.c 2011-01-06 14:27:39.000000000 +0100 +@@ -141,9 +141,17 @@ + if (page != oldpage) + { + // munmap(BANKED_MEM_POINTER, __svgalib_banked_mem_size); +- mmap(BANKED_MEM_POINTER, __svgalib_banked_mem_size, ++ long size = __svgalib_banked_mem_size; ++ long offs = page * __svgalib_banked_mem_size; ++ if (size + offs > __svgalib_linear_mem_size) ++ size = __svgalib_linear_mem_size - offs; ++ if (size <= 0) { ++ fprintf (stderr, "invalid page %i requested", page); ++ } ++ ++ mmap(BANKED_MEM_POINTER, size, + PROT_READ | PROT_WRITE, MAP_SHARED | MAP_FIXED, +- fbdev_fd, page * __svgalib_banked_mem_size); ++ fbdev_fd, offs); + oldpage = page; + } + }