mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-23 10:54:07 +08:00
Correct gcc/go/gofrontend/lex.cc and libgo/aclocal.m4 to the versions in the gofrontend repo...
Correct gcc/go/gofrontend/lex.cc and libgo/aclocal.m4 to the versions in the gofrontend repo, which is supposed to be the master copy. Remove a few files in libgo that somehow were not deleted in the past. From-SVN: r242583
This commit is contained in:
parent
54f0deb00f
commit
9bd0f0bc6b
@ -882,7 +882,7 @@ Lex::gather_identifier()
|
||||
&& (cc < '0' || cc > '9'))
|
||||
{
|
||||
// Check for an invalid character here, as we get better
|
||||
// error behavior if we swallow them as part of the
|
||||
// error behaviour if we swallow them as part of the
|
||||
// identifier we are building.
|
||||
if ((cc >= ' ' && cc < 0x7f)
|
||||
|| cc == '\t'
|
||||
@ -923,7 +923,7 @@ Lex::gather_identifier()
|
||||
{
|
||||
// There is no valid place for a non-ASCII character
|
||||
// other than an identifier, so we get better error
|
||||
// handling behavior if we swallow this character after
|
||||
// handling behaviour if we swallow this character after
|
||||
// giving an error.
|
||||
if (!issued_error)
|
||||
go_error_at(this->location(),
|
||||
|
94
libgo/aclocal.m4
vendored
94
libgo/aclocal.m4
vendored
@ -579,27 +579,6 @@ if test x"${install_sh}" != xset; then
|
||||
fi
|
||||
AC_SUBST(install_sh)])
|
||||
|
||||
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 2
|
||||
|
||||
# Check whether the underlying file-system supports filenames
|
||||
# with a leading dot. For instance MS-DOS doesn't.
|
||||
AC_DEFUN([AM_SET_LEADING_DOT],
|
||||
[rm -rf .tst 2>/dev/null
|
||||
mkdir .tst 2>/dev/null
|
||||
if test -d .tst; then
|
||||
am__leading_dot=.
|
||||
else
|
||||
am__leading_dot=_
|
||||
fi
|
||||
rmdir .tst 2>/dev/null
|
||||
AC_SUBST([am__leading_dot])])
|
||||
|
||||
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
|
||||
# From Jim Meyering
|
||||
|
||||
@ -764,74 +743,6 @@ case $mkdir_p in
|
||||
esac
|
||||
])
|
||||
|
||||
# Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2012
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 6
|
||||
|
||||
# AM_ENABLE_MULTILIB([MAKEFILE], [REL-TO-TOP-SRCDIR])
|
||||
# ---------------------------------------------------
|
||||
# Add --enable-multilib to configure.
|
||||
AC_DEFUN([AM_ENABLE_MULTILIB],
|
||||
[m4_warn([obsolete], [$0 will be removed from Automake core soon.
|
||||
Files implementing the "multilib" feature are (and will remain) available
|
||||
to the 'contrib/' directory in the Automake distribution.])]dnl
|
||||
[# Default to --enable-multilib
|
||||
AC_ARG_ENABLE(multilib,
|
||||
[ --enable-multilib build many library versions (default)],
|
||||
[case "$enableval" in
|
||||
yes) multilib=yes ;;
|
||||
no) multilib=no ;;
|
||||
*) AC_MSG_ERROR([bad value $enableval for multilib option]) ;;
|
||||
esac],
|
||||
[multilib=yes])
|
||||
|
||||
# We may get other options which we leave undocumented:
|
||||
# --with-target-subdir, --with-multisrctop, --with-multisubdir
|
||||
# See config-ml.in if you want the gory details.
|
||||
|
||||
if test "$srcdir" = "."; then
|
||||
if test "$with_target_subdir" != "."; then
|
||||
multi_basedir="$srcdir/$with_multisrctop../$2"
|
||||
else
|
||||
multi_basedir="$srcdir/$with_multisrctop$2"
|
||||
fi
|
||||
else
|
||||
multi_basedir="$srcdir/$2"
|
||||
fi
|
||||
AC_SUBST(multi_basedir)
|
||||
|
||||
# Even if the default multilib is not a cross compilation,
|
||||
# it may be that some of the other multilibs are.
|
||||
if test $cross_compiling = no && test $multilib = yes \
|
||||
&& test "x${with_multisubdir}" != x ; then
|
||||
cross_compiling=maybe
|
||||
fi
|
||||
|
||||
AC_OUTPUT_COMMANDS([
|
||||
# Only add multilib support code if we just rebuilt the top-level
|
||||
# Makefile.
|
||||
case " $CONFIG_FILES " in
|
||||
*" ]m4_default([$1],Makefile)[ "*)
|
||||
ac_file=]m4_default([$1],Makefile)[ . ${multi_basedir}/config-ml.in
|
||||
;;
|
||||
esac],
|
||||
[
|
||||
srcdir="$srcdir"
|
||||
host="$host"
|
||||
target="$target"
|
||||
with_multisubdir="$with_multisubdir"
|
||||
with_multisrctop="$with_multisrctop"
|
||||
with_target_subdir="$with_target_subdir"
|
||||
ac_configure_args="${multilib_arg} ${ac_configure_args}"
|
||||
multi_basedir="$multi_basedir"
|
||||
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
|
||||
CC="$CC"])])dnl
|
||||
|
||||
# Helper functions for option handling. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
|
||||
@ -1077,6 +988,11 @@ AC_SUBST([am__tar])
|
||||
AC_SUBST([am__untar])
|
||||
]) # _AM_PROG_TAR
|
||||
|
||||
m4_include([../config/depstand.m4])
|
||||
m4_include([../config/lead-dot.m4])
|
||||
m4_include([../config/multi.m4])
|
||||
m4_include([../config/override.m4])
|
||||
m4_include([../config/unwind_ipinfo.m4])
|
||||
m4_include([config/go.m4])
|
||||
m4_include([config/libtool.m4])
|
||||
m4_include([config/ltoptions.m4])
|
||||
|
Binary file not shown.
@ -1,8 +0,0 @@
|
||||
#data
|
||||
FOO
ZOO
|
||||
#errors
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| "FOO
ZOO"
|
@ -1,113 +0,0 @@
|
||||
/* go-trampoline.c -- allocate a trampoline for a nested function.
|
||||
|
||||
Copyright 2009 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 "config.h"
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#ifdef HAVE_SYS_MMAN_H
|
||||
#include <sys/mman.h>
|
||||
#endif
|
||||
|
||||
#include "runtime.h"
|
||||
#include "arch.h"
|
||||
#include "malloc.h"
|
||||
#include "go-assert.h"
|
||||
|
||||
/* Trampolines need to run in memory that is both writable and
|
||||
executable. In order to implement them, we grab a page of memory
|
||||
and mprotect it. We fill in the page with trampolines as they are
|
||||
required. When we run out of space, we drop the pointer to the
|
||||
page and allocate a new one. The page will be freed by the garbage
|
||||
collector when there are no more variables of type func pointing to
|
||||
it. */
|
||||
|
||||
/* A lock to control access to the page of closures. */
|
||||
|
||||
static Lock trampoline_lock;
|
||||
|
||||
/* The page of closures. */
|
||||
|
||||
static unsigned char *trampoline_page;
|
||||
|
||||
/* The size of trampoline_page. */
|
||||
|
||||
static uintptr_t trampoline_page_size;
|
||||
|
||||
/* The number of bytes we have used on trampoline_page. */
|
||||
|
||||
static uintptr_t trampoline_page_used;
|
||||
|
||||
/* Allocate a trampoline of SIZE bytes that will use the closure in
|
||||
CLOSURE. */
|
||||
|
||||
void *
|
||||
__go_allocate_trampoline (uintptr_t size, void *closure)
|
||||
{
|
||||
uintptr_t ptr_size;
|
||||
uintptr_t full_size;
|
||||
unsigned char *ret;
|
||||
|
||||
/* Because the garbage collector only looks at aligned addresses, we
|
||||
need to store the closure at an aligned address to ensure that it
|
||||
sees it. */
|
||||
ptr_size = sizeof (void *);
|
||||
full_size = (((size + ptr_size - 1) / ptr_size) * ptr_size);
|
||||
full_size += ptr_size;
|
||||
|
||||
runtime_lock (&trampoline_lock);
|
||||
|
||||
if (full_size < trampoline_page_size - trampoline_page_used)
|
||||
trampoline_page = NULL;
|
||||
|
||||
if (trampoline_page == NULL)
|
||||
{
|
||||
uintptr_t page_size;
|
||||
unsigned char *page;
|
||||
|
||||
page_size = getpagesize ();
|
||||
__go_assert (page_size >= full_size);
|
||||
page = (unsigned char *) runtime_mallocgc (2 * page_size - 1, 0, 0, 0);
|
||||
page = (unsigned char *) (((uintptr_t) page + page_size - 1)
|
||||
& ~ (page_size - 1));
|
||||
|
||||
#ifdef HAVE_SYS_MMAN_H
|
||||
{
|
||||
int i;
|
||||
|
||||
i = mprotect (page, page_size, PROT_READ | PROT_WRITE | PROT_EXEC);
|
||||
__go_assert (i == 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
trampoline_page = page;
|
||||
trampoline_page_size = page_size;
|
||||
trampoline_page_used = 0;
|
||||
}
|
||||
|
||||
ret = trampoline_page + trampoline_page_used;
|
||||
trampoline_page_used += full_size;
|
||||
|
||||
runtime_unlock (&trampoline_lock);
|
||||
|
||||
__builtin_memcpy (ret + full_size - ptr_size, &closure, ptr_size);
|
||||
|
||||
return (void *) ret;
|
||||
}
|
||||
|
||||
/* Scan the trampoline page when running the garbage collector. This
|
||||
just makes sure that the garbage collector sees the pointer in
|
||||
trampoline_page, so that the page itself is not freed if there are
|
||||
no other references to it. */
|
||||
|
||||
void
|
||||
runtime_trampoline_scan (void (*addroot) (Obj))
|
||||
{
|
||||
if (trampoline_page != NULL)
|
||||
addroot ((Obj){(byte *) &trampoline_page, sizeof trampoline_page, 0});
|
||||
}
|
Loading…
Reference in New Issue
Block a user