From: Jonathan Wakely <jwakely@redhat.com>
To: libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org
Subject: Re: [gcc-13 PATCH 2/2] libstdc++: Add libstdc++_libbacktrace.a to libstdc++exp
Date: Thu, 18 Apr 2024 21:34:37 +0100 [thread overview]
Message-ID: <CACb0b4kabmznJmdKjwyQUxq=b5ReV5H+85xV1UF+Ax6GNkaK6Q@mail.gmail.com> (raw)
In-Reply-To: <20240418195107.1281808-3-jwakely@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 1086 bytes --]
On Thu, 18 Apr 2024 at 20:51, Jonathan Wakely wrote:
>
> This completes the fixes to put all experimental symbols into
> libstdc++exp.a.
>
> On trunk the libstdc++_libbacktrace.a was removed completely and its
> contents aded to libstdc++exp.a instead. We don't want to do that on the
> gcc-13 branch because it will break makefiles using it. We can add the
> contents to libstdc++exp.a and then install a symlink so that
> -lstdc++_libbacktrace still works, but links to libstdc++exp.a instead.
It looks like simply duplicating all the libstdc___libbacktrace_FOO
variables in libbacktrace/Makefile.am does work (see attached patch),
so that we get an installed libstdc++_libbacktrace.a and a
not-installed libstdc++_libbacktraceconvenience.a which gets included
into the installed libstdc++exp.a
So if that's preferable to making the installed
libstdc++_libbacktrace.a a symlink, we can do that.
I still kinda like the symlink approach, because it reduces the size
on disk, and the same approach could be used to get rid of
libstdc++fs.a without breaking makefiles using -lstdc++fs
[-- Attachment #2: libbacktrace.patch --]
[-- Type: text/x-patch, Size: 14847 bytes --]
diff --git a/libstdc++-v3/src/experimental/Makefile.am b/libstdc++-v3/src/experimental/Makefile.am
index 6cdcdf3525d..db6f3321f90 100644
--- a/libstdc++-v3/src/experimental/Makefile.am
+++ b/libstdc++-v3/src/experimental/Makefile.am
@@ -31,7 +31,7 @@ filesystem_lib =
endif
if ENABLE_BACKTRACE
-backtrace_lib = $(top_builddir)/src/libbacktrace/libstdc++_libbacktrace.la
+backtrace_lib = $(top_builddir)/src/libbacktrace/libstdc++_libbacktraceconvenience.la
else
backtrace_lib =
endif
diff --git a/libstdc++-v3/src/experimental/Makefile.in b/libstdc++-v3/src/experimental/Makefile.in
index 87e52c1c83f..709cc227a1f 100644
--- a/libstdc++-v3/src/experimental/Makefile.in
+++ b/libstdc++-v3/src/experimental/Makefile.in
@@ -149,7 +149,7 @@ am__uninstall_files_from_dir = { \
am__installdirs = "$(DESTDIR)$(toolexeclibdir)"
LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
@ENABLE_FILESYSTEM_TS_TRUE@am__DEPENDENCIES_1 = $(top_builddir)/src/filesystem/libstdc++fsconvenience.la
-@ENABLE_BACKTRACE_TRUE@am__DEPENDENCIES_2 = $(top_builddir)/src/libbacktrace/libstdc++_libbacktrace.la
+@ENABLE_BACKTRACE_TRUE@am__DEPENDENCIES_2 = $(top_builddir)/src/libbacktrace/libstdc++_libbacktraceconvenience.la
am__objects_1 = contract.lo
am_libstdc__exp_la_OBJECTS = $(am__objects_1)
libstdc__exp_la_OBJECTS = $(am_libstdc__exp_la_OBJECTS)
@@ -452,7 +452,7 @@ toolexeclib_LTLIBRARIES = libstdc++exp.la
@ENABLE_FILESYSTEM_TS_FALSE@filesystem_lib =
@ENABLE_FILESYSTEM_TS_TRUE@filesystem_lib = $(top_builddir)/src/filesystem/libstdc++fsconvenience.la
@ENABLE_BACKTRACE_FALSE@backtrace_lib =
-@ENABLE_BACKTRACE_TRUE@backtrace_lib = $(top_builddir)/src/libbacktrace/libstdc++_libbacktrace.la
+@ENABLE_BACKTRACE_TRUE@backtrace_lib = $(top_builddir)/src/libbacktrace/libstdc++_libbacktraceconvenience.la
headers =
sources = \
contract.cc
diff --git a/libstdc++-v3/src/libbacktrace/Makefile.am b/libstdc++-v3/src/libbacktrace/Makefile.am
index 4a08f11da1e..d45d60c8f69 100644
--- a/libstdc++-v3/src/libbacktrace/Makefile.am
+++ b/libstdc++-v3/src/libbacktrace/Makefile.am
@@ -31,18 +31,21 @@
include $(top_srcdir)/fragment.am
-noinst_LTLIBRARIES = libstdc++_libbacktrace.la
+toolexeclib_LTLIBRARIES = libstdc++_libbacktrace.la
+noinst_LTLIBRARIES = libstdc++_libbacktraceconvenience.la
ACLOCAL_AMFLAGS = -I ../.. -I ../../config
# This will be used instead of the common AM_CPPFLAGS from fragment.am
-libstdc___libbacktrace_la_CPPFLAGS = \
+bt_cppflags = \
-I $(top_srcdir)/../include -I $(top_srcdir)/../libgcc \
-I ../../../libgcc -I .. -I $(top_srcdir) \
-I $(top_srcdir)/../libbacktrace \
-I $(top_srcdir)/../libiberty \
-include $(top_srcdir)/src/libbacktrace/backtrace-rename.h \
$(BACKTRACE_CPPFLAGS)
+libstdc___libbacktrace_la_CPPFLAGS = $(bt_cppflags)
+libstdc___libbacktraceconvenience_la_CPPFLAGS = $(bt_cppflags)
WARN_FLAGS = -W -Wall -Wwrite-strings -Wmissing-format-attribute \
-Wcast-qual
@@ -61,8 +64,9 @@ obj_prefix = std_stacktrace
# Each FILE.c in SOURCES will be compiled to SHORTNAME-FILE.o
libstdc___libbacktrace_la_SHORTNAME = $(obj_prefix)
+libstdc___libbacktraceconvenience_la_SHORTNAME = $(obj_prefix)
-libstdc___libbacktrace_la_SOURCES = \
+sources = \
atomic.c \
backtrace.c \
dwarf.c \
@@ -72,6 +76,8 @@ libstdc___libbacktrace_la_SOURCES = \
simple.c \
state.c \
cp-demangle.c
+libstdc___libbacktrace_la_SOURCES = $(sources)
+libstdc___libbacktraceconvenience_la_SOURCES = $(sources)
FORMAT_FILES = \
elf.c \
@@ -86,19 +92,25 @@ ALLOC_FILES = \
alloc.c \
mmap.c
-EXTRA_libstdc___libbacktrace_la_SOURCES = \
+extra_sources = \
$(FORMAT_FILES) \
$(VIEW_FILES) \
$(ALLOC_FILES)
+EXTRA_libstdc___libbacktrace_la_SOURCES = $(extra_sources)
+EXTRA_libstdc___libbacktraceconvenience_la_SOURCES = $(extra_sources)
+
# These three files are chosen by configure and added to the link.
# We need the SHORTNAME- prefix so that they use the custom CPPFLAGS above.
-libstdc___libbacktrace_la_LIBADD = \
+conf_sources = \
$(obj_prefix)-$(FORMAT_FILE) \
$(obj_prefix)-$(VIEW_FILE) \
$(obj_prefix)-$(ALLOC_FILE)
+libstdc___libbacktrace_la_LIBADD = $(conf_sources)
+libstdc___libbacktraceconvenience_la_LIBADD = $(conf_sources)
-libstdc___libbacktrace_la_DEPENDENCIES = $(libstdc___libbacktrace_la_LIBADD)
+libstdc___libbacktrace_la_DEPENDENCIES = $(conf_sources)
+libstdc___libbacktraceconvenience_la_DEPENDENCIES = $(conf_sources)
# Use symlinks for the sources
diff --git a/libstdc++-v3/src/libbacktrace/Makefile.in b/libstdc++-v3/src/libbacktrace/Makefile.in
index 6b898f65b06..681d014f3a7 100644
--- a/libstdc++-v3/src/libbacktrace/Makefile.in
+++ b/libstdc++-v3/src/libbacktrace/Makefile.in
@@ -150,18 +150,50 @@ DIST_COMMON = $(srcdir)/Makefile.am
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = backtrace-supported.h
CONFIG_CLEAN_VPATH_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-am_libstdc___libbacktrace_la_OBJECTS = $(obj_prefix)-atomic.lo \
- $(obj_prefix)-backtrace.lo $(obj_prefix)-dwarf.lo \
- $(obj_prefix)-fileline.lo $(obj_prefix)-posix.lo \
- $(obj_prefix)-sort.lo $(obj_prefix)-simple.lo \
- $(obj_prefix)-state.lo $(obj_prefix)-cp-demangle.lo
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(toolexeclibdir)"
+LTLIBRARIES = $(noinst_LTLIBRARIES) $(toolexeclib_LTLIBRARIES)
+am__objects_1 = $(obj_prefix)-atomic.lo $(obj_prefix)-backtrace.lo \
+ $(obj_prefix)-dwarf.lo $(obj_prefix)-fileline.lo \
+ $(obj_prefix)-posix.lo $(obj_prefix)-sort.lo \
+ $(obj_prefix)-simple.lo $(obj_prefix)-state.lo \
+ $(obj_prefix)-cp-demangle.lo
+am_libstdc___libbacktrace_la_OBJECTS = $(am__objects_1)
libstdc___libbacktrace_la_OBJECTS = \
$(am_libstdc___libbacktrace_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 =
+am_libstdc___libbacktraceconvenience_la_OBJECTS = $(am__objects_1)
+libstdc___libbacktraceconvenience_la_OBJECTS = \
+ $(am_libstdc___libbacktraceconvenience_la_OBJECTS)
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
@@ -189,7 +221,9 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
SOURCES = $(libstdc___libbacktrace_la_SOURCES) \
- $(EXTRA_libstdc___libbacktrace_la_SOURCES)
+ $(EXTRA_libstdc___libbacktrace_la_SOURCES) \
+ $(libstdc___libbacktraceconvenience_la_SOURCES) \
+ $(EXTRA_libstdc___libbacktraceconvenience_la_SOURCES)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
@@ -456,11 +490,12 @@ WARN_CXXFLAGS = \
# -I/-D flags to pass when compiling.
AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS)
-noinst_LTLIBRARIES = libstdc++_libbacktrace.la
+toolexeclib_LTLIBRARIES = libstdc++_libbacktrace.la
+noinst_LTLIBRARIES = libstdc++_libbacktraceconvenience.la
ACLOCAL_AMFLAGS = -I ../.. -I ../../config
# This will be used instead of the common AM_CPPFLAGS from fragment.am
-libstdc___libbacktrace_la_CPPFLAGS = \
+bt_cppflags = \
-I $(top_srcdir)/../include -I $(top_srcdir)/../libgcc \
-I ../../../libgcc -I .. -I $(top_srcdir) \
-I $(top_srcdir)/../libbacktrace \
@@ -468,6 +503,8 @@ libstdc___libbacktrace_la_CPPFLAGS = \
-include $(top_srcdir)/src/libbacktrace/backtrace-rename.h \
$(BACKTRACE_CPPFLAGS)
+libstdc___libbacktrace_la_CPPFLAGS = $(bt_cppflags)
+libstdc___libbacktraceconvenience_la_CPPFLAGS = $(bt_cppflags)
C_WARN_FLAGS = $(WARN_FLAGS) -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wno-unused-but-set-variable
CXX_WARN_FLAGS = $(WARN_FLAGS) -Wno-unused-parameter
AM_CFLAGS = $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \
@@ -478,7 +515,8 @@ obj_prefix = std_stacktrace
# Each FILE.c in SOURCES will be compiled to SHORTNAME-FILE.o
libstdc___libbacktrace_la_SHORTNAME = $(obj_prefix)
-libstdc___libbacktrace_la_SOURCES = \
+libstdc___libbacktraceconvenience_la_SHORTNAME = $(obj_prefix)
+sources = \
atomic.c \
backtrace.c \
dwarf.c \
@@ -489,6 +527,8 @@ libstdc___libbacktrace_la_SOURCES = \
state.c \
cp-demangle.c
+libstdc___libbacktrace_la_SOURCES = $(sources)
+libstdc___libbacktraceconvenience_la_SOURCES = $(sources)
FORMAT_FILES = \
elf.c \
pecoff.c \
@@ -502,20 +542,25 @@ ALLOC_FILES = \
alloc.c \
mmap.c
-EXTRA_libstdc___libbacktrace_la_SOURCES = \
+extra_sources = \
$(FORMAT_FILES) \
$(VIEW_FILES) \
$(ALLOC_FILES)
+EXTRA_libstdc___libbacktrace_la_SOURCES = $(extra_sources)
+EXTRA_libstdc___libbacktraceconvenience_la_SOURCES = $(extra_sources)
# These three files are chosen by configure and added to the link.
# We need the SHORTNAME- prefix so that they use the custom CPPFLAGS above.
-libstdc___libbacktrace_la_LIBADD = \
+conf_sources = \
$(obj_prefix)-$(FORMAT_FILE) \
$(obj_prefix)-$(VIEW_FILE) \
$(obj_prefix)-$(ALLOC_FILE)
-libstdc___libbacktrace_la_DEPENDENCIES = $(libstdc___libbacktrace_la_LIBADD)
+libstdc___libbacktrace_la_LIBADD = $(conf_sources)
+libstdc___libbacktraceconvenience_la_LIBADD = $(conf_sources)
+libstdc___libbacktrace_la_DEPENDENCIES = $(conf_sources)
+libstdc___libbacktraceconvenience_la_DEPENDENCIES = $(conf_sources)
LTCOMPILE = \
$(LIBTOOL) --tag CC --tag disable-shared \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -577,8 +622,46 @@ clean-noinstLTLIBRARIES:
rm -f $${locs}; \
}
+install-toolexeclibLTLIBRARIES: $(toolexeclib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ @list='$(toolexeclib_LTLIBRARIES)'; test -n "$(toolexeclibdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(MKDIR_P) '$(DESTDIR)$(toolexeclibdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(toolexeclibdir)" || exit 1; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(toolexeclibdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(toolexeclibdir)"; \
+ }
+
+uninstall-toolexeclibLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(toolexeclib_LTLIBRARIES)'; test -n "$(toolexeclibdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(toolexeclibdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(toolexeclibdir)/$$f"; \
+ done
+
+clean-toolexeclibLTLIBRARIES:
+ -test -z "$(toolexeclib_LTLIBRARIES)" || rm -f $(toolexeclib_LTLIBRARIES)
+ @list='$(toolexeclib_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+
libstdc++_libbacktrace.la: $(libstdc___libbacktrace_la_OBJECTS) $(libstdc___libbacktrace_la_DEPENDENCIES) $(EXTRA_libstdc___libbacktrace_la_DEPENDENCIES)
- $(AM_V_CCLD)$(LINK) $(libstdc___libbacktrace_la_OBJECTS) $(libstdc___libbacktrace_la_LIBADD) $(LIBS)
+ $(AM_V_CCLD)$(LINK) -rpath $(toolexeclibdir) $(libstdc___libbacktrace_la_OBJECTS) $(libstdc___libbacktrace_la_LIBADD) $(LIBS)
+
+libstdc++_libbacktraceconvenience.la: $(libstdc___libbacktraceconvenience_la_OBJECTS) $(libstdc___libbacktraceconvenience_la_DEPENDENCIES) $(EXTRA_libstdc___libbacktraceconvenience_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) $(libstdc___libbacktraceconvenience_la_OBJECTS) $(libstdc___libbacktraceconvenience_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -704,6 +787,9 @@ check-am: all-am
check: check-am
all-am: Makefile $(LTLIBRARIES)
installdirs:
+ for dir in "$(DESTDIR)$(toolexeclibdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
@@ -737,7 +823,7 @@ maintainer-clean-generic:
clean: clean-am
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
- mostlyclean-am
+ clean-toolexeclibLTLIBRARIES mostlyclean-am
distclean: distclean-am
-rm -f Makefile
@@ -762,7 +848,7 @@ install-dvi: install-dvi-am
install-dvi-am:
-install-exec-am:
+install-exec-am: install-toolexeclibLTLIBRARIES
install-html: install-html-am
@@ -801,23 +887,25 @@ ps: ps-am
ps-am:
-uninstall-am:
+uninstall-am: uninstall-toolexeclibLTLIBRARIES
.MAKE: install-am install-strip
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
- clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
- ctags-am distclean distclean-compile distclean-generic \
+ clean-libtool clean-noinstLTLIBRARIES \
+ clean-toolexeclibLTLIBRARIES cscopelist-am ctags ctags-am \
+ distclean distclean-compile distclean-generic \
distclean-libtool distclean-tags dvi dvi-am html html-am info \
info-am install install-am install-data install-data-am \
install-dvi install-dvi-am install-exec install-exec-am \
install-html install-html-am install-info install-info-am \
install-man install-pdf install-pdf-am install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
- uninstall-am
+ install-ps-am install-strip install-toolexeclibLTLIBRARIES \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am \
+ uninstall-toolexeclibLTLIBRARIES
.PRECIOUS: Makefile
next prev parent reply other threads:[~2024-04-18 20:34 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-18 17:29 [gcc-13 PATCH 0/2] Replace libstdc++_libbacktrace.a with libstdc++exp.a Jonathan Wakely
2024-04-18 17:29 ` [gcc-13 PATCH 1/2] libstdc++: Fix libstdc++exp.a so it really does contain Filesystem TS symbols Jonathan Wakely
2024-04-25 16:23 ` Jonathan Wakely
2024-04-18 17:29 ` [gcc-13 PATCH 2/2] libstdc++: Add libstdc++_libbacktrace.a to libstdc++exp Jonathan Wakely
2024-04-18 20:34 ` Jonathan Wakely [this message]
2024-04-25 17:58 ` [gcc-13 PATCH 2/2 v3] " Jonathan Wakely
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CACb0b4kabmznJmdKjwyQUxq=b5ReV5H+85xV1UF+Ax6GNkaK6Q@mail.gmail.com' \
--to=jwakely@redhat.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=libstdc++@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).