commit 8e9292cd4a1976968b1736e1e937fef34a60417e Author: Ed Maste Date: Thu Oct 20 14:21:28 2016 -0400 Connect new libgcc_eh and libgcc_s to the build Remove LLVM_LIBUNWIND block from gnu/lib/libgcc PR: 213480 [exp-run] Differential Revision: https://reviews.freebsd.org/D8189 diff --git a/Makefile.inc1 b/Makefile.inc1 index 99918b3..5984916 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -1984,7 +1984,7 @@ libraries: .MAKE .PHONY # # static libgcc.a prerequisite for shared libc # -_prereq_libs= gnu/lib/libgcc lib/libcompiler_rt +_prereq_libs= lib/libcompiler_rt .if ${MK_SSP} != "no" _prereq_libs+= gnu/lib/libssp/libssp_nonshared .endif @@ -1996,7 +1996,6 @@ _prereq_libs+= gnu/lib/libssp/libssp_nonshared # _startup_libs= gnu/lib/csu _startup_libs+= lib/csu -_startup_libs+= gnu/lib/libgcc _startup_libs+= lib/libcompiler_rt _startup_libs+= lib/libc _startup_libs+= lib/libc_nonshared @@ -2004,11 +2003,27 @@ _startup_libs+= lib/libc_nonshared _startup_libs+= lib/libcxxrt .endif +.if ${MK_LLVM_LIBUNWIND} != "no" +_prereq_libs+= lib/libgcc_eh lib/libgcc_s +_startup_libs+= lib/libgcc_eh lib/libgcc_s + +lib/libgcc_s__L: lib/libc__L +lib/libgcc_s__L: lib/libc_nonshared__L +.if ${MK_LIBCPLUSPLUS} != "no" +lib/libcxxrt__L: lib/libgcc_s__L +.endif + +.else # MK_LLVM_LIBUNWIND == no + +_prereq_libs+= gnu/lib/libgcc +_startup_libs+= gnu/lib/libgcc + gnu/lib/libgcc__L: lib/libc__L gnu/lib/libgcc__L: lib/libc_nonshared__L .if ${MK_LIBCPLUSPLUS} != "no" lib/libcxxrt__L: gnu/lib/libgcc__L .endif +.endif _prebuild_libs= ${_kerberos5_lib_libasn1} \ ${_kerberos5_lib_libhdb} \ diff --git a/gnu/lib/Makefile b/gnu/lib/Makefile index 0e17c22..036c42f 100644 --- a/gnu/lib/Makefile +++ b/gnu/lib/Makefile @@ -3,8 +3,6 @@ .include SUBDIR= csu -SUBDIR+= libgcc - SUBDIR.${MK_DIALOG}+= libdialog SUBDIR.${MK_GCC}+= libgcov libgomp SUBDIR.${MK_SSP}+= libssp @@ -19,6 +17,10 @@ SUBDIR+= libreadline SUBDIR+= libregex .endif +.if ${MK_LLVM_LIBUNWIND} == "no" +SUBDIR+= libgcc +.endif + # libsupc++ uses libstdc++ headers, although 'make includes' should # have taken care of that already. .if ${MK_GNUCXX} != "no" diff --git a/gnu/lib/libgcc/Makefile b/gnu/lib/libgcc/Makefile index 3186458..c7a4574 100644 --- a/gnu/lib/libgcc/Makefile +++ b/gnu/lib/libgcc/Makefile @@ -74,33 +74,6 @@ LIB2FUNCS+= _floatdi${mode} _floatundi${mode} LIB2ADD = $(LIB2FUNCS_EXTRA) LIB2ADD_ST = $(LIB2FUNCS_STATIC_EXTRA) -# Additional sources to handle exceptions; overridden by targets as needed. -.if ${MK_LLVM_LIBUNWIND} != "no" - -.PATH: ${COMPILERRTDIR}/lib/builtins -.PATH: ${UNWINDSRCDIR} -LIB2ADDEH = gcc_personality_v0.c \ - int_util.c \ - Unwind-EHABI.cpp \ - Unwind-sjlj.c \ - UnwindLevel1-gcc-ext.c \ - UnwindLevel1.c \ - UnwindRegistersRestore.S \ - UnwindRegistersSave.S \ - libunwind.cpp - -CFLAGS+= -I${UNWINDINCDIR} -I${.CURDIR} -D_LIBUNWIND_IS_NATIVE_ONLY -.if empty(CXXFLAGS:M-std=*) -CXXFLAGS+= -std=c++11 -.endif -CXXFLAGS+= -fno-rtti -STATIC_CXXFLAGS+= -fvisibility=hidden -fPIC -.if ${MK_DIRDEPS_BUILD} == "yes" -# Avoid dependency on lib/libc++ -CFLAGS+= -I${SRCTOP}/contrib/libc++/include -.endif - -.else # MK_LLVM_LIBUNWIND .if ${TARGET_CPUARCH} == "arm" LIB2ADDEH = unwind-arm.c libunwind-arm.S pr-support.c unwind-c.c @@ -109,8 +82,6 @@ LIB2ADDEH = unwind-dw2.c unwind-dw2-fde-glibc.c unwind-sjlj.c gthr-gnat.c \ unwind-c.c .endif -.endif # MK_LLVM_LIBUNWIND - LIB2ADDEHSTATIC = $(LIB2ADDEH) LIB2ADDEHSHARED = $(LIB2ADDEH) @@ -202,14 +173,7 @@ LIB2_DIVMOD_FUNCS:= ${LIB2_DIVMOD_FUNCS:S/${sym}//g} .endif COMMONHDRS= tm.h tconfig.h options.h gthr-default.h -.if ${MK_LLVM_LIBUNWIND} != "no" -# unwind.h is a generated file when MK_LLVM_LIBUNWIND == "no", and a stale -# copy may be left behind in OBJDIR when switching, so remove it explicitly. -beforebuild: - @rm -f ${.OBJDIR}/unwind.h -.else COMMONHDRS+= unwind.h -.endif #----------------------------------------------------------------------- # diff --git a/lib/Makefile b/lib/Makefile index 3dc1258..f2f3b85 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -160,6 +160,8 @@ _libcplusplus= libc++ SUBDIR.${MK_EFI}+= libefivar SUBDIR.${MK_LIBTHR}+= libthr +SUBDIR.${MK_LLVM_LIBUNWIND}+= libgcc_eh +SUBDIR.${MK_LLVM_LIBUNWIND}+= libgcc_s SUBDIR.${MK_NAND}+= libnandfs SUBDIR.${MK_NETGRAPH}+= libnetgraph SUBDIR.${MK_NIS}+= libypclnt