aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2022-10-13 15:54:17 +0200
committerMartin Liska <mliska@suse.cz>2022-10-13 15:54:17 +0200
commitbd21c04269deded2c7476ceca1100a26f28ea526 (patch)
tree197bf75eedac69362078a4ccc0afe5615c45c327 /libgcc
parentd9e7934d25da4a78ffef1f738206aa1d897911df (diff)
parent786e4c024f941671a233f5779d73a5d22f4e9588 (diff)
downloadgcc-bd21c04269deded2c7476ceca1100a26f28ea526.zip
gcc-bd21c04269deded2c7476ceca1100a26f28ea526.tar.gz
gcc-bd21c04269deded2c7476ceca1100a26f28ea526.tar.bz2
Merge branch 'master' into devel/sphinx
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/ChangeLog14
-rw-r--r--libgcc/config.host31
-rw-r--r--libgcc/libgcov-driver.c2
-rw-r--r--libgcc/libgcov.h5
4 files changed, 47 insertions, 5 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 06240c1..48a328a 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,17 @@
+2022-10-12 Martin Liska <mliska@suse.cz>
+
+ * libgcov-driver.c: Use new function.
+ * libgcov.h (gcov_write_summary): Rename to ...
+ (gcov_write_object_summary): ... this.
+
+2022-10-11 Olivier Hainque <hainque@adacore.com>
+
+ * config.host (*vxworks*): When enable_shared, add
+ libgcc and crtstuff "shared" fragments for rtp except
+ large code model.
+ (aarch64*-wrs-vxworks7*): Remove t-slibgcc-libgcc from
+ the list of fragments.
+
2022-10-06 Jakub Jelinek <jakub@redhat.com>
* config/arc/linux-unwind.h (arc_fallback_frame_state): Use
diff --git a/libgcc/config.host b/libgcc/config.host
index 9dcc253..0fbf9a3 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -410,7 +410,7 @@ aarch64*-*-vxworks7*)
extra_parts="$extra_parts crtfastmath.o"
md_unwind_header=aarch64/aarch64-unwind.h
tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
- tmake_file="${tmake_file} ${cpu_type}/t-lse t-slibgcc-libgcc"
+ tmake_file="${tmake_file} ${cpu_type}/t-lse"
tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
tmake_file="${tmake_file} t-dfprules"
;;
@@ -1549,6 +1549,35 @@ aarch64*-*-*)
;;
esac
+# Setup to build a shared libgcc for VxWorks when that was requested,
+# for library variants that support it (rtp only, code model not large).
+#
+
+case ${host} in
+*vxworks*)
+ case ${with_multisubdir}-${enable_shared} in
+ *large*)
+ ;;
+ *mrtp*-yes)
+ tmake_file="${tmake_file} t-libgcc-pic"
+
+ # Arrange to set a soname on libgcc_s so DT_NEEDED entries
+ # for it refer to that alone. This ensures absence of path
+ # components which would be incorrect as the runtime loader
+ # on target has no visibility over the host filesystem.
+ tmake_file="${tmake_file} t-slibgcc-gld-nover"
+ tmake_file="${tmake_file} t-slibgcc"
+
+ # t-slibgcc-libgcc is needed on at least aarch64 (for
+ # lse) and at most harmless on other targets.
+ tmake_file="${tmake_file} t-slibgcc-libgcc"
+
+ tmake_file="${tmake_file} t-crtstuff-pic t-vxcrtstuffS"
+ ;;
+ esac
+ ;;
+esac
+
# The vxworks threads implementation relies on a few extra sources,
# which we arrange to add after everything else:
diff --git a/libgcc/libgcov-driver.c b/libgcc/libgcov-driver.c
index aba62d5..e1b74c8 100644
--- a/libgcc/libgcov-driver.c
+++ b/libgcc/libgcov-driver.c
@@ -520,7 +520,7 @@ write_one_data (const struct gcov_info *gi_ptr,
#ifdef NEED_L_GCOV
/* Generate whole program statistics. */
- gcov_write_summary (GCOV_TAG_OBJECT_SUMMARY, prg_p);
+ gcov_write_object_summary (prg_p);
#endif
/* Write execution counts for each function. */
diff --git a/libgcc/libgcov.h b/libgcc/libgcov.h
index c7545cc..5e7bd0e 100644
--- a/libgcc/libgcov.h
+++ b/libgcc/libgcov.h
@@ -118,7 +118,7 @@ typedef unsigned gcov_type_unsigned __attribute__ ((mode (QI)));
#define gcov_rewrite __gcov_rewrite
#define gcov_is_error __gcov_is_error
#define gcov_write_unsigned __gcov_write_unsigned
-#define gcov_write_summary __gcov_write_summary
+#define gcov_write_object_summary __gcov_write_object_summary
#define gcov_read_unsigned __gcov_read_unsigned
#define gcov_read_counter __gcov_read_counter
#define gcov_read_summary __gcov_read_summary
@@ -342,8 +342,7 @@ extern int __gcov_execve (const char *, char *const [], char *const [])
ATTRIBUTE_HIDDEN;
/* Functions that only available in libgcov. */
-GCOV_LINKAGE void gcov_write_summary (gcov_unsigned_t /*tag*/,
- const struct gcov_summary *)
+GCOV_LINKAGE void gcov_write_object_summary (const struct gcov_summary *)
ATTRIBUTE_HIDDEN;
GCOV_LINKAGE void gcov_rewrite (void) ATTRIBUTE_HIDDEN;