[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT/GCC PATCH 03/14] Port libbacktrace library
From: Charalampos Mainas <charalampos.mainas@xxxxxxxxx> This port also adds the generated config.h and backtrace-supported.h headers. Another option would have been to generate them during the build. Signed-off-by: Charalampos Mainas <charalampos.mainas@xxxxxxxxx> Signed-off-by: Costin Lupu <costin.lupu@xxxxxxxxx> --- Config.uk | 7 ++ Makefile.uk | 29 +++++ libbacktrace/exportsyms.uk | 6 + libbacktrace/include/backtrace-supported.h | 66 ++++++++++ libbacktrace/include/config.h | 135 +++++++++++++++++++++ 5 files changed, 243 insertions(+) create mode 100644 libbacktrace/exportsyms.uk create mode 100644 libbacktrace/include/backtrace-supported.h create mode 100644 libbacktrace/include/config.h diff --git a/Config.uk b/Config.uk index 23ab493..4fc1311 100644 --- a/Config.uk +++ b/Config.uk @@ -7,4 +7,11 @@ menuconfig LIBGCC select LIBPTHREAD_EMBEDDED if LIBGCC + +config LIBBACKTRACE + bool "libbacktrace library" + default n +if LIBBACKTRACE +endif + endif diff --git a/Makefile.uk b/Makefile.uk index 225aba4..49b6069 100644 --- a/Makefile.uk +++ b/Makefile.uk @@ -40,6 +40,7 @@ # Library registration ################################################################################ $(eval $(call addlib_s,libgcc,$(CONFIG_LIBGCC))) +$(eval $(call addlib_s,libbacktrace,$(CONFIG_LIBBACKTRACE))) ################################################################################ # Original sources @@ -55,9 +56,37 @@ $(eval $(call patch,libgcc,$(LIBGCC_PATCHDIR),$(LIBGCC_SUBDIR))) # Helpers ################################################################################ LIBGCC_EXTRACTED = $(LIBGCC_ORIGIN)/gcc-$(LIBGCC_VERSION) +LIBBACKTRACE_EXTRACTED = $(LIBGCC_EXTRACTED)/libbacktrace ################################################################################ # Library includes ################################################################################ CINCLUDES-$(CONFIG_LIBGCC) += -I$(LIBGCC_BASE)/include CXXINCLUDES-$(CONFIG_LIBGCC) += -I$(LIBGCC_BASE)/include + +################################################################################ +# libbacktrace code +################################################################################ +LIBBACKTRACE_CINCLUDES-y = -I$(LIBGCC_BASE)/libbacktrace/include \ + -I$(LIBGCC_EXTRACTED)/include -I$(LIBBACKTRACE_EXTRACTED) + +LIBBACKTRACE_CFLAGS-y += -DHAVE_CONFIG_H \ + -funwind-tables \ + -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes \ + -Wold-style-definition -Wmissing-format-attribute -Wcast-qual + +LIBBACKTRACE_SRCS-y += $(LIBBACKTRACE_EXTRACTED)/atomic.c +LIBBACKTRACE_SRCS-y += $(LIBBACKTRACE_EXTRACTED)/dwarf.c +LIBBACKTRACE_SRCS-y += $(LIBBACKTRACE_EXTRACTED)/fileline.c +LIBBACKTRACE_SRCS-y += $(LIBBACKTRACE_EXTRACTED)/posix.c +LIBBACKTRACE_SRCS-y += $(LIBBACKTRACE_EXTRACTED)/print.c +LIBBACKTRACE_SRCS-y += $(LIBBACKTRACE_EXTRACTED)/sort.c +LIBBACKTRACE_SRCS-y += $(LIBBACKTRACE_EXTRACTED)/state.c +LIBBACKTRACE_SRCS-y += $(LIBBACKTRACE_EXTRACTED)/backtrace.c +LIBBACKTRACE_SRCS-y += $(LIBBACKTRACE_EXTRACTED)/simple.c +LIBBACKTRACE_SRCS-y += $(LIBBACKTRACE_EXTRACTED)/elf.c +LIBBACKTRACE_SRCS-y += $(LIBBACKTRACE_EXTRACTED)/mmapio.c +LIBBACKTRACE_SRCS-y += $(LIBBACKTRACE_EXTRACTED)/mmap.c + +LIBBACKTRACE_EXPORTS = $(LIBGCC_BASE)/libbacktrace/exportsyms.uk + diff --git a/libbacktrace/exportsyms.uk b/libbacktrace/exportsyms.uk new file mode 100644 index 0000000..96f3e86 --- /dev/null +++ b/libbacktrace/exportsyms.uk @@ -0,0 +1,6 @@ +backtrace_create_state +backtrace_full +backtrace_pcinfo +backtrace_print +backtrace_simple +backtrace_syminfo diff --git a/libbacktrace/include/backtrace-supported.h b/libbacktrace/include/backtrace-supported.h new file mode 100644 index 0000000..c03a98d --- /dev/null +++ b/libbacktrace/include/backtrace-supported.h @@ -0,0 +1,66 @@ +/* backtrace-supported.h.in -- Whether stack backtrace is supported. + Copyright (C) 2012-2017 Free Software Foundation, Inc. + Written by Ian Lance Taylor, Google. + +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) The name of the author may not be used to + endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. */ + +/* The file backtrace-supported.h.in is used by configure to generate + the file backtrace-supported.h. The file backtrace-supported.h may + be #include'd to see whether the backtrace library will be able to + get a backtrace and produce symbolic information. */ + + +/* BACKTRACE_SUPPORTED will be #define'd as 1 if the backtrace library + should work, 0 if it will not. Libraries may #include this to make + other arrangements. */ + +#define BACKTRACE_SUPPORTED 1 + +/* BACKTRACE_USES_MALLOC will be #define'd as 1 if the backtrace + library will call malloc as it works, 0 if it will call mmap + instead. This may be used to determine whether it is safe to call + the backtrace functions from a signal handler. In general this + only applies to calls like backtrace and backtrace_pcinfo. It does + not apply to backtrace_simple, which never calls malloc. It does + not apply to backtrace_print, which always calls fprintf and + therefore malloc. */ + +#define BACKTRACE_USES_MALLOC 0 + +/* BACKTRACE_SUPPORTS_THREADS will be #define'd as 1 if the backtrace + library is configured with threading support, 0 if not. If this is + 0, the threaded parameter to backtrace_create_state must be passed + as 0. */ + +#define BACKTRACE_SUPPORTS_THREADS 1 + +/* BACKTRACE_SUPPORTS_DATA will be #defined'd as 1 if the backtrace_syminfo + will work for variables. It will always work for functions. */ + +#define BACKTRACE_SUPPORTS_DATA 1 diff --git a/libbacktrace/include/config.h b/libbacktrace/include/config.h new file mode 100644 index 0000000..5086f4d --- /dev/null +++ b/libbacktrace/include/config.h @@ -0,0 +1,135 @@ +/* config.h. Generated from config.h.in by configure. */ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* ELF size: 32 or 64 */ +#define BACKTRACE_ELF_SIZE 64 + +/* Define to 1 if you have the __atomic functions */ +#define HAVE_ATOMIC_FUNCTIONS 1 + +/* Define to 1 if you have the declaration of `strnlen', and to 0 if you + don't. */ +#define HAVE_DECL_STRNLEN 1 + +/* Define to 1 if you have the <dlfcn.h> header file. */ +#define HAVE_DLFCN_H 1 + +/* Define if dl_iterate_phdr is available. */ +#define HAVE_DL_ITERATE_PHDR 1 + +/* Define to 1 if you have the fcntl function */ +#define HAVE_FCNTL 1 + +/* Define if getexecname is available. */ +/* #undef HAVE_GETEXECNAME */ + +/* Define if _Unwind_GetIPInfo is available. */ +#define HAVE_GETIPINFO 1 + +/* Define to 1 if you have the <inttypes.h> header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the <link.h> header file. */ +#define HAVE_LINK_H 1 + +/* Define to 1 if you have the <memory.h> header file. */ +#define HAVE_MEMORY_H 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 <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 __sync functions */ +#define HAVE_SYNC_FUNCTIONS 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/stat.h> header file. */ +#define HAVE_SYS_STAT_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 <unistd.h> header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#define LT_OBJDIR ".libs/" + +/* 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 "libbacktrace" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "version-unused" + +/* The size of `char', as computed by sizeof. */ +/* #undef SIZEOF_CHAR */ + +/* The size of `int', as computed by sizeof. */ +/* #undef SIZEOF_INT */ + +/* The size of `long', as computed by sizeof. */ +/* #undef SIZEOF_LONG */ + +/* The size of `short', as computed by sizeof. */ +/* #undef SIZEOF_SHORT */ + +/* The size of `void *', as computed by sizeof. */ +/* #undef SIZEOF_VOID_P */ + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif + + +/* Define to 1 if on MINIX. */ +/* #undef _MINIX */ + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +/* #undef _POSIX_SOURCE */ -- 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 |