forked from mirrors/nixpkgs
5a5a5ade0f
Without this, the build fails even with x86emu: make LIBRARY=static static make[1]: Entering directory '/tmp/nix-build-libx86-1.1.drv-0/libx86-1.1' gcc -O2 -Wall -DDEBUG -g -c -o x86-common.o x86-common.c gcc -O2 -Wall -DDEBUG -g -c -o thunk.o thunk.c thunk.c: In function 'x_inb': thunk.c:40:9: error: impossible constraint in 'asm' __asm__ __volatile__("in" #bwl " %w1, %" #bw "0" : "=a"(value) : "Nd"(port)); \ ^ thunk.c:44:1: note: in expansion of macro '__BUILDIO' __BUILDIO(b,b,char) ^ <builtin>: recipe for target 'thunk.o' failed make[1]: *** [thunk.o] Error 1 make[1]: Leaving directory '/tmp/nix-build-libx86-1.1.drv-0/libx86-1.1' Makefile:17: recipe for target 'default' failed make: *** [default] Error 2
39 lines
1.2 KiB
Diff
39 lines
1.2 KiB
Diff
diff -Naur libx86-1.1+ds1.orig/Makefile libx86-1.1+ds1/Makefile
|
|
--- libx86-1.1+ds1.orig/Makefile 2008-05-19 12:28:59.000000000 +0300
|
|
+++ libx86-1.1+ds1/Makefile 2012-02-20 01:32:03.750068423 +0200
|
|
@@ -5,6 +5,7 @@
|
|
ifeq ($(BACKEND),x86emu)
|
|
OBJECTS += thunk.o x86emu/decode.o x86emu/debug.o x86emu/fpu.o \
|
|
x86emu/ops.o x86emu/ops2.o x86emu/prim_ops.o x86emu/sys.o
|
|
+ CFLAGS += -DX86EMU
|
|
else
|
|
OBJECTS += lrmi.o
|
|
endif
|
|
diff -Naur libx86-1.1+ds1.orig/thunk.c libx86-1.1+ds1/thunk.c
|
|
--- libx86-1.1+ds1.orig/thunk.c 2008-04-03 03:48:00.000000000 +0300
|
|
+++ libx86-1.1+ds1/thunk.c 2012-02-20 01:12:56.468820192 +0200
|
|
@@ -32,6 +32,7 @@
|
|
#define TRUE 1
|
|
#define FALSE 0
|
|
|
|
+#ifndef X86EMU
|
|
#define __BUILDIO(bwl,bw,type) \
|
|
static inline void out##bwl##_local(unsigned long port, unsigned type value) { __asm__ __volatile__("out" #bwl " %" #bw "0, %w1" : : "a"(value), "Nd"(port)); \
|
|
}\
|
|
@@ -44,6 +45,15 @@
|
|
__BUILDIO(b,b,char)
|
|
__BUILDIO(w,w,short)
|
|
__BUILDIO(l,,int)
|
|
+#else
|
|
+/* use libc functions */
|
|
+#define inb_local inb
|
|
+#define inw_local inw
|
|
+#define inl_local inl
|
|
+#define outb_local outb
|
|
+#define outw_local outw
|
|
+#define outl_local outl
|
|
+#endif /* X86EMU */
|
|
|
|
|
|
char *mmap_addr = SHMERRORPTR;
|