test.out
doc/tmpltohtml
doc/articles/wiki/*.bin
+include/plan9/libc_plan9.h
misc/cgo/life/run.out
misc/cgo/stdio/run.out
misc/cgo/testso/main
--- /dev/null
+// 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
--- /dev/null
+// 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*
// 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);
// 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
--- /dev/null
+#!/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
--- /dev/null
+// 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.
--- /dev/null
+// 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"
vadd(&compile, "-m64");
else if(streq(gohostarch, "386"))
vadd(&compile, "-m32");
- if(streq(dir, "lib9"))
- vadd(&compile, "-DPLAN9PORT");
vadd(&compile, "-I");
vadd(&compile, bpathf(&b, "%s/include", goroot));
}
+ if(streq(dir, "lib9"))
+ vadd(&compile, "-DPLAN9PORT");
+
+
vadd(&compile, "-I");
vadd(&compile, bstr(&path));
int i, j, ret;
Buf b;
Vec lines, fields;
-
- // On Plan 9, most of the libraries are already present.
- // The main exception is libmach which has been modified
- // in various places to support Go object files.
- if(streq(gohostos, "plan9")) {
- if(streq(dir, "lib9")) {
- name = lastelem(file);
- if(streq(name, "goos.c") || streq(name, "flag.c"))
- return 1;
- if(!contains(name, "plan9"))
- return 0;
- }
- }
// Check file name for GOOS or GOARCH.
name = lastelem(file);
+// +build !plan9
+
/*
Plan 9 from User Space src/lib9/_exits.c
http://code.swtch.com/plan9port/src/tip/src/lib9/_exits.c
+// +build !plan9
+
/*
Plan 9 from User Space src/lib9/_p9dir.c
http://code.swtch.com/plan9port/src/tip/src/lib9/_p9dir.c
+// +build !plan9
+
/*
Plan 9 from User Space src/lib9/ato*.c
http://code.swtch.com/plan9port/src/tip/src/lib9/atoi.c
+// +build !plan9
// +build !windows
/*
+// +build !plan9
+
/*
Inferno libkern/cleanname.c
http://code.google.com/p/inferno-os/source/browse/libkern/cleanname.c
+// +build !plan9
+
/*
Plan 9 from User Space src/lib9/create.c
http://code.swtch.com/plan9port/src/tip/src/lib9/create.c
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+// +build !plan9
+
#define NOPLAN9DEFINES
#include <u.h>
#include <libc.h>
+// +build !plan9
+
/*
Plan 9 from User Space src/lib9/dirfstat.c
http://code.swtch.com/plan9port/src/tip/src/lib9/dirfstat.c
+// +build !plan9
+
/*
Plan 9 from User Space src/lib9/dirfwstat.c
http://code.swtch.com/plan9port/src/tip/src/lib9/dirfwstat.c
+// +build !plan9
+
/*
Plan 9 from User Space src/lib9/dirstat.c
http://code.swtch.com/plan9port/src/tip/src/lib9/dirstat.c
+// +build !plan9
+
/*
Plan 9 from User Space src/lib9/dirwstat.c
http://code.swtch.com/plan9port/src/tip/src/lib9/dirwstat.c
+// +build !plan9
+
/*
Plan 9 from User Space src/lib9/dup.c
http://code.swtch.com/plan9port/src/tip/src/lib9/dup.c
+// +build !plan9
+
/*
Plan 9 from User Space src/lib9/exec.c
http://code.swtch.com/plan9port/src/tip/src/lib9/exec.c
+// +build !plan9
+
/*
Plan 9 from User Space src/lib9/execl.c
http://code.swtch.com/plan9port/src/tip/src/lib9/execl.c
+// +build !plan9
+
/*
Plan 9 from User Space src/lib9/exitcode.c
http://code.swtch.com/plan9port/src/tip/src/lib9/exitcode.c
+// +build !plan9
+
/*
Plan 9 from User Space src/lib9/_exits.c
http://code.swtch.com/plan9port/src/tip/src/lib9/_exits.c
+// +build !plan9
+
/*
Plan 9 from User Space src/lib9/fmtlock2.c
http://code.swtch.com/plan9port/src/tip/src/lib9/fmtlock2.c
+// +build !plan9
+
/*
Plan 9 from User Space src/lib9/getenv.c
http://code.swtch.com/plan9port/src/tip/src/lib9/getenv.c
+// +build !plan9
+
/*
Plan 9 from User Space src/lib9/getwd.c
http://code.swtch.com/plan9port/src/tip/src/lib9/getwd.c
+// +build !plan9
// +build !windows
/*
+// +build !plan9
+
/*
Plan 9 from User Space src/lib9/main.c
http://code.swtch.com/plan9port/src/tip/src/lib9/main.c
+// +build !plan9
+
/*
Plan 9 from User Space src/lib9/nan.c
http://code.swtch.com/plan9port/src/tip/src/lib9/nan.c
+// +build !plan9
// +build !windows
/*
+// +build !plan9
+
/*
Inferno lib9/nulldir.c
http://code.google.com/p/inferno-os/source/browse/lib9/nulldir.c
+// +build !plan9
+
/*
Plan 9 from User Space src/lib9/open.c
http://code.swtch.com/plan9port/src/tip/src/lib9/open.c
+// +build !plan9
+
/*
Inferno lib9/readn.c
http://code.google.com/p/inferno-os/source/browse/lib9/readn.c
+// +build !plan9
// +build !windows
/*
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+// +build plan9
+
#include <u.h>
#include <libc.h>
+// +build !plan9
+
/*
Plan 9 from User Space src/lib9/seek.c
http://code.swtch.com/plan9port/src/tip/src/lib9/seek.c
+// +build !plan9
+
/*
Inferno lib9/strecpy.c
http://code.google.com/p/inferno-os/source/browse/lib9/strecpy.c
+// +build !plan9
+
/*
Plan 9 from User Space src/lib9/sysfatal.c
http://code.swtch.com/plan9port/src/tip/src/lib9/sysfatal.c
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+// +build plan9
+
#include <u.h>
#include <libc.h>
+// +build !plan9
+
/*
Plan 9 from User Space src/lib9/time.c
http://code.swtch.com/plan9port/src/tip/src/lib9/time.c
+// +build !plan9
+
/*
Inferno lib9/tokenize.c
http://code.google.com/p/inferno-os/source/browse/lib9/tokenize.c
Fmt f;
memset(&f, 0, sizeof f);
-#ifndef PLAN9
fmtlocaleinit(&f, nil, nil, nil);
-#endif
f.stop = bp->ebuf;
f.to = (char*)f.stop + bp->ocount;
f.flush = bflush;
exit wrongdir
}
+# Generate libc_plan9.h.
+../include/plan9/mklibc.rc > ../include/plan9/libc_plan9.h
+
# Clean old generated file that will cause problems in the build.
rm -f ./pkg/runtime/runtime_defs.go