From 38a8aecfb882072900434499696b5c32a2274515 Mon Sep 17 00:00:00 2001 From: Rong Xu Date: Mon, 21 Jul 2014 16:47:22 -0700 Subject: [4.9] Switch gcc-4.9 to use google/gcc-4_9 branch. This source drop uses svn version r212828 of google/gcc-4.9 branch. We also cherry-picked r213062, r213063 and r213064 to fix windows build issues. All gcc-4.9 patches before July 3rd are ported to google/gcc-4.9. The following prior commits has not been merged to google branch yet. (They are included in this commit). e7af147f979e657fe2df00808e5b4319b0e088c6, baf87df3cb2683649ba7e9872362a7e721117c23, and c231900e5dcc14d8296bd9f62b45997a49d4d5e7. Change-Id: I4bea3ea470387ff751c2be4cb0d4a12059b9299b --- gcc-4.9/libgcc/Makefile.in | 71 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 49 insertions(+), 22 deletions(-) (limited to 'gcc-4.9/libgcc/Makefile.in') diff --git a/gcc-4.9/libgcc/Makefile.in b/gcc-4.9/libgcc/Makefile.in index 06b3c884b..1e941f29f 100644 --- a/gcc-4.9/libgcc/Makefile.in +++ b/gcc-4.9/libgcc/Makefile.in @@ -46,9 +46,16 @@ fixed_point = @fixed_point@ host_noncanonical = @host_noncanonical@ target_noncanonical = @target_noncanonical@ +is_android = @is_android@ + # List of extra object files that should be compiled for this target machine. # The rules for compiling them should be in the t-* file for the machine. +ifeq ($(enable_vtable_verify),yes) EXTRA_PARTS = @extra_parts@ +else +EXTRA_PARTS = @extra_parts@ @vtv_extra_parts@ +endif + extra-parts = libgcc-extra-parts @@ -224,15 +231,17 @@ DECNUMINC = endif # Options to use when compiling libgcc2.a. -# Adding -funwind-tables to debug idiv0 cases for Android # LIBGCC2_DEBUG_CFLAGS = -g LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(HOST_LIBGCC2_CFLAGS) \ $(LIBGCC2_DEBUG_CFLAGS) -DIN_LIBGCC2 \ -fbuilding-libgcc -fno-stack-protector \ - -funwind-tables \ $(INHIBIT_LIBC_CFLAGS) +ifeq ($(is_android),yes) +LIBGCC2_CFLAGS += -funwind-tables +endif + # Additional options to use when compiling libgcc2.a. # Some targets override this to -isystem include LIBGCC2_INCLUDES = @@ -340,6 +349,24 @@ LIBUNWIND = SHLIBUNWIND_LINK = SHLIBUNWIND_INSTALL = +ifeq ($(is_android),yes) +ifneq ($(enable_shared),yes) +# Some prebuilt libraries for Android link libc.so before libgcc.a, and they +# rely on libgcc.a to provide those symbols with default visibility to resolve +# them eventually. The linker order has been fixed in JB maintain releases but +# may take a while to trickle down to partners to refresh their prebuilt +# libraries. Therefore we need to maintain the same visibility as older GCC +# for now. +vis_hide = +endif +else +# For -fvisibility=hidden. We need both a -fvisibility=hidden on +# the command line, and a #define to prevent libgcc2.h etc from +# overriding that with #pragmas. This is set before including $(tmake_file) +# so it can be overridden on a host-specific basis. +vis_hide = @vis_hide@ +endif + tmake_file = @tmake_file@ include $(srcdir)/empty.mk $(tmake_file) @@ -370,21 +397,6 @@ ifeq ($(enable_shared),yes) endif endif -ifneq ($(enable_shared),yes) -# Some prebuilt libraries for Android link libc.so before libgcc.a, and they -# rely on libgcc.a to provide those symbols with default visibility to resolve -# them eventually. The linker order has been fixed in JB maintain releases but -# may take a while to trickle down to partners to refresh their prebuilt -# libraries. Therefore we need to maintain the same visibility as older GCC -# for now. -vis_hide = -else -# For -fvisibility=hidden. We need both a -fvisibility=hidden on -# the command line, and a #define to prevent libgcc2.h etc from -# overriding that with #pragmas. -vis_hide = @vis_hide@ -endif - ifneq (,$(vis_hide)) # If we have -fvisibility=hidden, then we need to generate hide @@ -865,12 +877,14 @@ include $(iterator) # Build libgcov components. LIBGCOV_MERGE = _gcov_merge_add _gcov_merge_single _gcov_merge_delta _gcov_merge_ior \ - _gcov_merge_time_profile + _gcov_merge_dc _gcov_merge_icall_topn _gcov_merge_time_profile LIBGCOV_PROFILER = _gcov_interval_profiler _gcov_pow2_profiler _gcov_one_value_profiler \ _gcov_indirect_call_profiler _gcov_average_profiler _gcov_ior_profiler \ - _gcov_indirect_call_profiler_v2 _gcov_time_profiler + _gcov_indirect_call_profiler_v2 _gcov_direct_call_profiler \ + _gcov_indirect_call_topn_profiler _gcov_time_profiler LIBGCOV_INTERFACE = _gcov_flush _gcov_fork _gcov_execl _gcov_execlp _gcov_execle \ - _gcov_execv _gcov_execvp _gcov_execve _gcov_reset _gcov_dump + _gcov_execv _gcov_execvp _gcov_execve _gcov_reset _gcov_dump _gcov_sampling \ + _gcov_prefix LIBGCOV_DRIVER = _gcov libgcov-merge-objects = $(patsubst %,%$(objext),$(LIBGCOV_MERGE)) @@ -880,6 +894,8 @@ libgcov-driver-objects = $(patsubst %,%$(objext),$(LIBGCOV_DRIVER)) libgcov-objects = $(libgcov-merge-objects) $(libgcov-profiler-objects) \ $(libgcov-interface-objects) $(libgcov-driver-objects) +dyn-ipa.o: %$(objext): $(srcdir)/dyn-ipa.c libgcc_tm.h + $(gcc_compile) -c $(srcdir)/dyn-ipa.c $(libgcov-merge-objects): %$(objext): $(srcdir)/libgcov-merge.c $(srcdir)/libgcov.h $(gcc_compile) -DL$* -c $(srcdir)/libgcov-merge.c $(libgcov-profiler-objects): %$(objext): $(srcdir)/libgcov-profiler.c $(srcdir)/libgcov.h @@ -890,10 +906,9 @@ $(libgcov-driver-objects): %$(objext): $(srcdir)/libgcov-driver.c \ $(srcdir)/libgcov-driver-system.c $(srcdir)/libgcov.h $(gcc_compile) -DL$* -c $(srcdir)/libgcov-driver.c - # Static libraries. libgcc.a: $(libgcc-objects) -libgcov.a: $(libgcov-objects) +libgcov.a: $(libgcov-objects) dyn-ipa$(objext) libunwind.a: $(libunwind-objects) libgcc_eh.a: $(libgcc-eh-objects) @@ -1126,6 +1141,18 @@ install-leaf: $(install-shared) $(install-libunwind) esac; \ done + if [ "$(MULTIDIR)" == "." ]; then \ + gcov_src_dest="$(DESTDIR)$(inst_libdir)/gcov-src"; \ + $(mkinstalldirs) $$gcov_src_dest; \ + cp ../../gcc/gcov-iov.h $$gcov_src_dest; \ + cp $(srcdir)/../gcc/gcov-io.h $$gcov_src_dest; \ + cp $(srcdir)/../gcc/gcov-io.c $$gcov_src_dest; \ + cp $(srcdir)/libgcov-driver.c $$gcov_src_dest; \ + chmod 644 $$gcov_src_dest/gcov-iov.h \ + $$gcov_src_dest/gcov-io.h $$gcov_src_dest/gcov-io.c \ + $$gcov_src_dest/libgcov-driver.c; \ + fi + install: install-leaf install-unwind_h @: $(MAKE) ; $(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install -- cgit v1.2.3