diff options
Diffstat (limited to 'lib/libgcc_s')
-rw-r--r-- | lib/libgcc_s/Makefile | 55 | ||||
-rw-r--r-- | lib/libgcc_s/Makefile.depend | 14 | ||||
-rw-r--r-- | lib/libgcc_s/Symbol.map | 235 | ||||
-rw-r--r-- | lib/libgcc_s/SymbolDefault.map | 6 | ||||
-rw-r--r-- | lib/libgcc_s/Versions.def | 36 | ||||
-rw-r--r-- | lib/libgcc_s/arm/Symbol.map | 85 |
6 files changed, 431 insertions, 0 deletions
diff --git a/lib/libgcc_s/Makefile b/lib/libgcc_s/Makefile new file mode 100644 index 000000000000..992fc930ee9f --- /dev/null +++ b/lib/libgcc_s/Makefile @@ -0,0 +1,55 @@ +PACKAGE= clibs +SHLIB_NAME= libgcc_s.so.1 +SHLIBDIR?= /lib + +# Enabling UBSan triggers "undefined reference to vtable for __cxxabiv1::__function_type_info" +MK_UBSAN:= no + +.include <bsd.opts.mk> + +MK_SSP= no +WARNS?= 2 + +LDFLAGS+= -nodefaultlibs +LIBADD+= c + +VERSION_DEF= ${.CURDIR}/Versions.def +SYMBOL_MAPS= ${.CURDIR}/Symbol.map +# Export ARM AEABI unwind routines needed by libc and libthr. +.if exists(${.CURDIR}/${MACHINE_CPUARCH}/Symbol.map) +SYMBOL_MAPS+= ${.CURDIR}/${MACHINE_CPUARCH}/Symbol.map +.else +SYMBOL_MAPS+= ${.CURDIR}/SymbolDefault.map +.endif + +.include "../libcompiler_rt/Makefile.inc" +.include "../libgcc_eh/Makefile.inc" + +# gcc has incompatible internal declarations for __divtc3 and __multc3, but has +# no option to silence its warning, so make warnings non-fatal. +MK_WERROR.gcc= no + +LIBCSRCDIR= ${SRCTOP}/lib/libc +LIBMSRCDIR= ${SRCTOP}/lib/msun/src +CFLAGS+= -I${LIBCSRCDIR}/include -I${LIBCSRCDIR}/${MACHINE_CPUARCH} +CFLAGS+= -I${LIBMSRCDIR} +.PATH: ${LIBMSRCDIR} +SRCS+= s_fabs.c +SRCS+= s_fabsf.c +SRCS+= s_fabsl.c +SRCS+= s_fmax.c +SRCS+= s_fmaxf.c +SRCS+= s_logb.c +SRCS+= s_logbf.c +SRCS+= s_scalbn.c +SRCS+= s_scalbnf.c + +# Don't include long double routines on architectures where long double +# is the same size as double. +.if ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "powerpc" +SRCS+= s_fmaxl.c +SRCS+= s_logbl.c +SRCS+= s_scalbnl.c +.endif + +.include <bsd.lib.mk> diff --git a/lib/libgcc_s/Makefile.depend b/lib/libgcc_s/Makefile.depend new file mode 100644 index 000000000000..77f8f90c31c3 --- /dev/null +++ b/lib/libgcc_s/Makefile.depend @@ -0,0 +1,14 @@ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + + +.include <dirdeps.mk> + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif diff --git a/lib/libgcc_s/Symbol.map b/lib/libgcc_s/Symbol.map new file mode 100644 index 000000000000..e8f7e824adaf --- /dev/null +++ b/lib/libgcc_s/Symbol.map @@ -0,0 +1,235 @@ +/* + */ + +#if defined(__LP64__) || defined(__SIZEOF_INT128__) +#define CRT_HAS_128BIT +#endif + +GCC_3.0 { + __absvdi2; + __absvsi2; + __addvdi3; + __addvsi3; + __ashldi3; + __ashrdi3; + __clear_cache; + __cmpdi2; +#ifndef __arm__ + __deregister_frame; +#if !defined(__aarch64__) && !defined(__riscv) + __deregister_frame_info; + __deregister_frame_info_bases; +#endif +#endif + __divdi3; + __ffsdi2; + __fixdfdi; + __fixsfdi; + __fixunsdfdi; +#ifndef __arm__ + __fixunsdfsi; +#endif + __fixunssfdi; +#ifndef __arm__ + __fixunssfsi; +#endif +#if defined(__amd64__) || defined(__i386__) + __fixunsxfdi; + __fixunsxfsi; + __fixxfdi; +#endif + __floatdidf; + __floatdisf; +#if defined(__amd64__) || defined(__i386__) + __floatdixf; +#endif + __lshrdi3; + __moddi3; + __muldi3; + __mulvdi3; + __mulvsi3; + __negdi2; + __negvdi2; + __negvsi2; +#ifndef __arm__ + __register_frame; +#if !defined(__aarch64__) && !defined(__riscv) + __register_frame_info; + __register_frame_info_bases; + __register_frame_info_table; + __register_frame_info_table_bases; + __register_frame_table; +#endif +#endif + __subvdi3; + __subvsi3; + __ucmpdi2; + __udivdi3; + __udivmoddi4; + __umoddi3; + _Unwind_DeleteException; + _Unwind_Find_FDE; + _Unwind_ForcedUnwind; + _Unwind_GetDataRelBase; + _Unwind_GetGR; + _Unwind_GetIP; + _Unwind_GetLanguageSpecificData; + _Unwind_GetRegionStart; + _Unwind_GetTextRelBase; + _Unwind_RaiseException; + _Unwind_Resume; + _Unwind_SetGR; + _Unwind_SetIP; + +#ifdef CRT_HAS_128BIT + __ashlti3; + __ashrti3; + __cmpti2; + __divti3; + __ffsti2; + __fixdfti; + __fixsfti; + __fixunsdfti; + __fixunssfti; + __floattidf; + __floattisf; + __lshrti3; + __modti3; + __multi3; + __negti2; + __ucmpti2; + __udivmodti4; + __udivti3; + __umodti3; +#ifdef __amd64__ + __fixunsxfti; + __fixxfti; + __floattixf; +#endif +#endif +}; + +GCC_3.3 { + _Unwind_FindEnclosingFunction; + _Unwind_GetCFA; + _Unwind_Resume_or_Rethrow; +}; + +GCC_3.3.1 { + __gcc_personality_v0; +}; + +GCC_3.4 { + __clzdi2; + __clzsi2; + __ctzdi2; + __ctzsi2; + __paritydi2; + __paritysi2; + __popcountdi2; + __popcountsi2; + +#ifdef CRT_HAS_128BIT + __clzti2; + __ctzti2; + __parityti2; + __popcountti2; +#endif +}; + +GCC_3.4.2 { + __enable_execute_stack; +}; + +GCC_3.4.4 { +#ifdef CRT_HAS_128BIT + __absvti2; + __addvti3; + __mulvti3; + __negvti2; + __subvti3; +#endif +}; + +GCC_4.0.0 { + __divdc3; + __divsc3; +#if defined(__amd64__) || defined(__i386__) + __divxc3; +#endif + __muldc3; + __mulsc3; +#if defined(__amd64__) || defined(__i386__) + __mulxc3; +#endif + __powidf2; + __powisf2; +#if defined(__amd64__) || defined(__i386__) + __powixf2; +#endif +}; + +GCC_4.2.0 { + __floatundidf; + __floatundisf; +#if defined(__amd64__) || defined(__i386__) + __floatundixf; +#endif + _Unwind_GetIPInfo; + +#ifdef CRT_HAS_128BIT + __floatuntidf; + __floatuntisf; +#ifdef __amd64__ + __floatuntixf; +#endif +#endif +}; + +GCC_4.3.0 { + __bswapdi2; + __bswapsi2; +}; + +GCC_4.6.0 { +#if defined(__aarch64__) || defined(__riscv) + __addtf3; + __cmptf2; + __divtf3; + __eqtf2; + __extenddftf2; + __extendsftf2; + __fixtfdi; + __fixtfsi; + __fixtfti; + __fixunstfdi; + __fixunstfsi; + __fixunstfti; + __floatditf; + __floatsitf; + __floattitf; + __floatunditf; + __floatunsitf; + __floatuntitf; + __getf2; + __gttf2; + __letf2; + __lttf2; + __multf3; + __netf2; + __subtf3; + __trunctfdf2; + __trunctfsf2; + __unordtf2; +#endif +#if defined(__amd64__) + __extendxftf2; + __trunctfxf2; +#endif +}; + +GCC_7.0.0 { +#ifdef __i386__ + __divmoddi4; +#endif +}; diff --git a/lib/libgcc_s/SymbolDefault.map b/lib/libgcc_s/SymbolDefault.map new file mode 100644 index 000000000000..8563b26efa18 --- /dev/null +++ b/lib/libgcc_s/SymbolDefault.map @@ -0,0 +1,6 @@ +/* + */ +/* _Unwind_Backtrace should be exported with different version on ARM */ +GCC_3.3 { + _Unwind_Backtrace; +}; diff --git a/lib/libgcc_s/Versions.def b/lib/libgcc_s/Versions.def new file mode 100644 index 000000000000..526387e055df --- /dev/null +++ b/lib/libgcc_s/Versions.def @@ -0,0 +1,36 @@ + +GCC_3.0 { +}; + +GCC_3.3 { +} GCC_3.0; + +GCC_3.3.1 { +} GCC_3.3; + +GCC_3.4 { +} GCC_3.3.1; + +GCC_3.4.2 { +} GCC_3.4; + +GCC_3.4.4 { +} GCC_3.4.2; + +GCC_3.5 { +} GCC_3.4.4; + +GCC_4.0.0 { +} GCC_3.5; + +GCC_4.2.0 { +} GCC_4.0.0; + +GCC_4.3.0 { +} GCC_4.2.0; + +GCC_4.6.0 { +} GCC_4.3.0; + +GCC_7.0.0 { +} GCC_4.6.0; diff --git a/lib/libgcc_s/arm/Symbol.map b/lib/libgcc_s/arm/Symbol.map new file mode 100644 index 000000000000..ea0189eabaa0 --- /dev/null +++ b/lib/libgcc_s/arm/Symbol.map @@ -0,0 +1,85 @@ +/* + */ + +GCC_3.5 { + __aeabi_cdcmple; + __aeabi_cdrcmple; + __aeabi_cfcmpeq; + __aeabi_cfcmple; + __aeabi_cfrcmple; + __aeabi_d2f; + __aeabi_d2h; +/* __aeabi_d2h_alt; */ + __aeabi_d2iz; + __aeabi_d2lz; + __aeabi_d2uiz; + __aeabi_d2ulz; + __aeabi_dadd; + __aeabi_dcmpeq; + __aeabi_dcmpge; + __aeabi_dcmpgt; + __aeabi_dcmple; + __aeabi_dcmplt; + __aeabi_dcmpun; + __aeabi_ddiv; + __aeabi_dmul; + __aeabi_dneg; + __aeabi_drsub; + __aeabi_dsub; + __aeabi_f2d; + __aeabi_f2h; +/* __aeabi_f2h_alt; */ + __aeabi_f2iz; + __aeabi_f2lz; + __aeabi_f2uiz; + __aeabi_f2ulz; + __aeabi_fadd; + __aeabi_fcmpeq; + __aeabi_fcmpge; + __aeabi_fcmpgt; + __aeabi_fcmple; + __aeabi_fcmplt; + __aeabi_fcmpun; + __aeabi_fdiv; + __aeabi_fmul; + __aeabi_fneg; + __aeabi_frsub; + __aeabi_fsub; + __aeabi_h2f; +/* __aeabi_h2f_alt; */ + __aeabi_i2d; + __aeabi_i2f; + __aeabi_idiv; + __aeabi_idiv0; + __aeabi_idivmod; + __aeabi_l2d; + __aeabi_l2f; + __aeabi_lasr; + __aeabi_lcmp; + __aeabi_ldiv0; + __aeabi_ldivmod; + __aeabi_llsl; + __aeabi_llsr; + __aeabi_lmul; + __aeabi_ui2d; + __aeabi_ui2f; + __aeabi_uidiv; + __aeabi_uidivmod; + __aeabi_ul2d; + __aeabi_ul2f; + __aeabi_ulcmp; + __aeabi_uldivmod; + + _Unwind_Complete; + _Unwind_VRS_Get; + _Unwind_VRS_Set; + _Unwind_VRS_Pop; + __aeabi_unwind_cpp_pr0; + __aeabi_unwind_cpp_pr1; + __aeabi_unwind_cpp_pr2; + __gnu_unwind_frame; +}; + +GCC_4.3.0 { + _Unwind_Backtrace; +}; |