I have committed a patch to update libgo to the weekly.2011-12-02 release of the master library. In this message I have only included the diffs to files that are specific to the gccgo copy of the library. Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu. Committed to mainline.
Ian
diff -r 53056adb4c1e libgo/MERGE --- a/libgo/MERGE Tue Dec 13 10:51:45 2011 -0800 +++ b/libgo/MERGE Tue Dec 13 11:10:08 2011 -0800 @@ -1,4 +1,4 @@ -b4a91b693374 +0beb796b4ef8 The first line of this file holds the Mercurial revision number of the last merge done from the master library sources. diff -r 53056adb4c1e libgo/Makefile.am --- a/libgo/Makefile.am Tue Dec 13 10:51:45 2011 -0800 +++ b/libgo/Makefile.am Tue Dec 13 11:10:08 2011 -0800 @@ -233,7 +233,6 @@ toolexeclibgoexp_DATA = \ exp/ebnf.gox \ - exp/gui.gox \ $(exp_inotify_gox) \ exp/norm.gox \ exp/spdy.gox \ @@ -242,11 +241,6 @@ exp/terminal.gox \ exp/types.gox -toolexeclibgoexpguidir = $(toolexeclibgoexpdir)/gui - -toolexeclibgoexpgui_DATA = \ - exp/gui/x11.gox - toolexeclibgoexpsqldir = $(toolexeclibgoexpdir)/sql toolexeclibgoexpsql_DATA = \ @@ -447,6 +441,7 @@ runtime/go-map-len.c \ runtime/go-map-range.c \ runtime/go-nanotime.c \ + runtime/go-now.c \ runtime/go-new-map.c \ runtime/go-new.c \ runtime/go-panic.c \ @@ -576,6 +571,7 @@ go_html_files = \ go/html/const.go \ go/html/doc.go \ + go/html/doctype.go \ go/html/entity.go \ go/html/escape.go \ go/html/node.go \ @@ -888,7 +884,7 @@ go/time/sys_unix.go \ go/time/tick.go \ go/time/time.go \ - go/time/zoneinfo_posix.go \ + go/time/zoneinfo.go \ go/time/zoneinfo_unix.go go_unicode_files = \ @@ -1038,6 +1034,7 @@ go_crypto_x509_files = \ go/crypto/x509/cert_pool.go \ go/crypto/x509/pkcs1.go \ + go/crypto/x509/pkcs8.go \ go/crypto/x509/verify.go \ go/crypto/x509/x509.go go_crypto_xtea_files = \ @@ -1135,8 +1132,6 @@ go_exp_ebnf_files = \ go/exp/ebnf/ebnf.go \ go/exp/ebnf/parser.go -go_exp_gui_files = \ - go/exp/gui/gui.go go_exp_inotify_files = \ go/exp/inotify/inotify_linux.go go_exp_norm_files = \ @@ -1178,10 +1173,6 @@ go/exp/types/types.go \ go/exp/types/universe.go -go_exp_gui_x11_files = \ - go/exp/gui/x11/auth.go \ - go/exp/gui/x11/conn.go - go_exp_sql_driver_files = \ go/exp/sql/driver/driver.go \ go/exp/sql/driver/types.go @@ -1415,13 +1406,11 @@ go/text/template/exec.go \ go/text/template/funcs.go \ go/text/template/helper.go \ - go/text/template/parse.go \ - go/text/template/set.go + go/text/template/template.go go_text_template_parse_files = \ go/text/template/parse/lex.go \ go/text/template/parse/node.go \ - go/text/template/parse/parse.go \ - go/text/template/parse/set.go + go/text/template/parse/parse.go go_sync_atomic_files = \ go/sync/atomic/doc.go @@ -1725,14 +1714,12 @@ encoding/pem.lo \ encoding/xml.lo \ exp/ebnf.lo \ - exp/gui.lo \ exp/norm.lo \ exp/spdy.lo \ exp/sql.lo \ exp/ssh.lo \ exp/terminal.lo \ exp/types.lo \ - exp/gui/x11.lo \ exp/sql/driver.lo \ html/template.lo \ go/ast.lo \ @@ -2784,16 +2771,6 @@ @$(CHECK) .PHONY: exp/ebnf/check -@go_include@ exp/gui.lo.dep -exp/gui.lo.dep: $(go_exp_gui_files) - $(BUILDDEPS) -exp/gui.lo: $(go_exp_gui_files) - $(BUILDPACKAGE) -exp/gui/check: $(CHECK_DEPS) - @$(MKDIR_P) exp/gui - @$(CHECK) -.PHONY: exp/gui/check - @go_include@ exp/norm.lo.dep exp/norm.lo.dep: $(go_exp_norm_files) $(BUILDDEPS) @@ -2854,16 +2831,6 @@ @$(CHECK) .PHONY: exp/types/check -@go_include@ exp/gui/x11.lo.dep -exp/gui/x11.lo.dep: $(go_exp_gui_x11_files) - $(BUILDDEPS) -exp/gui/x11.lo: $(go_exp_gui_x11_files) - $(BUILDPACKAGE) -exp/gui/x11/check: $(CHECK_DEPS) - @$(MKDIR_P) exp/gui/x11 - @$(CHECK) -.PHONY: exp/gui/x11/check - @go_include@ exp/inotify.lo.dep exp/inotify.lo.dep: $(go_exp_inotify_files) $(BUILDDEPS) @@ -3686,8 +3653,6 @@ exp/ebnf.gox: exp/ebnf.lo $(BUILDGOX) -exp/gui.gox: exp/gui.lo - $(BUILDGOX) exp/inotify.gox: exp/inotify.lo $(BUILDGOX) exp/norm.gox: exp/norm.lo @@ -3703,9 +3668,6 @@ exp/types.gox: exp/types.lo $(BUILDGOX) -exp/gui/x11.gox: exp/gui/x11.lo - $(BUILDGOX) - exp/sql/driver.gox: exp/sql/driver.lo $(BUILDGOX) @@ -3950,6 +3912,7 @@ html/template/check \ go/ast/check \ $(go_build_check_omitted_since_it_calls_6g) \ + go/doc/check \ go/parser/check \ go/printer/check \ go/scanner/check \ diff -r 53056adb4c1e libgo/runtime/go-nanotime.c --- a/libgo/runtime/go-nanotime.c Tue Dec 13 10:51:45 2011 -0800 +++ b/libgo/runtime/go-nanotime.c Tue Dec 13 11:10:08 2011 -0800 @@ -6,17 +6,16 @@ #include <sys/time.h> -#include "go-assert.h" #include "runtime.h" +int64 runtime_nanotime (void) + __attribute__ ((no_split_stack)); + int64 runtime_nanotime (void) { - int i; struct timeval tv; - i = gettimeofday (&tv, NULL); - __go_assert (i == 0); - + gettimeofday (&tv, NULL); return (int64) tv.tv_sec * 1000000000 + (int64) tv.tv_usec * 1000; } diff -r 53056adb4c1e libgo/runtime/go-now.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libgo/runtime/go-now.c Tue Dec 13 11:10:08 2011 -0800 @@ -0,0 +1,31 @@ +// Copyright 2011 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 <stddef.h> +#include <stdint.h> +#include <sys/time.h> + +// Return current time. This is the implementation of time.now(). + +struct time_now_ret +{ + int64_t sec; + int32_t nsec; +}; + +struct time_now_ret now() + __asm__ ("libgo_time.time.now") + __attribute__ ((no_split_stack)); + +struct time_now_ret +now() +{ + struct timeval tv; + struct time_now_ret ret; + + gettimeofday (&tv, NULL); + ret.sec = tv.tv_sec; + ret.nsec = tv.tv_usec * 1000; + return ret; +} diff -r 53056adb4c1e libgo/runtime/time.goc --- a/libgo/runtime/time.goc Tue Dec 13 10:51:45 2011 -0800 +++ b/libgo/runtime/time.goc Tue Dec 13 11:10:08 2011 -0800 @@ -18,10 +18,7 @@ // Package time APIs. // Godoc uses the comments in package time, not these. -// Nanoseconds returns the current time in nanoseconds. -func Nanoseconds() (ret int64) { - ret = runtime_nanotime(); -} +// time.now is implemented in assembly. // Sleep puts the current goroutine to sleep for at least ns nanoseconds. func Sleep(ns int64) {