tag 536544 + patch tag 621409 + patch thanks Ubuntu is carrying a patch that fixes the vnc4 build on armel and armhf. Better yet, the patch actually produces a usable server on both architectures :)
Unless there's an objection, I'd like to go ahead and upload an NMU using the attached patch.
diff -u vnc4-4.1.1+X4.3.0/debian/changelog vnc4-4.1.1+X4.3.0/debian/changelog --- vnc4-4.1.1+X4.3.0/debian/changelog +++ vnc4-4.1.1+X4.3.0/debian/changelog @@ -1,3 +1,11 @@ +vnc4 (4.1.1+X4.3.0-37.6) unstable; urgency=medium + + * Non-maintainer upload. + * armhf_inw_inb.patch: Fix FTBFS on armel/armhf (from Ubuntu). + Closes: #472188, #536544, #621409. + + -- dann frazier <da...@debian.org> Thu, 02 Apr 2015 13:34:56 -0400 + vnc4 (4.1.1+X4.3.0-37.5) experimental; urgency=medium * Non-maintainer upload. only in patch2: unchanged: --- vnc4-4.1.1+X4.3.0.orig/debian/patches/armhf_inw_inb.patch +++ vnc4-4.1.1+X4.3.0/debian/patches/armhf_inw_inb.patch @@ -0,0 +1,55 @@ +--- vnc4-4.1.1+X4.3.0/unix/xc/programs/Xserver/hw/xfree86/common/compiler.h 2003-01-29 08:23:20.000000000 -0700 ++++ vnc4-4.1.1+xorg4.3.0/unix/xc/programs/Xserver/hw/xfree86/common/compiler.h 2015-03-31 12:21:54.000000000 -0600 +@@ -857,6 +857,7 @@ static __inline__ void stw_u(unsigned lo + + unsigned int IOPortBase; /* Memory mapped I/O port area */ + ++# if defined(__mips__) + static __inline__ void + outb(unsigned PORT_SIZE port, unsigned char val) + { +@@ -893,8 +894,6 @@ inl(unsigned PORT_SIZE port) + return *(volatile unsigned int*)(((unsigned PORT_SIZE)(port))+IOPortBase); + } + +- +-# if defined(__mips__) + static __inline__ unsigned long ldq_u(unsigned long * r11) + { + unsigned long r1; +@@ -1244,6 +1243,35 @@ inl(unsigned short port) + # define mem_barrier() eieio() + # define write_mem_barrier() eieio() + ++# elif defined(__arm__) && defined(__linux__) ++ ++/* for Linux on ARM, we use the LIBC inx/outx routines */ ++/* note that the appropriate setup via "ioperm" needs to be done */ ++/* *before* any inx/outx is done. */ ++#include <sys/io.h> ++ ++static __inline__ void ++xf_outb(unsigned short port, unsigned char val) ++{ ++ outb(val, port); ++} ++ ++static __inline__ void ++xf_outw(unsigned short port, unsigned short val) ++{ ++ outw(val, port); ++} ++ ++static __inline__ void ++xf_outl(unsigned short port, unsigned int val) ++{ ++ outl(val, port); ++} ++ ++#define outb xf_outb ++#define outw xf_outw ++#define outl xf_outl ++ + # else /* ix86 */ + + # define ldq_u(p) (*((unsigned long *)(p))) only in patch2: unchanged: --- vnc4-4.1.1+X4.3.0.orig/unix/xc/programs/Xserver/hw/xfree86/common/compiler.h +++ vnc4-4.1.1+X4.3.0/unix/xc/programs/Xserver/hw/xfree86/common/compiler.h @@ -857,6 +857,7 @@ unsigned int IOPortBase; /* Memory mapped I/O port area */ +# if defined(__mips__) static __inline__ void outb(unsigned PORT_SIZE port, unsigned char val) { @@ -893,8 +894,6 @@ return *(volatile unsigned int*)(((unsigned PORT_SIZE)(port))+IOPortBase); } - -# if defined(__mips__) static __inline__ unsigned long ldq_u(unsigned long * r11) { unsigned long r1; @@ -1244,6 +1243,35 @@ # define mem_barrier() eieio() # define write_mem_barrier() eieio() +# elif defined(__arm__) && defined(__linux__) + +/* for Linux on ARM, we use the LIBC inx/outx routines */ +/* note that the appropriate setup via "ioperm" needs to be done */ +/* *before* any inx/outx is done. */ +#include <sys/io.h> + +static __inline__ void +xf_outb(unsigned short port, unsigned char val) +{ + outb(val, port); +} + +static __inline__ void +xf_outw(unsigned short port, unsigned short val) +{ + outw(val, port); +} + +static __inline__ void +xf_outl(unsigned short port, unsigned int val) +{ + outl(val, port); +} + +#define outb xf_outb +#define outw xf_outw +#define outl xf_outl + # else /* ix86 */ # define ldq_u(p) (*((unsigned long *)(p)))