[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT/GCC PATCH 05/14] libgo: Introduce library port
From: Charalampos Mainas <charalampos.mainas@xxxxxxxxx> This port also adds the generated config.h and runtime.inc headers. Another option would have been to generate them during the build. The mm_malloc.h is just a mock header needed by the build. Signed-off-by: Charalampos Mainas <charalampos.mainas@xxxxxxxxx> Signed-off-by: Costin Lupu <costin.lupu@xxxxxxxxx> --- Config.uk | 10 + Makefile.uk | 97 +++ libgo/generated/include/config.h | 415 ++++++++++++ libgo/generated/include/runtime.inc | 988 ++++++++++++++++++++++++++++ libgo/include/mm_malloc.h | 0 5 files changed, 1510 insertions(+) create mode 100644 libgo/generated/include/config.h create mode 100644 libgo/generated/include/runtime.inc create mode 100644 libgo/include/mm_malloc.h diff --git a/Config.uk b/Config.uk index ace072b..edb6a00 100644 --- a/Config.uk +++ b/Config.uk @@ -8,6 +8,16 @@ menuconfig LIBGCC if LIBGCC +config LIBGO + bool "libgo - Runtime support library for the Go programming language" + default n + select LIBLWIP + select LIBUCONTEXT + select LIBBACKTRACE + select LIBFFI +if LIBGO +endif + config LIBBACKTRACE bool "libbacktrace library" default n diff --git a/Makefile.uk b/Makefile.uk index 11f5a23..59024ae 100644 --- a/Makefile.uk +++ b/Makefile.uk @@ -116,3 +116,100 @@ LIBFFI_SRCS-$(CONFIG_ARCH_X86_64) += $(LIBFFI_EXTRACTED)/src/x86/unix64.S LIBFFI_EXPORTS = $(LIBGCC_BASE)/libffi/exportsyms.uk +################################################################################ +# libgo code +################################################################################ +LIBGO_COMMON_INCLUDES-y = -I$(LIBGCC_BASE)/libgo/include -I$(LIBGCC_BASE)/libgo/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) + +LIBGO_CFLAGS-y += -DHAVE_CONFIG_H -D_INCLUDE_MALLOC_H_ \ + -fexceptions -fnon-call-exceptions -fplan9-extensions -fsplit-stack \ + -Wall -Wextra -Wwrite-strings -Wcast-qual \ + -minline-all-stringops \ + -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 \ + -fno-split-stack +LIBGO_CFLAGS-y += -Wno-cast-qual -Wno-unused-value + +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)/.origin + $(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 + diff --git a/libgo/generated/include/config.h b/libgo/generated/include/config.h new file mode 100644 index 0000000..7c473f2 --- /dev/null +++ b/libgo/generated/include/config.h @@ -0,0 +1,415 @@ +/* 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 */ diff --git a/libgo/generated/include/runtime.inc b/libgo/generated/include/runtime.inc new file mode 100644 index 0000000..9866e41 --- /dev/null +++ b/libgo/generated/include/runtime.inc @@ -0,0 +1,988 @@ +#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 diff --git a/libgo/include/mm_malloc.h b/libgo/include/mm_malloc.h new file mode 100644 index 0000000..e69de29 -- 2.17.1 _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |