summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDavid du Colombier <0intro@gmail.com>2014-02-13 20:06:41 +0100
committerDavid du Colombier <0intro@gmail.com>2014-02-13 20:06:41 +0100
commita8db5dfa980737f696743c83759b96a3c7b5eb99 (patch)
tree091dee81873809770522081f49d59a26e8d85256 /include
parenta2e04d1583c488aa22dcc4c7bc84841134cdf7db (diff)
downloadgo-a8db5dfa980737f696743c83759b96a3c7b5eb99.tar.gz
lib9: enable on Plan 9
This change depends on CL 57170052. LGTM=rsc R=rsc, bradfitz CC=golang-codereviews https://codereview.appspot.com/60840049
Diffstat (limited to 'include')
-rw-r--r--include/plan9/errno.h7
-rw-r--r--include/plan9/fmt.h64
-rw-r--r--include/plan9/libc.h7
-rwxr-xr-xinclude/plan9/mklibc.rc13
-rw-r--r--include/plan9/stdarg.h3
-rw-r--r--include/plan9/utf.h5
6 files changed, 98 insertions, 1 deletions
diff --git a/include/plan9/errno.h b/include/plan9/errno.h
new file mode 100644
index 000000000..1ed572ace
--- /dev/null
+++ b/include/plan9/errno.h
@@ -0,0 +1,7 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+int errno;
+
+#define ERANGE 1001
diff --git a/include/plan9/fmt.h b/include/plan9/fmt.h
new file mode 100644
index 000000000..b4a4fe791
--- /dev/null
+++ b/include/plan9/fmt.h
@@ -0,0 +1,64 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+#include "../fmt.h"
+
+#pragma varargck argpos fmtprint 2
+#pragma varargck argpos fprint 2
+#pragma varargck argpos print 1
+#pragma varargck argpos runeseprint 3
+#pragma varargck argpos runesmprint 1
+#pragma varargck argpos runesnprint 3
+#pragma varargck argpos runesprint 2
+#pragma varargck argpos seprint 3
+#pragma varargck argpos smprint 1
+#pragma varargck argpos snprint 3
+#pragma varargck argpos sprint 2
+
+#pragma varargck type "lld" vlong
+#pragma varargck type "llo" vlong
+#pragma varargck type "llx" vlong
+#pragma varargck type "llb" vlong
+#pragma varargck type "lld" uvlong
+#pragma varargck type "llo" uvlong
+#pragma varargck type "llx" uvlong
+#pragma varargck type "llb" uvlong
+#pragma varargck type "ld" long
+#pragma varargck type "lo" long
+#pragma varargck type "lx" long
+#pragma varargck type "lb" long
+#pragma varargck type "ld" ulong
+#pragma varargck type "lo" ulong
+#pragma varargck type "lx" ulong
+#pragma varargck type "lb" ulong
+#pragma varargck type "d" int
+#pragma varargck type "o" int
+#pragma varargck type "x" int
+#pragma varargck type "c" int
+#pragma varargck type "C" int
+#pragma varargck type "b" int
+#pragma varargck type "d" uint
+#pragma varargck type "x" uint
+#pragma varargck type "c" uint
+#pragma varargck type "C" uint
+#pragma varargck type "b" uint
+#pragma varargck type "f" double
+#pragma varargck type "e" double
+#pragma varargck type "g" double
+#pragma varargck type "s" char*
+#pragma varargck type "q" char*
+#pragma varargck type "S" Rune*
+#pragma varargck type "Q" Rune*
+#pragma varargck type "r" void
+#pragma varargck type "%" void
+#pragma varargck type "n" int*
+#pragma varargck type "p" uintptr
+#pragma varargck type "p" void*
+#pragma varargck flag ','
+#pragma varargck flag ' '
+#pragma varargck flag 'h'
+#pragma varargck type "<" void*
+#pragma varargck type "[" void*
+#pragma varargck type "H" void*
+#pragma varargck type "lH" void*
diff --git a/include/plan9/libc.h b/include/plan9/libc.h
index 798e47095..773edeee3 100644
--- a/include/plan9/libc.h
+++ b/include/plan9/libc.h
@@ -2,8 +2,10 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-#include "/sys/include/libc.h"
#include "/sys/include/ctype.h"
+#include "fmt.h"
+#include "utf.h"
+#include "libc_plan9.h"
char* getgoos(void);
char* getgoarch(void);
@@ -26,3 +28,6 @@ void flagprint(int);
// The libraries use size_t to avoid -Wconversion warnings from GCC
// when calling standard library functions like memcpy.
typedef unsigned long size_t;
+
+// math.h
+#define HUGE_VAL 1.79769313486231e+308
diff --git a/include/plan9/mklibc.rc b/include/plan9/mklibc.rc
new file mode 100755
index 000000000..460ef1ce4
--- /dev/null
+++ b/include/plan9/mklibc.rc
@@ -0,0 +1,13 @@
+#!/bin/rc
+
+pattern='/umuldiv/d
+ /UTFmax/d
+ /Runesync/d
+ /Runeself/d
+ /Runeerror/d
+ /Runemax/d
+ /rune routines/,/^\/\*/d
+ /print routines/,/^\/\*/d
+ /error string for/,/^\/\*/d'
+
+sed -e $pattern /sys/include/libc.h
diff --git a/include/plan9/stdarg.h b/include/plan9/stdarg.h
new file mode 100644
index 000000000..b562a3a6e
--- /dev/null
+++ b/include/plan9/stdarg.h
@@ -0,0 +1,3 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
diff --git a/include/plan9/utf.h b/include/plan9/utf.h
new file mode 100644
index 000000000..03c26d69d
--- /dev/null
+++ b/include/plan9/utf.h
@@ -0,0 +1,5 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+#include "../utf.h"