This patch also adds the generated config.h and runtime.inc headers.
Signed-off-by: Charalampos Mainas <Charalampos.Mainas@neclab.eu>
Signed-off-by: Costin Lupu <costin.lupu@cs.pub.ro>
Reviewed-by: Felipe Huici <felipe.huici@neclab.eu>
--- /dev/null
+# SPDX-License-Identifier: BSD-3-Clause
+#
+# libgo Makefile.uk
+#
+# Authors: Charalampos Mainas <charalampos.mainas@neclab.eu>
+# Costin Lupu <costin.lupu@cs.pub.ro>
+#
+# Copyright (c) 2019, NEC Europe Ltd., NEC Corporation
+# 2019, University Politehnica of Bucharest
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. Neither the name of the copyright holder nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+# THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
+#
+
+################################################################################
+# Library registration
+################################################################################
+$(eval $(call addlib_s,libgo,$(CONFIG_LIBGO)))
+
+################################################################################
+# Original sources
+################################################################################
+LIBGCC_VERSION=7.3.0
+LIBGCC_URL=https://ftp.gnu.org/gnu/gcc/gcc-$(LIBGCC_VERSION)/gcc-$(LIBGCC_VERSION).tar.gz
+LIBGO_PATCHDIR=$(LIBGO_BASE)/patches
+LIBGCC_SUBDIR=gcc-$(LIBGCC_VERSION)
+## Patch gcc sources with libgo patches
+$(eval $(call patch,libgcc,$(LIBGO_PATCHDIR),$(LIBGCC_SUBDIR)))
+
+################################################################################
+# Helpers
+################################################################################
+LIBGCC_EXTRACTED = $(LIBGCC_ORIGIN)/gcc-$(LIBGCC_VERSION)
+LIBGO_EXTRACTED = $(LIBGCC_EXTRACTED)/libgo
+
+################################################################################
+# Library includes
+################################################################################
+LIBGO_COMMON_INCLUDES-y = -I$(LIBGO_BASE)/include -I$(LIBGO_BASE)/generated/include \
+ -I$(LIBGO_EXTRACTED) -I$(LIBGO_EXTRACTED)/runtime \
+ -I$(LIBGCC_EXTRACTED)/libffi/include -I$(LIBGCC_BASE)/libffi/include \
+ -I$(LIBGCC_EXTRACTED)/libgcc \
+ -I$(LIBBACKTRACE_EXTRACTED) \
+ -I$(LIBGCC_EXTRACTED)/gcc/include
+LIBGO_COMMON_INCLUDES-$(CONFIG_ARCH_X86_64) += -I$(LIBFFI_EXTRACTED)/src/x86
+LIBGO_COMMON_INCLUDES-$(CONFIG_ARCH_X86_64) += -I$(LIBGCC_EXTRACTED)/gcc/config/i386
+LIBGO_ASINCLUDES-y = $(LIBGO_COMMON_INCLUDES-y)
+LIBGO_CINCLUDES-y = $(LIBGO_COMMON_INCLUDES-y)
+
+
+################################################################################
+# Global flags
+################################################################################
+LIBGO_CFLAGS-y += -DHAVE_CONFIG_H -D_INCLUDE_MALLOC_H_ \
+ -fexceptions -fnon-call-exceptions -fplan9-extensions -fno-split-stack \
+ -Wall -Wextra -Wwrite-strings -Wcast-qual -Wno-unused-function \
+ -minline-all-stringops -Wno-implicit-function-declaration \
+ -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
+LIBGO_CFLAGS-y += -Wno-cast-qual -Wno-unused-value
+
+################################################################################
+# libgo code
+################################################################################
+
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/go/bytes/indexbyte.c|bytes
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/go/log/syslog/syslog_c.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/go/reflect/makefunc_ffi_c.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/go/runtime/internal/atomic/atomic.c|runtime.internal
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/go/strings/indexbyte.c|strings
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/go/sync/atomic/atomic.c|sync
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/go/syscall/clone_linux.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/go/syscall/errno.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/go/syscall/signame.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/go/syscall/wait.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/aeshash.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/env_posix.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/getncpu-linux.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-assert.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-breakpoint.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-caller.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-callers.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-cdiv.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-cgo.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-construct-map.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-ffi.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-fieldtrack.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-matherr.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-memclr.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-memcmp.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-memequal.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-memmove.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-nanotime.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-new.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-nosys.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-now.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-reflect-call.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-runtime-error.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-setenv.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-signal.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-strslice.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-typedesc-equal.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-unsafe-newarray.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-unsafe-new.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-unsafe-pointer.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-unsetenv.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-unwind.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-varargs.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/heapdump.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/mcache.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/mcentral.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/mem.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/mfixalloc.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/mgc0.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/mheap.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/msize.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/panic.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/parfor.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/print.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/proc.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/runtime_c.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/thread.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/thread-linux.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/yield.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/runtime/go-main.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/sysinfo.c
+LIBGO_SRCS-y += $(LIBGO_EXTRACTED)/malloc.c # generated
+
+# Generate go2c tool
+$(LIBGO_BUILD)/goc2c: $(LIBGCC_BUILD)/.patched
+ $(call verbose_cmd,GEN,libgo: $(notdir $@), \
+ cd $(LIBGO_EXTRACTED) && gcc -o $@ $(LIBGO_EXTRACTED)/runtime/goc2c.c)
+
+# Generate malloc.c
+$(LIBGO_EXTRACTED)/malloc.c: $(LIBGO_EXTRACTED)/runtime/malloc.goc $(LIBGO_BUILD)/goc2c
+ $(call verbose_cmd,GEN,libgo: $(notdir $@), \
+ cd $(LIBGO_EXTRACTED) && $(LIBGO_BUILD)/goc2c $< > $@)
+
+UK_PREPARE += $(LIBGO_BUILD)/goc2c $(LIBGO_EXTRACTED)/malloc.c
+
+# Go packages
+LIBGO_GOFLAGS-y += -minline-all-stringops -fno-split-stack
+LIBGO_GOFLAGS-y += -I$(LIBGO_BUILD)
+LIBGO_GOFLAGS = $(LIBGO_GOFLAGS-y)
--- /dev/null
+/* config.h. Generated from config.h.in by configure. */
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define if building universal (internal helper macro) */
+/* #undef AC_APPLE_UNIVERSAL_BUILD */
+
+/* Define to the flags needed for the .section .eh_frame directive. */
+#define EH_FRAME_FLAGS "aw"
+
+/* Define to 1 if you have the `accept4' function. */
+//#define HAVE_ACCEPT4 1
+
+/* Define to 1 if you have the `acosl' function. */
+#define HAVE_ACOSL 1
+
+/* Define to 1 if you have the `asinl' function. */
+#define HAVE_ASINL 1
+
+/* Define if your assembler supports GNU comdat group syntax. */
+#define HAVE_AS_COMDAT_GAS 1
+
+/* Define if your assembler supports unwind section type. */
+#define HAVE_AS_X86_64_UNWIND_SECTION_TYPE 1
+
+/* Define if your assembler supports AES instructions. */
+//#define HAVE_AS_X86_AES 1
+
+/* Define if your assembler supports PC relative relocs. */
+#define HAVE_AS_X86_PCREL 1
+
+/* Define to 1 if you have the `atan2l' function. */
+#define HAVE_ATAN2L 1
+
+/* Define to 1 if you have the `atanl' function. */
+#define HAVE_ATANL 1
+
+/* Define to 1 if you have the `cosl' function. */
+#define HAVE_COSL 1
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the `dl_iterate_phdr' function. */
+#define HAVE_DL_ITERATE_PHDR 1
+
+/* Define to 1 if you have the `dup3' function. */
+#define HAVE_DUP3 1
+
+/* Define to 1 if you have the `epoll_create1' function. */
+//#define HAVE_EPOLL_CREATE1 1
+
+/* Define to 1 if you have the `expl' function. */
+#define HAVE_EXPL 1
+
+/* Define to 1 if you have the `expm1l' function. */
+#define HAVE_EXPM1L 1
+
+/* Define to 1 if you have the `faccessat' function. */
+#define HAVE_FACCESSAT 1
+
+/* Define to 1 if you have the `fallocate' function. */
+#define HAVE_FALLOCATE 1
+
+/* Define to 1 if you have the `fchmodat' function. */
+#define HAVE_FCHMODAT 1
+
+/* Define to 1 if you have the `fchownat' function. */
+//#define HAVE_FCHOWNAT 1
+
+/* Define to 1 if you have the `futimesat' function. */
+//#define HAVE_FUTIMESAT 1
+
+/* Define if _Unwind_GetIPInfo is available. */
+#define HAVE_GETIPINFO 1
+
+/* Define to 1 if you have the `getxattr' function. */
+//#define HAVE_GETXATTR 1
+
+/* Define to 1 if you have the `inotify_add_watch' function. */
+#define HAVE_INOTIFY_ADD_WATCH 1
+
+/* Define to 1 if you have the `inotify_init' function. */
+#define HAVE_INOTIFY_INIT 1
+
+/* Define to 1 if you have the `inotify_init1' function. */
+#define HAVE_INOTIFY_INIT1 1
+
+/* Define to 1 if you have the `inotify_rm_watch' function. */
+#define HAVE_INOTIFY_RM_WATCH 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the `ldexpl' function. */
+#define HAVE_LDEXPL 1
+
+/* Define to 1 if you have the <linux/ether.h> header file. */
+/* #undef HAVE_LINUX_ETHER_H */
+
+/* Define to 1 if you have the <linux/filter.h> header file. */
+//#define HAVE_LINUX_FILTER_H 1
+
+/* Define to 1 if you have the <linux/fs.h> header file. */
+//#define HAVE_LINUX_FS_H 1
+
+/* Define to 1 if you have the <linux/if_addr.h> header file. */
+//#define HAVE_LINUX_IF_ADDR_H 1
+
+/* Define to 1 if you have the <linux/if_ether.h> header file. */
+//#define HAVE_LINUX_IF_ETHER_H 1
+
+/* Define to 1 if you have the <linux/if_tun.h> header file. */
+//#define HAVE_LINUX_IF_TUN_H 1
+
+/* Define to 1 if you have the <linux/netlink.h> header file. */
+//#define HAVE_LINUX_NETLINK_H 1
+
+/* Define to 1 if you have the <linux/ptrace.h> header file. */
+//#define HAVE_LINUX_PTRACE_H 1
+
+/* Define to 1 if you have the <linux/reboot.h> header file. */
+//#define HAVE_LINUX_REBOOT_H 1
+
+/* Define to 1 if you have the <linux/rtnetlink.h> header file. */
+//#define HAVE_LINUX_RTNETLINK_H 1
+
+/* Define to 1 if you have the `listxattr' function. */
+//#define HAVE_LISTXATTR 1
+
+/* Define to 1 if the system has the type `loff_t'. */
+#define HAVE_LOFF_T 1
+
+/* Define to 1 if you have the `log10l' function. */
+#define HAVE_LOG10L 1
+
+/* Define to 1 if you have the `log1pl' function. */
+#define HAVE_LOG1PL 1
+
+/* Define to 1 if you have the `logl' function. */
+#define HAVE_LOGL 1
+
+/* Define to 1 if you have the `matherr' function. */
+/* #undef HAVE_MATHERR */
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the `mincore' function. */
+//#define HAVE_MINCORE 1
+
+/* Define to 1 if you have the `mkdirat' function. */
+//#define HAVE_MKDIRAT 1
+
+/* Define to 1 if you have the `mknodat' function. */
+//#define HAVE_MKNODAT 1
+
+/* Define to 1 if you have the <netinet/icmp6.h> header file. */
+//#define HAVE_NETINET_ICMP6_H 1
+
+/* Define to 1 if you have the <netinet/if_ether.h> header file. */
+//#define HAVE_NETINET_IF_ETHER_H 1
+
+/* Define to 1 if you have the <netinet/in_syst.h> header file. */
+/* #undef HAVE_NETINET_IN_SYST_H */
+
+/* Define to 1 if you have the <netinet/ip.h> header file. */
+//#define HAVE_NETINET_IP_H 1
+
+/* Define to 1 if you have the <netinet/ip_mroute.h> header file. */
+/* #undef HAVE_NETINET_IP_MROUTE_H */
+
+/* Define to 1 if you have the <netpacket/packet.h> header file. */
+//#define HAVE_NETPACKET_PACKET_H 1
+
+/* Define to 1 if you have the <net/if_arp.h> header file. */
+//#define HAVE_NET_IF_ARP_H 1
+
+/* Define to 1 if you have the <net/if.h> header file. */
+//#define HAVE_NET_IF_H 1
+
+/* Define to 1 if you have the <net/route.h> header file. */
+//#define HAVE_NET_ROUTE_H 1
+
+/* Define to 1 if the system has the type `off64_t'. */
+#define HAVE_OFF64_T 1
+
+/* Define to 1 if you have the `open64' function. */
+#define HAVE_OPEN64 1
+
+/* Define to 1 if you have the `openat' function. */
+#define HAVE_OPENAT 1
+
+/* Define to 1 if you have the `pipe2' function. */
+//#define HAVE_PIPE2 1
+
+/* Define to 1 if you have the <port.h> header file. */
+/* #undef HAVE_PORT_H */
+
+/* Define to 1 if you have the `removexattr' function. */
+//#define HAVE_REMOVEXATTR 1
+
+/* Define to 1 if you have the `renameat' function. */
+//#define HAVE_RENAMEAT 1
+
+/* Define to 1 if you have the <sched.h> header file. */
+#define HAVE_SCHED_H 1
+
+/* Define to 1 if you have the <semaphore.h> header file. */
+#define HAVE_SEMAPHORE_H 1
+
+/* Define to 1 if you have the `sem_timedwait' function. */
+#define HAVE_SEM_TIMEDWAIT 1
+
+/* Define to 1 if you have the `setenv' function. */
+#define HAVE_SETENV 1
+
+/* Define to 1 if you have the `setxattr' function. */
+#define HAVE_SETXATTR 1
+
+/* Define to 1 if you have the `sinl' function. */
+#define HAVE_SINL 1
+
+/* Define to 1 if you have the `splice' function. */
+//#define HAVE_SPLICE 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the `strerror_r' function. */
+#define HAVE_STRERROR_R 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strsignal' function. */
+#define HAVE_STRSIGNAL 1
+
+/* Define to 1 if <math.h> defines struct exception */
+/* #undef HAVE_STRUCT_EXCEPTION */
+
+/* Define to 1 if the compiler provides the __sync_add_and_fetch function for
+ uint64 */
+#define HAVE_SYNC_ADD_AND_FETCH_8 1
+
+/* Define to 1 if the compiler provides the __sync_bool_compare_and_swap
+ function for uint32 */
+#define HAVE_SYNC_BOOL_COMPARE_AND_SWAP_4 1
+
+/* Define to 1 if the compiler provides the __sync_bool_compare_and_swap
+ function for uint64 */
+#define HAVE_SYNC_BOOL_COMPARE_AND_SWAP_8 1
+
+/* Define to 1 if the compiler provides the __sync_fetch_and_add function for
+ uint32 */
+#define HAVE_SYNC_FETCH_AND_ADD_4 1
+
+/* Define to 1 if you have the `sync_file_range' function. */
+#define HAVE_SYNC_FILE_RANGE 1
+
+/* Define to 1 if you have the <syscall.h> header file. */
+#define HAVE_SYSCALL_H 1
+
+/* Define to 1 if you have the <sys/epoll.h> header file. */
+//#define HAVE_SYS_EPOLL_H 1
+
+/* Define to 1 if you have the <sys/event.h> header file. */
+/* #undef HAVE_SYS_EVENT_H */
+
+/* Define to 1 if you have the <sys/file.h> header file. */
+//#define HAVE_SYS_FILE_H 1
+
+/* Define to 1 if you have the <sys/inotify.h> header file. */
+//#define HAVE_SYS_INOTIFY_H 1
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#define HAVE_SYS_MMAN_H 1
+
+/* Define to 1 if you have the <sys/mount.h> header file. */
+#define HAVE_SYS_MOUNT_H 1
+
+/* Define to 1 if you have the <sys/prctl.h> header file. */
+#define HAVE_SYS_PRCTL_H 1
+
+/* Define to 1 if you have the <sys/ptrace.h> header file. */
+#define HAVE_SYS_PTRACE_H 1
+
+/* Define to 1 if you have the <sys/select.h> header file. */
+#define HAVE_SYS_SELECT_H 1
+
+/* Define to 1 if you have the <sys/socket.h> header file. */
+#define HAVE_SYS_SOCKET_H 1
+
+/* Define to 1 if you have the <sys/statfs.h> header file. */
+#define HAVE_SYS_STATFS_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/syscall.h> header file. */
+#define HAVE_SYS_SYSCALL_H 1
+
+/* Define to 1 if you have the <sys/sysinfo.h> header file. */
+//#define HAVE_SYS_SYSINFO_H 1
+
+/* Define to 1 if you have the <sys/timex.h> header file. */
+//#define HAVE_SYS_TIMEX_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <sys/user.h> header file. */
+#define HAVE_SYS_USER_H 1
+
+/* Define to 1 if you have the <sys/utsname.h> header file. */
+#define HAVE_SYS_UTSNAME_H 1
+
+/* Define to 1 if you have the <sys/vfs.h> header file. */
+//#define HAVE_SYS_VFS_H 1
+
+/* Define to 1 if you have the `tanl' function. */
+#define HAVE_TANL 1
+
+/* Define to 1 if you have the `tee' function. */
+//#define HAVE_TEE 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the `unlinkat' function. */
+//#define HAVE_UNLINKAT 1
+
+/* Define to 1 if you have the `unsetenv' function. */
+#define HAVE_UNSETENV 1
+
+/* Define to 1 if you have the `unshare' function. */
+//#define HAVE_UNSHARE 1
+
+/* Define to 1 if you have the <ustat.h> header file and it works. */
+/* #undef HAVE_USTAT_H */
+
+/* Define to 1 if you have the `utimensat' function. */
+//#define HAVE_UTIMENSAT 1
+
+/* Define to 1 if you have the <utime.h> header file. */
+#define HAVE_UTIME_H 1
+
+/* Define to 1 if you have the `wait4' function. */
+#define HAVE_WAIT4 1
+
+/* Define if the linker support split stack adjustments */
+/* #undef LINKER_SUPPORTS_SPLIT_STACK */
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#define LT_OBJDIR ".libs/"
+
+/* Name of package */
+/* #undef PACKAGE */
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT ""
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "package-unused"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "package-unused version-unused"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "libgo"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "version-unused"
+
+/* Define if setcontext clobbers TLS variables */
+/* #undef SETCONTEXT_CLOBBERS_TLS */
+
+/* The size of `void *', as computed by sizeof. */
+#define SIZEOF_VOID_P 8
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define if we're to use libffi. */
+#define USE_LIBFFI 1
+
+/* Define if the compiler supports -fsplit-stack */
+//#define USING_SPLIT_STACK 1
+
+/* Version number of package */
+/* #undef VERSION */
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+# define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+/* # undef WORDS_BIGENDIAN */
+# endif
+#endif
+
+/* Define to `long int' if <sys/types.h> does not define. */
+/* #undef off_t */
--- /dev/null
+#define hashRandomBytes 128
+#define maxAlign 8
+#define hchanSize 96
+#define numBuckets 1024
+#define logSize 131072
+#define assoc 4
+#define maxCPUProfStack 64
+#define bucketCntBits 3
+#define bucketCnt 8
+#define maxKeySize 128
+#define maxValueSize 128
+#define dataOffset 8
+#define empty 0
+#define evacuatedEmpty 1
+#define evacuatedX 2
+#define evacuatedY 3
+#define minTopHash 4
+#define iterator 1
+#define oldIterator 2
+#define hashWriting 4
+#define sameSizeGrow 8
+#define noCheck 18446744073709551615
+#define maxZero 1024
+#define addrBits 48
+#define cntBits 19
+#define mutex_unlocked 0
+#define mutex_locked 1
+#define mutex_sleeping 2
+#define active_spin 4
+#define active_spin_cnt 30
+#define passive_spin 1
+#define memProfile 1
+#define blockProfile 2
+#define mutexProfile 3
+#define buckHashSize 179999
+#define maxStack 32
+#define pdReady 1
+#define pdWait 2
+#define pollBlockSize 4096
+#define freezeStopWait 2147483647
+#define forcePreemptNS 10000000
+#define tracebackCrash 1
+#define tracebackAll 2
+#define tracebackShift 2
+#define caseRecv 1
+#define caseSend 2
+#define caseDefault 3
+#define $sinkconst0 0
+#define selectSend 1
+#define selectRecv 2
+#define selectDefault 3
+#define semTabSize 251
+#define semaBlockProfile 1
+#define semaMutexProfile 2
+#define sigIdle 0
+#define sigReceiving 1
+#define sigSending 2
+#define smallSizeDiv 8
+#define smallSizeMax 1024
+#define largeSizeDiv 128
+#define tmpStringBufSize 32
+#define maxUint 18446744073709551615
+#define maxInt 9223372036854775807
+#define gcMarkWorkerDedicatedMode 0
+#define gcMarkWorkerFractionalMode 1
+#define gcMarkWorkerIdleMode 2
+#define traceEvNone 0
+#define traceEvBatch 1
+#define traceEvFrequency 2
+#define traceEvStack 3
+#define traceEvGomaxprocs 4
+#define traceEvProcStart 5
+#define traceEvProcStop 6
+#define traceEvGCStart 7
+#define traceEvGCDone 8
+#define traceEvGCScanStart 9
+#define traceEvGCScanDone 10
+#define traceEvGCSweepStart 11
+#define traceEvGCSweepDone 12
+#define traceEvGoCreate 13
+#define traceEvGoStart 14
+#define traceEvGoEnd 15
+#define traceEvGoStop 16
+#define traceEvGoSched 17
+#define traceEvGoPreempt 18
+#define traceEvGoSleep 19
+#define traceEvGoBlock 20
+#define traceEvGoUnblock 21
+#define traceEvGoBlockSend 22
+#define traceEvGoBlockRecv 23
+#define traceEvGoBlockSelect 24
+#define traceEvGoBlockSync 25
+#define traceEvGoBlockCond 26
+#define traceEvGoBlockNet 27
+#define traceEvGoSysCall 28
+#define traceEvGoSysExit 29
+#define traceEvGoSysBlock 30
+#define traceEvGoWaiting 31
+#define traceEvGoInSyscall 32
+#define traceEvHeapAlloc 33
+#define traceEvNextGC 34
+#define traceEvTimerGoroutine 35
+#define traceEvFutileWakeup 36
+#define traceEvString 37
+#define traceEvGoStartLocal 38
+#define traceEvGoUnblockLocal 39
+#define traceEvGoSysExitLocal 40
+#define traceEvGoStartLabel 41
+#define traceEvGoBlockGC 42
+#define traceEvCount 43
+#define traceTickDiv 64
+#define traceStackSize 128
+#define traceBytesPerNumber 10
+#define traceArgCountShift 6
+#define traceFutileWakeup 128
+#define kindBool 1
+#define kindInt 2
+#define kindInt8 3
+#define kindInt16 4
+#define kindInt32 5
+#define kindInt64 6
+#define kindUint 7
+#define kindUint8 8
+#define kindUint16 9
+#define kindUint32 10
+#define kindUint64 11
+#define kindUintptr 12
+#define kindFloat32 13
+#define kindFloat64 14
+#define kindComplex64 15
+#define kindComplex128 16
+#define kindArray 17
+#define kindChan 18
+#define kindFunc 19
+#define kindInterface 20
+#define kindMap 21
+#define kindPtr 22
+#define kindSlice 23
+#define kindString 24
+#define kindStruct 25
+#define kindUnsafePointer 26
+#define kindDirectIface 32
+#define kindGCProg 64
+#define kindNoPointers 128
+#define kindMask 31
+#define runeError 65533
+#define runeSelf 128
+#define maxRune 1114111
+#define surrogateMin 55296
+#define surrogateMax 57343
+#define t1 0
+#define tx 128
+#define t2 192
+#define t3 224
+#define t4 240
+#define t5 248
+#define maskx 63
+#define mask2 31
+#define mask3 15
+#define mask4 7
+#define rune1Max 127
+#define rune2Max 2047
+#define rune3Max 65535
+#define locb 128
+#define hicb 191
+
+struct sudog;
+
+struct waitq {
+ struct sudog* first;
+ struct sudog* last;
+};
+
+struct cpuprofEntry {
+ uintptr_t count;
+ int64_t depth;
+ uintptr_t stack[64];
+};
+
+struct TypeAssertionError {
+ String interfaceString;
+ String concreteString;
+ String assertedString;
+ String missingMethod;
+};
+
+struct errorCString {
+ uintptr_t cstr;
+};
+
+struct bmap {
+ uint8_t tophash[8];
+};
+
+struct hiter {
+ void* key;
+ void* value;
+ void* t;
+ void* h;
+ void* buckets;
+ struct bmap* bptr;
+ Slice* overflow[2];
+ uintptr_t startBucket;
+ uint8_t offset;
+ _Bool wrapped;
+ uint8_t B;
+ uint8_t i;
+ uintptr_t bucket;
+ uintptr_t checkBucket;
+};
+
+struct mlink;
+
+struct mcachelist {
+ struct mlink* list;
+ uint32_t nlist;
+};
+
+struct mspan;
+
+struct mcache {
+ int32_t next_sample;
+ uintptr_t local_cachealloc;
+ void* tiny;
+ uintptr_t tinysize;
+ struct mspan* alloc[67];
+ struct mcachelist free[67];
+ uintptr_t local_nlookup;
+ uintptr_t local_largefree;
+ uintptr_t local_nlargefree;
+ uintptr_t local_nsmallfree[67];
+};
+
+struct mtypes {
+ uint8_t compression;
+ uintptr_t data;
+};
+
+struct special {
+ struct special* next;
+ uint16_t offset;
+ uint8_t kind;
+};
+
+struct mlink {
+ struct mlink* next;
+};
+
+struct bucket {
+ struct bucket* next;
+ struct bucket* allnext;
+ int64_t typ;
+ uintptr_t hash;
+ uintptr_t size;
+ uintptr_t nstk;
+};
+
+struct memRecord {
+ uintptr_t allocs;
+ uintptr_t frees;
+ uintptr_t alloc_bytes;
+ uintptr_t free_bytes;
+ uintptr_t prev_allocs;
+ uintptr_t prev_frees;
+ uintptr_t prev_alloc_bytes;
+ uintptr_t prev_free_bytes;
+ uintptr_t recent_allocs;
+ uintptr_t recent_frees;
+ uintptr_t recent_alloc_bytes;
+ uintptr_t recent_free_bytes;
+};
+
+struct blockRecord {
+ int64_t count;
+ int64_t cycles;
+};
+
+struct StackRecord {
+ uintptr_t Stack0[32];
+};
+
+struct MemProfileRecord {
+ int64_t AllocBytes;
+ int64_t FreeBytes;
+ int64_t AllocObjects;
+ int64_t FreeObjects;
+ uintptr_t Stack0[32];
+};
+
+struct mstats {
+ uint64_t alloc;
+ uint64_t total_alloc;
+ uint64_t sys;
+ uint64_t nlookup;
+ uint64_t nmalloc;
+ uint64_t nfree;
+ uint64_t heap_alloc;
+ uint64_t heap_sys;
+ uint64_t heap_idle;
+ uint64_t heap_inuse;
+ uint64_t heap_released;
+ uint64_t heap_objects;
+ uint64_t stacks_inuse;
+ uint64_t stacks_sys;
+ uint64_t mspan_inuse;
+ uint64_t mspan_sys;
+ uint64_t mcache_inuse;
+ uint64_t mcache_sys;
+ uint64_t buckhash_sys;
+ uint64_t gc_sys;
+ uint64_t other_sys;
+ uint64_t next_gc;
+ uint64_t last_gc;
+ uint64_t pause_total_ns;
+ uint64_t pause_ns[256];
+ uint64_t pause_end[256];
+ uint32_t numgc;
+ uint32_t numforcedgc;
+ double gc_cpu_fraction;
+ _Bool enablegc;
+ _Bool debuggc;
+ struct {
+ uint32_t size;
+ uint64_t nmalloc;
+ uint64_t nfree;
+ } by_size[67];
+ uint64_t tinyallocs;
+ uint64_t gc_trigger;
+ uint64_t heap_live;
+ uint64_t heap_scan;
+ uint64_t heap_marked;
+};
+
+struct MemStats {
+ uint64_t Alloc;
+ uint64_t TotalAlloc;
+ uint64_t Sys;
+ uint64_t Lookups;
+ uint64_t Mallocs;
+ uint64_t Frees;
+ uint64_t HeapAlloc;
+ uint64_t HeapSys;
+ uint64_t HeapIdle;
+ uint64_t HeapInuse;
+ uint64_t HeapReleased;
+ uint64_t HeapObjects;
+ uint64_t StackInuse;
+ uint64_t StackSys;
+ uint64_t MSpanInuse;
+ uint64_t MSpanSys;
+ uint64_t MCacheInuse;
+ uint64_t MCacheSys;
+ uint64_t BuckHashSys;
+ uint64_t GCSys;
+ uint64_t OtherSys;
+ uint64_t NextGC;
+ uint64_t LastGC;
+ uint64_t PauseTotalNs;
+ uint64_t PauseNs[256];
+ uint64_t PauseEnd[256];
+ uint32_t NumGC;
+ uint32_t NumForcedGC;
+ double GCCPUFraction;
+ _Bool EnableGC;
+ _Bool DebugGC;
+ struct {
+ uint32_t Size;
+ uint64_t Mallocs;
+ uint64_t Frees;
+ } BySize[61];
+};
+
+struct mOS {
+ uint8_t unused;
+};
+
+struct randomOrder {
+ uint32_t count;
+ Slice coprimes;
+};
+
+struct randomEnum {
+ uint32_t i;
+ uint32_t count;
+ uint32_t pos;
+ uint32_t inc;
+};
+
+struct dbgVar {
+ String name;
+ int32_t* value;
+};
+
+struct debugVars {
+ int32_t allocfreetrace;
+ int32_t cgocheck;
+ int32_t efence;
+ int32_t gccheckmark;
+ int32_t gcpacertrace;
+ int32_t gcshrinkstackoff;
+ int32_t gcstackbarrieroff;
+ int32_t gcstackbarrierall;
+ int32_t gcrescanstacks;
+ int32_t gcstoptheworld;
+ int32_t gctrace;
+ int32_t invalidptr;
+ int32_t sbrk;
+ int32_t scavenge;
+ int32_t scheddetail;
+ int32_t schedtrace;
+ int32_t wbshadow;
+};
+
+struct mutex {
+ uintptr_t key;
+};
+
+struct note {
+ uintptr_t key;
+};
+
+struct funcval {
+ uintptr_t fn;
+};
+
+struct iface {
+ void* tab;
+ void* data;
+};
+
+struct eface {
+ void* _type;
+ void* data;
+};
+
+struct g;
+
+struct hchan;
+
+struct sudog {
+ struct g* g;
+ uint32_t* selectdone;
+ struct sudog* next;
+ struct sudog* prev;
+ void* elem;
+ int64_t acquiretime;
+ int64_t releasetime;
+ uint32_t ticket;
+ struct sudog* waitlink;
+ struct hchan* c;
+};
+
+struct gcstats {
+ uint64_t nhandoff;
+ uint64_t nhandoffcnt;
+ uint64_t nprocyield;
+ uint64_t nosyield;
+ uint64_t nsleep;
+};
+
+struct _panic;
+
+struct _defer;
+
+struct m;
+
+struct tracebackg;
+
+struct g {
+ struct _panic* _panic;
+ struct _defer* _defer;
+ struct m* m;
+ uintptr_t syscallsp;
+ uintptr_t syscallpc;
+ void* param;
+ uint32_t atomicstatus;
+ int64_t goid;
+ int64_t waitsince;
+ String waitreason;
+ uint64_t schedlink;
+ _Bool preempt;
+ _Bool paniconfault;
+ _Bool preemptscan;
+ _Bool gcscandone;
+ _Bool gcscanvalid;
+ _Bool throwsplit;
+ int8_t raceignore;
+ _Bool sysblocktraced;
+ int64_t sysexitticks;
+ uint64_t traceseq;
+ uint64_t tracelastp;
+ struct m* lockedm;
+ uint32_t sig;
+ Slice writebuf;
+ uintptr_t sigcode0;
+ uintptr_t sigcode1;
+ uintptr_t sigpc;
+ uintptr_t gopc;
+ uintptr_t startpc;
+ struct sudog* waiting;
+ int32_t gcRescan;
+ int64_t gcAssistBytes;
+ void* exception;
+ _Bool isforeign;
+ void* gcstack;
+ uintptr_t gcstacksize;
+ void* gcnextsegment;
+ void* gcnextsp;
+ void* gcinitialsp;
+ void* gcregs[122];
+ void* entry;
+ _Bool fromgogo;
+ _Bool issystem;
+ _Bool isbackground;
+ struct tracebackg* traceback;
+ void* context[122];
+ void* stackcontext[10];
+};
+
+struct p {
+ struct mutex lock;
+ int32_t id;
+ uint32_t status;
+ uint64_t link;
+ uint32_t schedtick;
+ uint32_t syscalltick;
+ uint64_t m;
+ struct mcache* mcache;
+ Slice deferpool;
+ struct _defer* deferpoolbuf[32];
+ uint64_t goidcache;
+ uint64_t goidcacheend;
+ uint32_t runqhead;
+ uint32_t runqtail;
+ uint64_t runq[256];
+ uint64_t runnext;
+ struct g* gfree;
+ int32_t gfreecnt;
+ Slice sudogcache;
+ struct sudog* sudogbuf[128];
+ uint64_t tracebuf;
+ int64_t gcAssistTime;
+ uint64_t gcBgMarkWorker;
+ int64_t gcMarkWorkerMode;
+ uint32_t runSafePointFn;
+ uint8_t pad[64];
+};
+
+struct schedt {
+ uint64_t goidgen;
+ uint64_t lastpoll;
+ struct mutex lock;
+ uint64_t midle;
+ int32_t nmidle;
+ int32_t nmidlelocked;
+ int32_t mcount;
+ int32_t maxmcount;
+ uint32_t ngsys;
+ uint64_t pidle;
+ uint32_t npidle;
+ uint32_t nmspinning;
+ uint64_t runqhead;
+ uint64_t runqtail;
+ int32_t runqsize;
+ struct mutex gflock;
+ struct g* gfree;
+ int32_t ngfree;
+ struct mutex sudoglock;
+ struct sudog* sudogcache;
+ struct mutex deferlock;
+ struct _defer* deferpool;
+ uint32_t gcwaiting;
+ int32_t stopwait;
+ struct note stopnote;
+ uint32_t sysmonwait;
+ struct note sysmonnote;
+ FuncVal* safePointFn;
+ int32_t safePointWait;
+ struct note safePointNote;
+ int32_t profilehz;
+ int64_t procresizetime;
+ int64_t totaltime;
+};
+
+struct lfnode {
+ uint64_t next;
+ uintptr_t pushcnt;
+};
+
+struct forcegcstate {
+ struct mutex lock;
+ struct g* g;
+ uint32_t idle;
+};
+
+struct _defer {
+ struct _defer* link;
+ _Bool* frame;
+ struct _panic* _panic;
+ uintptr_t pfn;
+ void* arg;
+ uintptr_t retaddr;
+ _Bool makefunccanrecover;
+ _Bool special;
+};
+
+struct _panic {
+ struct _panic* link;
+ Eface arg;
+ _Bool recovered;
+ _Bool isforeign;
+};
+
+struct sigset {
+ uint64_t __val[16];
+};
+
+struct scase {
+ void* elem;
+ struct hchan* c;
+ uintptr_t pc;
+ uint16_t kind;
+ uint16_t index;
+ _Bool* receivedp;
+ int64_t releasetime;
+};
+
+struct runtimeSelect {
+ int64_t dir;
+ void* typ;
+ struct hchan* ch;
+ void* val;
+};
+
+struct semaRoot {
+ struct mutex lock;
+ struct sudog* head;
+ struct sudog* tail;
+ uint32_t nwait;
+};
+
+struct notifyList {
+ uint32_t wait;
+ uint32_t notify;
+ struct mutex lock;
+ struct sudog* head;
+ struct sudog* tail;
+};
+
+struct sigTabT {
+ int32_t flags;
+ String name;
+};
+
+struct _siginfo_t;
+
+struct sigctxt {
+ struct _siginfo_t* info;
+ void* ctxt;
+};
+
+struct divMagic {
+ uint8_t shift;
+ uint8_t shift2;
+ uint16_t mul;
+ uint16_t baseMask;
+};
+
+struct slice {
+ void* array;
+ int64_t len;
+ int64_t cap;
+};
+
+struct stringStruct {
+ void* str;
+ int64_t len;
+};
+
+struct stringStructDWARF {
+ uint8_t* str;
+ int64_t len;
+};
+
+struct Frames {
+ Slice callers;
+ uintptr_t last;
+ int64_t lastCount;
+};
+
+struct Func;
+
+struct Frame {
+ uintptr_t PC;
+ struct Func* Func;
+ String Function;
+ String File;
+ int64_t Line;
+ uintptr_t Entry;
+};
+
+struct Func {
+ String name;
+ uintptr_t entry;
+};
+
+struct timer {
+ int64_t i;
+ int64_t when;
+ int64_t period;
+ FuncVal* f;
+ Eface arg;
+ uintptr_t seq;
+};
+
+struct traceFrame {
+ uint64_t funcID;
+ uint64_t fileID;
+ uint64_t line;
+};
+
+struct traceAlloc {
+ uint64_t head;
+ uintptr_t off;
+};
+
+struct traceAllocBlock {
+ uint64_t next;
+ uint8_t data[65528];
+};
+
+struct location {
+ uintptr_t pc;
+ String filename;
+ String function;
+ int64_t lineno;
+};
+
+struct method {
+ String* name;
+ String* pkgPath;
+ void* mtyp;
+ void* typ;
+ void* tfn;
+};
+
+struct uncommontype {
+ String* name;
+ String* pkgPath;
+ Slice methods;
+};
+
+struct imethod {
+ String* name;
+ String* pkgPath;
+ void* typ;
+};
+
+struct structfield {
+ String* name;
+ String* pkgPath;
+ void* typ;
+ String* tag;
+ uintptr_t offset;
+};
+
+struct timeval {
+ int64_t tv_sec;
+ int64_t tv_usec;
+};
+
+struct timespec {
+ int64_t tv_sec;
+ int64_t tv_nsec;
+};
+
+struct epollevent {
+ uint32_t events;
+ uint8_t data[8];
+};
+
+struct semt {
+ int8_t __size[32];
+ int64_t Godump_0_align[0];
+};
+
+struct hchan {
+ uint64_t qcount;
+ uint64_t dataqsiz;
+ void* buf;
+ uint16_t elemsize;
+ uint32_t closed;
+ void* elemtype;
+ uint64_t sendx;
+ uint64_t recvx;
+ struct waitq recvq;
+ struct waitq sendq;
+ struct mutex lock;
+};
+
+struct cpuProfile {
+ _Bool on;
+ struct note wait;
+ uintptr_t count;
+ uintptr_t evicts;
+ uintptr_t lost;
+ struct {
+ struct cpuprofEntry entry[4];
+ } hash[1024];
+ uintptr_t log[65536][2];
+ int64_t nlog;
+ int32_t toggle;
+ uint32_t handoff;
+ uint32_t wtoggle;
+ _Bool wholding;
+ _Bool flushing;
+ _Bool eodSent;
+};
+
+struct mspan {
+ struct mspan* next;
+ struct mspan* prev;
+ uintptr_t start;
+ uintptr_t npages;
+ struct mlink* freelist;
+ uint32_t sweepgen;
+ uint16_t ref;
+ uint8_t sizeclass;
+ _Bool incache;
+ uint8_t state;
+ uint8_t needzero;
+ uintptr_t elemsize;
+ int64_t unusedsince;
+ uintptr_t npreleased;
+ uintptr_t limit;
+ struct mtypes types;
+ struct mutex speciallock;
+ struct special* specials;
+ struct mlink* freebuf;
+};
+
+struct pollDesc {
+ struct pollDesc* link;
+ struct mutex lock;
+ uintptr_t fd;
+ _Bool closing;
+ uintptr_t seq;
+ uintptr_t rg;
+ struct timer rt;
+ int64_t rd;
+ uintptr_t wg;
+ struct timer wt;
+ int64_t wd;
+ uint32_t user;
+};
+
+struct pollCache {
+ struct mutex lock;
+ struct pollDesc* first;
+};
+
+struct m {
+ struct g* g0;
+ uint64_t procid;
+ struct g* gsignal;
+ struct sigset sigmask;
+ uintptr_t mstartfn;
+ struct g* curg;
+ uint64_t caughtsig;
+ uint64_t p;
+ uint64_t nextp;
+ int32_t id;
+ int32_t mallocing;
+ int32_t throwing;
+ String preemptoff;
+ int32_t locks;
+ int32_t softfloat;
+ int32_t dying;
+ int32_t profilehz;
+ int32_t helpgc;
+ _Bool spinning;
+ _Bool blocked;
+ _Bool inwb;
+ _Bool newSigstack;
+ int8_t printlock;
+ uint32_t fastrand;
+ uint64_t ncgocall;
+ int32_t ncgo;
+ struct note park;
+ struct m* alllink;
+ uint64_t schedlink;
+ struct mcache* mcache;
+ struct g* lockedg;
+ struct location createstack[32];
+ uint32_t locked;
+ uintptr_t nextwaitm;
+ struct gcstats gcstats;
+ _Bool needextram;
+ uint8_t traceback;
+ void* waitunlockf;
+ void* waitlock;
+ uint8_t waittraceev;
+ int64_t waittraceskip;
+ _Bool startingtrace;
+ uint32_t syscalltick;
+ struct mOS mos;
+ void* gsignalstack;
+ uintptr_t gsignalstacksize;
+ _Bool dropextram;
+ int32_t gcing;
+};
+
+struct hselect {
+ uint16_t tcase;
+ uint16_t ncase;
+ uint16_t* pollorder;
+ uint16_t* lockorder;
+ struct scase scase[1];
+};
+
+struct traceBufHeader {
+ uint64_t link;
+ uint64_t lastTicks;
+ int64_t pos;
+ struct location stk[128];
+};
+
+struct traceStackTable {
+ struct mutex lock;
+ uint32_t seq;
+ struct traceAlloc mem;
+ uint64_t tab[8192];
+};
+
+struct traceStack {
+ uint64_t link;
+ uintptr_t hash;
+ uint32_t id;
+ int64_t n;
+ struct location stk[0];
+};
+
+struct tracebackg {
+ struct g* gp;
+ struct location locbuf[100];
+ int64_t c;
+};
+#define _Gidle 0
+#define _Grunnable 1
+#define _Grunning 2
+#define _Gsyscall 3
+#define _Gwaiting 4
+#define _Gmoribund_unused 5
+#define _Gdead 6
+#define _Genqueue_unused 7
+#define _Gcopystack 8
+#define _Gscan 4096
+#define _Gscanrunnable 4097
+#define _Gscanrunning 4098
+#define _Gscansyscall 4099
+#define _Gscanwaiting 4100
+#define _Pidle 0
+#define _Prunning 1
+#define _Psyscall 2
+#define _Pgcstop 3
+#define _Pdead 4
+#define _PageShift 13
+#define _MaxGomaxprocs 256
+#define _MaxSmallSize 32768
+#define _MaxMem 549755813887
+#define _MaxGcproc 32
+#define _LockExternal 1
+#define _LockInternal 2
+#define _SigNotify 1
+#define _SigKill 2
+#define _SigThrow 4
+#define _SigPanic 8
+#define _SigDefault 16
+#define _SigHandling 32
+#define _SigGoExit 64
+#define _SigSetStack 128
+#define _SigUnblock 256
+#define _TraceRuntimeFrames 1
+#define _TraceTrap 2
+#define _TraceJumpStack 4
+#define _TracebackMaxFrames 100
+#define _MHeapMap_TotalBits 39
+#define _NumSizeClasses 67