gprofng: a new GNU profiler
Checks
Commit Message
From: Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
This is fixes for releases/gcc-13 for 31109 gprofng not built and installed in a combined binutils+gcc build
I only cherry-picked 24552056fd5fc677c0d032f54a5cad1c4303d312 and tested my build.
ChangeLog:
* Makefile.def: Add gprofng module.
* configure.ac: Add --enable-gprofng option.
* Makefile.in: Regenerate.
* configure: Regenerate.
include/ChangeLog:
* collectorAPI.h: New file.
* libcollector.h: New file.
* libfcollector.h: New file.
---
Makefile.def | 11 +
Makefile.in | 497 ++++++++++++++++++++++++++++++++++++++++
configure | 18 ++
configure.ac | 14 ++
include/collectorAPI.h | 73 ++++++
include/libcollector.h | 89 +++++++
include/libfcollector.h | 42 ++++
7 files changed, 744 insertions(+)
create mode 100644 include/collectorAPI.h
create mode 100644 include/libcollector.h
create mode 100644 include/libfcollector.h
Comments
On Thu, Dec 14, 2023 at 2:23 AM <vladimir.mezentsev@oracle.com> wrote:
>
> From: Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
>
> This is fixes for releases/gcc-13 for 31109 gprofng not built and installed in a combined binutils+gcc build
> I only cherry-picked 24552056fd5fc677c0d032f54a5cad1c4303d312 and tested my build.
I don't think a combined build is "supported" for release branches but
only for HEAD since
the releases of binutils/gcc do not align. That means there's also no
sanctioned binutils
release version to go with a GCC release version.
Richard.
> ChangeLog:
>
> * Makefile.def: Add gprofng module.
> * configure.ac: Add --enable-gprofng option.
> * Makefile.in: Regenerate.
> * configure: Regenerate.
>
> include/ChangeLog:
>
> * collectorAPI.h: New file.
> * libcollector.h: New file.
> * libfcollector.h: New file.
> ---
> Makefile.def | 11 +
> Makefile.in | 497 ++++++++++++++++++++++++++++++++++++++++
> configure | 18 ++
> configure.ac | 14 ++
> include/collectorAPI.h | 73 ++++++
> include/libcollector.h | 89 +++++++
> include/libfcollector.h | 42 ++++
> 7 files changed, 744 insertions(+)
> create mode 100644 include/collectorAPI.h
> create mode 100644 include/libcollector.h
> create mode 100644 include/libfcollector.h
>
> diff --git a/Makefile.def b/Makefile.def
> index 35e994eb77e..9d43b78b51b 100644
> --- a/Makefile.def
> +++ b/Makefile.def
> @@ -72,6 +72,7 @@ host_modules= { module= isl; lib_path=.libs; bootstrap=true;
> no_install= true; };
> host_modules= { module= gold; bootstrap=true; };
> host_modules= { module= gprof; };
> +host_modules= { module= gprofng; };
> // intl acts on 'host_shared' directly, and does not support --with-pic.
> host_modules= { module= intl; bootstrap=true; };
> host_modules= { module= tcl;
> @@ -510,6 +511,16 @@ dependencies = { module=all-gprof; on=all-bfd; };
> dependencies = { module=all-gprof; on=all-opcodes; };
> dependencies = { module=all-gprof; on=all-intl; };
> dependencies = { module=all-gprof; on=all-gas; };
> +
> +dependencies = { module=configure-gprofng; on=configure-intl; };
> +dependencies = { module=all-gprofng; on=all-libiberty; };
> +dependencies = { module=all-gprofng; on=all-bfd; };
> +dependencies = { module=all-gprofng; on=all-opcodes; };
> +dependencies = { module=all-gprofng; on=all-intl; };
> +dependencies = { module=all-gprofng; on=all-gas; };
> +dependencies = { module=install-gprofng; on=install-opcodes; };
> +dependencies = { module=install-gprofng; on=install-bfd; };
> +
> dependencies = { module=configure-ld; on=configure-intl; };
> dependencies = { module=all-ld; on=all-libiberty; };
> dependencies = { module=all-ld; on=all-bfd; };
> diff --git a/Makefile.in b/Makefile.in
> index 06a9398e172..2ea8943dc3b 100644
> --- a/Makefile.in
> +++ b/Makefile.in
> @@ -1084,6 +1084,7 @@ configure-host: \
> maybe-configure-isl \
> maybe-configure-gold \
> maybe-configure-gprof \
> + maybe-configure-gprofng \
> maybe-configure-intl \
> maybe-configure-tcl \
> maybe-configure-itcl \
> @@ -1237,6 +1238,7 @@ all-host: maybe-all-isl
> all-host: maybe-all-gold
> @endif gold-no-bootstrap
> all-host: maybe-all-gprof
> +all-host: maybe-all-gprofng
> @if intl-no-bootstrap
> all-host: maybe-all-intl
> @endif intl-no-bootstrap
> @@ -1376,6 +1378,7 @@ info-host: maybe-info-mpc
> info-host: maybe-info-isl
> info-host: maybe-info-gold
> info-host: maybe-info-gprof
> +info-host: maybe-info-gprofng
> info-host: maybe-info-intl
> info-host: maybe-info-tcl
> info-host: maybe-info-itcl
> @@ -1466,6 +1469,7 @@ dvi-host: maybe-dvi-mpc
> dvi-host: maybe-dvi-isl
> dvi-host: maybe-dvi-gold
> dvi-host: maybe-dvi-gprof
> +dvi-host: maybe-dvi-gprofng
> dvi-host: maybe-dvi-intl
> dvi-host: maybe-dvi-tcl
> dvi-host: maybe-dvi-itcl
> @@ -1556,6 +1560,7 @@ pdf-host: maybe-pdf-mpc
> pdf-host: maybe-pdf-isl
> pdf-host: maybe-pdf-gold
> pdf-host: maybe-pdf-gprof
> +pdf-host: maybe-pdf-gprofng
> pdf-host: maybe-pdf-intl
> pdf-host: maybe-pdf-tcl
> pdf-host: maybe-pdf-itcl
> @@ -1646,6 +1651,7 @@ html-host: maybe-html-mpc
> html-host: maybe-html-isl
> html-host: maybe-html-gold
> html-host: maybe-html-gprof
> +html-host: maybe-html-gprofng
> html-host: maybe-html-intl
> html-host: maybe-html-tcl
> html-host: maybe-html-itcl
> @@ -1736,6 +1742,7 @@ TAGS-host: maybe-TAGS-mpc
> TAGS-host: maybe-TAGS-isl
> TAGS-host: maybe-TAGS-gold
> TAGS-host: maybe-TAGS-gprof
> +TAGS-host: maybe-TAGS-gprofng
> TAGS-host: maybe-TAGS-intl
> TAGS-host: maybe-TAGS-tcl
> TAGS-host: maybe-TAGS-itcl
> @@ -1826,6 +1833,7 @@ install-info-host: maybe-install-info-mpc
> install-info-host: maybe-install-info-isl
> install-info-host: maybe-install-info-gold
> install-info-host: maybe-install-info-gprof
> +install-info-host: maybe-install-info-gprofng
> install-info-host: maybe-install-info-intl
> install-info-host: maybe-install-info-tcl
> install-info-host: maybe-install-info-itcl
> @@ -1916,6 +1924,7 @@ install-dvi-host: maybe-install-dvi-mpc
> install-dvi-host: maybe-install-dvi-isl
> install-dvi-host: maybe-install-dvi-gold
> install-dvi-host: maybe-install-dvi-gprof
> +install-dvi-host: maybe-install-dvi-gprofng
> install-dvi-host: maybe-install-dvi-intl
> install-dvi-host: maybe-install-dvi-tcl
> install-dvi-host: maybe-install-dvi-itcl
> @@ -2006,6 +2015,7 @@ install-pdf-host: maybe-install-pdf-mpc
> install-pdf-host: maybe-install-pdf-isl
> install-pdf-host: maybe-install-pdf-gold
> install-pdf-host: maybe-install-pdf-gprof
> +install-pdf-host: maybe-install-pdf-gprofng
> install-pdf-host: maybe-install-pdf-intl
> install-pdf-host: maybe-install-pdf-tcl
> install-pdf-host: maybe-install-pdf-itcl
> @@ -2096,6 +2106,7 @@ install-html-host: maybe-install-html-mpc
> install-html-host: maybe-install-html-isl
> install-html-host: maybe-install-html-gold
> install-html-host: maybe-install-html-gprof
> +install-html-host: maybe-install-html-gprofng
> install-html-host: maybe-install-html-intl
> install-html-host: maybe-install-html-tcl
> install-html-host: maybe-install-html-itcl
> @@ -2186,6 +2197,7 @@ installcheck-host: maybe-installcheck-mpc
> installcheck-host: maybe-installcheck-isl
> installcheck-host: maybe-installcheck-gold
> installcheck-host: maybe-installcheck-gprof
> +installcheck-host: maybe-installcheck-gprofng
> installcheck-host: maybe-installcheck-intl
> installcheck-host: maybe-installcheck-tcl
> installcheck-host: maybe-installcheck-itcl
> @@ -2276,6 +2288,7 @@ mostlyclean-host: maybe-mostlyclean-mpc
> mostlyclean-host: maybe-mostlyclean-isl
> mostlyclean-host: maybe-mostlyclean-gold
> mostlyclean-host: maybe-mostlyclean-gprof
> +mostlyclean-host: maybe-mostlyclean-gprofng
> mostlyclean-host: maybe-mostlyclean-intl
> mostlyclean-host: maybe-mostlyclean-tcl
> mostlyclean-host: maybe-mostlyclean-itcl
> @@ -2366,6 +2379,7 @@ clean-host: maybe-clean-mpc
> clean-host: maybe-clean-isl
> clean-host: maybe-clean-gold
> clean-host: maybe-clean-gprof
> +clean-host: maybe-clean-gprofng
> clean-host: maybe-clean-intl
> clean-host: maybe-clean-tcl
> clean-host: maybe-clean-itcl
> @@ -2456,6 +2470,7 @@ distclean-host: maybe-distclean-mpc
> distclean-host: maybe-distclean-isl
> distclean-host: maybe-distclean-gold
> distclean-host: maybe-distclean-gprof
> +distclean-host: maybe-distclean-gprofng
> distclean-host: maybe-distclean-intl
> distclean-host: maybe-distclean-tcl
> distclean-host: maybe-distclean-itcl
> @@ -2546,6 +2561,7 @@ maintainer-clean-host: maybe-maintainer-clean-mpc
> maintainer-clean-host: maybe-maintainer-clean-isl
> maintainer-clean-host: maybe-maintainer-clean-gold
> maintainer-clean-host: maybe-maintainer-clean-gprof
> +maintainer-clean-host: maybe-maintainer-clean-gprofng
> maintainer-clean-host: maybe-maintainer-clean-intl
> maintainer-clean-host: maybe-maintainer-clean-tcl
> maintainer-clean-host: maybe-maintainer-clean-itcl
> @@ -2694,6 +2710,7 @@ check-host: \
> maybe-check-isl \
> maybe-check-gold \
> maybe-check-gprof \
> + maybe-check-gprofng \
> maybe-check-intl \
> maybe-check-tcl \
> maybe-check-itcl \
> @@ -2831,6 +2848,7 @@ install-host-nogcc: \
> maybe-install-isl \
> maybe-install-gold \
> maybe-install-gprof \
> + maybe-install-gprofng \
> maybe-install-intl \
> maybe-install-tcl \
> maybe-install-itcl \
> @@ -2886,6 +2904,7 @@ install-host: \
> maybe-install-isl \
> maybe-install-gold \
> maybe-install-gprof \
> + maybe-install-gprofng \
> maybe-install-intl \
> maybe-install-tcl \
> maybe-install-itcl \
> @@ -2996,6 +3015,7 @@ install-strip-host: \
> maybe-install-strip-isl \
> maybe-install-strip-gold \
> maybe-install-strip-gprof \
> + maybe-install-strip-gprofng \
> maybe-install-strip-intl \
> maybe-install-strip-tcl \
> maybe-install-strip-itcl \
> @@ -19287,6 +19307,474 @@ maintainer-clean-gprof:
>
>
>
> +.PHONY: configure-gprofng maybe-configure-gprofng
> +maybe-configure-gprofng:
> +@if gcc-bootstrap
> +configure-gprofng: stage_current
> +@endif gcc-bootstrap
> +@if gprofng
> +maybe-configure-gprofng: configure-gprofng
> +configure-gprofng:
> + @: $(MAKE); $(unstage)
> + @r=`${PWD_COMMAND}`; export r; \
> + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
> + test ! -f $(HOST_SUBDIR)/gprofng/Makefile || exit 0; \
> + $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gprofng; \
> + $(HOST_EXPORTS) \
> + echo Configuring in $(HOST_SUBDIR)/gprofng; \
> + cd "$(HOST_SUBDIR)/gprofng" || exit 1; \
> + case $(srcdir) in \
> + /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
> + *) topdir=`echo $(HOST_SUBDIR)/gprofng/ | \
> + sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
> + esac; \
> + module_srcdir=gprofng; \
> + $(SHELL) \
> + $$s/$$module_srcdir/configure \
> + --srcdir=$${topdir}/$$module_srcdir \
> + $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
> + --target=${target_alias} \
> + || exit 1
> +@endif gprofng
> +
> +
> +
> +
> +
> +.PHONY: all-gprofng maybe-all-gprofng
> +maybe-all-gprofng:
> +@if gcc-bootstrap
> +all-gprofng: stage_current
> +@endif gcc-bootstrap
> +@if gprofng
> +TARGET-gprofng=all
> +maybe-all-gprofng: all-gprofng
> +all-gprofng: configure-gprofng
> + @: $(MAKE); $(unstage)
> + @r=`${PWD_COMMAND}`; export r; \
> + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
> + $(HOST_EXPORTS) \
> + (cd $(HOST_SUBDIR)/gprofng && \
> + $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS) \
> + $(TARGET-gprofng))
> +@endif gprofng
> +
> +
> +
> +
> +.PHONY: check-gprofng maybe-check-gprofng
> +maybe-check-gprofng:
> +@if gprofng
> +maybe-check-gprofng: check-gprofng
> +
> +check-gprofng:
> + @: $(MAKE); $(unstage)
> + @r=`${PWD_COMMAND}`; export r; \
> + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
> + $(HOST_EXPORTS) \
> + (cd $(HOST_SUBDIR)/gprofng && \
> + $(MAKE) $(FLAGS_TO_PASS) check)
> +
> +@endif gprofng
> +
> +.PHONY: install-gprofng maybe-install-gprofng
> +maybe-install-gprofng:
> +@if gprofng
> +maybe-install-gprofng: install-gprofng
> +
> +install-gprofng: installdirs
> + @: $(MAKE); $(unstage)
> + @r=`${PWD_COMMAND}`; export r; \
> + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
> + $(HOST_EXPORTS) \
> + (cd $(HOST_SUBDIR)/gprofng && \
> + $(MAKE) $(FLAGS_TO_PASS) install)
> +
> +@endif gprofng
> +
> +.PHONY: install-strip-gprofng maybe-install-strip-gprofng
> +maybe-install-strip-gprofng:
> +@if gprofng
> +maybe-install-strip-gprofng: install-strip-gprofng
> +
> +install-strip-gprofng: installdirs
> + @: $(MAKE); $(unstage)
> + @r=`${PWD_COMMAND}`; export r; \
> + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
> + $(HOST_EXPORTS) \
> + (cd $(HOST_SUBDIR)/gprofng && \
> + $(MAKE) $(FLAGS_TO_PASS) install-strip)
> +
> +@endif gprofng
> +
> +# Other targets (info, dvi, pdf, etc.)
> +
> +.PHONY: maybe-info-gprofng info-gprofng
> +maybe-info-gprofng:
> +@if gprofng
> +maybe-info-gprofng: info-gprofng
> +
> +info-gprofng: \
> + configure-gprofng
> + @: $(MAKE); $(unstage)
> + @[ -f ./gprofng/Makefile ] || exit 0; \
> + r=`${PWD_COMMAND}`; export r; \
> + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
> + $(HOST_EXPORTS) \
> + for flag in $(EXTRA_HOST_FLAGS) ; do \
> + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
> + done; \
> + echo "Doing info in gprofng"; \
> + (cd $(HOST_SUBDIR)/gprofng && \
> + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
> + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
> + "RANLIB=$${RANLIB}" \
> + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
> + info) \
> + || exit 1
> +
> +@endif gprofng
> +
> +.PHONY: maybe-dvi-gprofng dvi-gprofng
> +maybe-dvi-gprofng:
> +@if gprofng
> +maybe-dvi-gprofng: dvi-gprofng
> +
> +dvi-gprofng: \
> + configure-gprofng
> + @: $(MAKE); $(unstage)
> + @[ -f ./gprofng/Makefile ] || exit 0; \
> + r=`${PWD_COMMAND}`; export r; \
> + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
> + $(HOST_EXPORTS) \
> + for flag in $(EXTRA_HOST_FLAGS) ; do \
> + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
> + done; \
> + echo "Doing dvi in gprofng"; \
> + (cd $(HOST_SUBDIR)/gprofng && \
> + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
> + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
> + "RANLIB=$${RANLIB}" \
> + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
> + dvi) \
> + || exit 1
> +
> +@endif gprofng
> +
> +.PHONY: maybe-pdf-gprofng pdf-gprofng
> +maybe-pdf-gprofng:
> +@if gprofng
> +maybe-pdf-gprofng: pdf-gprofng
> +
> +pdf-gprofng: \
> + configure-gprofng
> + @: $(MAKE); $(unstage)
> + @[ -f ./gprofng/Makefile ] || exit 0; \
> + r=`${PWD_COMMAND}`; export r; \
> + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
> + $(HOST_EXPORTS) \
> + for flag in $(EXTRA_HOST_FLAGS) ; do \
> + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
> + done; \
> + echo "Doing pdf in gprofng"; \
> + (cd $(HOST_SUBDIR)/gprofng && \
> + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
> + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
> + "RANLIB=$${RANLIB}" \
> + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
> + pdf) \
> + || exit 1
> +
> +@endif gprofng
> +
> +.PHONY: maybe-html-gprofng html-gprofng
> +maybe-html-gprofng:
> +@if gprofng
> +maybe-html-gprofng: html-gprofng
> +
> +html-gprofng: \
> + configure-gprofng
> + @: $(MAKE); $(unstage)
> + @[ -f ./gprofng/Makefile ] || exit 0; \
> + r=`${PWD_COMMAND}`; export r; \
> + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
> + $(HOST_EXPORTS) \
> + for flag in $(EXTRA_HOST_FLAGS) ; do \
> + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
> + done; \
> + echo "Doing html in gprofng"; \
> + (cd $(HOST_SUBDIR)/gprofng && \
> + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
> + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
> + "RANLIB=$${RANLIB}" \
> + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
> + html) \
> + || exit 1
> +
> +@endif gprofng
> +
> +.PHONY: maybe-TAGS-gprofng TAGS-gprofng
> +maybe-TAGS-gprofng:
> +@if gprofng
> +maybe-TAGS-gprofng: TAGS-gprofng
> +
> +TAGS-gprofng: \
> + configure-gprofng
> + @: $(MAKE); $(unstage)
> + @[ -f ./gprofng/Makefile ] || exit 0; \
> + r=`${PWD_COMMAND}`; export r; \
> + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
> + $(HOST_EXPORTS) \
> + for flag in $(EXTRA_HOST_FLAGS) ; do \
> + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
> + done; \
> + echo "Doing TAGS in gprofng"; \
> + (cd $(HOST_SUBDIR)/gprofng && \
> + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
> + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
> + "RANLIB=$${RANLIB}" \
> + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
> + TAGS) \
> + || exit 1
> +
> +@endif gprofng
> +
> +.PHONY: maybe-install-info-gprofng install-info-gprofng
> +maybe-install-info-gprofng:
> +@if gprofng
> +maybe-install-info-gprofng: install-info-gprofng
> +
> +install-info-gprofng: \
> + configure-gprofng \
> + info-gprofng
> + @: $(MAKE); $(unstage)
> + @[ -f ./gprofng/Makefile ] || exit 0; \
> + r=`${PWD_COMMAND}`; export r; \
> + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
> + $(HOST_EXPORTS) \
> + for flag in $(EXTRA_HOST_FLAGS) ; do \
> + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
> + done; \
> + echo "Doing install-info in gprofng"; \
> + (cd $(HOST_SUBDIR)/gprofng && \
> + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
> + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
> + "RANLIB=$${RANLIB}" \
> + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
> + install-info) \
> + || exit 1
> +
> +@endif gprofng
> +
> +.PHONY: maybe-install-dvi-gprofng install-dvi-gprofng
> +maybe-install-dvi-gprofng:
> +@if gprofng
> +maybe-install-dvi-gprofng: install-dvi-gprofng
> +
> +install-dvi-gprofng: \
> + configure-gprofng \
> + dvi-gprofng
> + @: $(MAKE); $(unstage)
> + @[ -f ./gprofng/Makefile ] || exit 0; \
> + r=`${PWD_COMMAND}`; export r; \
> + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
> + $(HOST_EXPORTS) \
> + for flag in $(EXTRA_HOST_FLAGS) ; do \
> + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
> + done; \
> + echo "Doing install-dvi in gprofng"; \
> + (cd $(HOST_SUBDIR)/gprofng && \
> + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
> + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
> + "RANLIB=$${RANLIB}" \
> + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
> + install-dvi) \
> + || exit 1
> +
> +@endif gprofng
> +
> +.PHONY: maybe-install-pdf-gprofng install-pdf-gprofng
> +maybe-install-pdf-gprofng:
> +@if gprofng
> +maybe-install-pdf-gprofng: install-pdf-gprofng
> +
> +install-pdf-gprofng: \
> + configure-gprofng \
> + pdf-gprofng
> + @: $(MAKE); $(unstage)
> + @[ -f ./gprofng/Makefile ] || exit 0; \
> + r=`${PWD_COMMAND}`; export r; \
> + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
> + $(HOST_EXPORTS) \
> + for flag in $(EXTRA_HOST_FLAGS) ; do \
> + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
> + done; \
> + echo "Doing install-pdf in gprofng"; \
> + (cd $(HOST_SUBDIR)/gprofng && \
> + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
> + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
> + "RANLIB=$${RANLIB}" \
> + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
> + install-pdf) \
> + || exit 1
> +
> +@endif gprofng
> +
> +.PHONY: maybe-install-html-gprofng install-html-gprofng
> +maybe-install-html-gprofng:
> +@if gprofng
> +maybe-install-html-gprofng: install-html-gprofng
> +
> +install-html-gprofng: \
> + configure-gprofng \
> + html-gprofng
> + @: $(MAKE); $(unstage)
> + @[ -f ./gprofng/Makefile ] || exit 0; \
> + r=`${PWD_COMMAND}`; export r; \
> + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
> + $(HOST_EXPORTS) \
> + for flag in $(EXTRA_HOST_FLAGS) ; do \
> + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
> + done; \
> + echo "Doing install-html in gprofng"; \
> + (cd $(HOST_SUBDIR)/gprofng && \
> + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
> + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
> + "RANLIB=$${RANLIB}" \
> + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
> + install-html) \
> + || exit 1
> +
> +@endif gprofng
> +
> +.PHONY: maybe-installcheck-gprofng installcheck-gprofng
> +maybe-installcheck-gprofng:
> +@if gprofng
> +maybe-installcheck-gprofng: installcheck-gprofng
> +
> +installcheck-gprofng: \
> + configure-gprofng
> + @: $(MAKE); $(unstage)
> + @[ -f ./gprofng/Makefile ] || exit 0; \
> + r=`${PWD_COMMAND}`; export r; \
> + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
> + $(HOST_EXPORTS) \
> + for flag in $(EXTRA_HOST_FLAGS) ; do \
> + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
> + done; \
> + echo "Doing installcheck in gprofng"; \
> + (cd $(HOST_SUBDIR)/gprofng && \
> + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
> + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
> + "RANLIB=$${RANLIB}" \
> + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
> + installcheck) \
> + || exit 1
> +
> +@endif gprofng
> +
> +.PHONY: maybe-mostlyclean-gprofng mostlyclean-gprofng
> +maybe-mostlyclean-gprofng:
> +@if gprofng
> +maybe-mostlyclean-gprofng: mostlyclean-gprofng
> +
> +mostlyclean-gprofng:
> + @: $(MAKE); $(unstage)
> + @[ -f ./gprofng/Makefile ] || exit 0; \
> + r=`${PWD_COMMAND}`; export r; \
> + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
> + $(HOST_EXPORTS) \
> + for flag in $(EXTRA_HOST_FLAGS) ; do \
> + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
> + done; \
> + echo "Doing mostlyclean in gprofng"; \
> + (cd $(HOST_SUBDIR)/gprofng && \
> + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
> + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
> + "RANLIB=$${RANLIB}" \
> + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
> + mostlyclean) \
> + || exit 1
> +
> +@endif gprofng
> +
> +.PHONY: maybe-clean-gprofng clean-gprofng
> +maybe-clean-gprofng:
> +@if gprofng
> +maybe-clean-gprofng: clean-gprofng
> +
> +clean-gprofng:
> + @: $(MAKE); $(unstage)
> + @[ -f ./gprofng/Makefile ] || exit 0; \
> + r=`${PWD_COMMAND}`; export r; \
> + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
> + $(HOST_EXPORTS) \
> + for flag in $(EXTRA_HOST_FLAGS) ; do \
> + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
> + done; \
> + echo "Doing clean in gprofng"; \
> + (cd $(HOST_SUBDIR)/gprofng && \
> + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
> + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
> + "RANLIB=$${RANLIB}" \
> + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
> + clean) \
> + || exit 1
> +
> +@endif gprofng
> +
> +.PHONY: maybe-distclean-gprofng distclean-gprofng
> +maybe-distclean-gprofng:
> +@if gprofng
> +maybe-distclean-gprofng: distclean-gprofng
> +
> +distclean-gprofng:
> + @: $(MAKE); $(unstage)
> + @[ -f ./gprofng/Makefile ] || exit 0; \
> + r=`${PWD_COMMAND}`; export r; \
> + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
> + $(HOST_EXPORTS) \
> + for flag in $(EXTRA_HOST_FLAGS) ; do \
> + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
> + done; \
> + echo "Doing distclean in gprofng"; \
> + (cd $(HOST_SUBDIR)/gprofng && \
> + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
> + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
> + "RANLIB=$${RANLIB}" \
> + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
> + distclean) \
> + || exit 1
> +
> +@endif gprofng
> +
> +.PHONY: maybe-maintainer-clean-gprofng maintainer-clean-gprofng
> +maybe-maintainer-clean-gprofng:
> +@if gprofng
> +maybe-maintainer-clean-gprofng: maintainer-clean-gprofng
> +
> +maintainer-clean-gprofng:
> + @: $(MAKE); $(unstage)
> + @[ -f ./gprofng/Makefile ] || exit 0; \
> + r=`${PWD_COMMAND}`; export r; \
> + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
> + $(HOST_EXPORTS) \
> + for flag in $(EXTRA_HOST_FLAGS) ; do \
> + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
> + done; \
> + echo "Doing maintainer-clean in gprofng"; \
> + (cd $(HOST_SUBDIR)/gprofng && \
> + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
> + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
> + "RANLIB=$${RANLIB}" \
> + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
> + maintainer-clean) \
> + || exit 1
> +
> +@endif gprofng
> +
> +
> +
> .PHONY: configure-intl maybe-configure-intl
> maybe-configure-intl:
> @if gcc-bootstrap
> @@ -66049,6 +66537,8 @@ all-stagetrain-gas: maybe-all-stagetrain-intl
> all-stagefeedback-gas: maybe-all-stagefeedback-intl
> all-stageautoprofile-gas: maybe-all-stageautoprofile-intl
> all-stageautofeedback-gas: maybe-all-stageautofeedback-intl
> +install-gprofng: maybe-install-opcodes
> +install-gprofng: maybe-install-bfd
> configure-ld: maybe-configure-intl
> configure-stage1-ld: maybe-configure-stage1-intl
> configure-stage2-ld: maybe-configure-stage2-intl
> @@ -66489,6 +66979,7 @@ configure-gdb: stage_last
> configure-gdbserver: stage_last
> configure-gdbsupport: stage_last
> configure-gprof: stage_last
> +configure-gprofng: stage_last
> configure-sid: stage_last
> configure-sim: stage_last
> configure-fastjar: stage_last
> @@ -66523,6 +67014,12 @@ all-gprof: maybe-all-bfd
> all-gprof: maybe-all-opcodes
> all-gprof: maybe-all-intl
> all-gprof: maybe-all-gas
> +configure-gprofng: maybe-configure-intl
> +all-gprofng: maybe-all-libiberty
> +all-gprofng: maybe-all-bfd
> +all-gprofng: maybe-all-opcodes
> +all-gprofng: maybe-all-intl
> +all-gprofng: maybe-all-gas
> all-sid: maybe-all-libiberty
> all-sid: maybe-all-bfd
> all-sid: maybe-all-opcodes
> diff --git a/configure b/configure
> index 117a7ef23f2..b564accf3e1 100755
> --- a/configure
> +++ b/configure
> @@ -800,6 +800,7 @@ enable_offload_targets
> enable_offload_defaulted
> enable_gold
> enable_ld
> +enable_gprofng
> enable_compressed_debug_sections
> enable_libquadmath
> enable_libquadmath_support
> @@ -1536,6 +1537,7 @@ Optional Features:
>
> --enable-gold[=ARG] build gold [ARG={default,yes,no}]
> --enable-ld[=ARG] build ld [ARG={default,yes,no}]
> + --enable-gprofng[=ARG] build gprofng [ARG={yes,no}]
> --enable-compressed-debug-sections={all,gas,gold,ld,none}
> Enable compressed debug sections for gas, gold or ld
> by default
> @@ -3110,6 +3112,22 @@ $as_echo "$as_me: WARNING: neither ld nor gold are enabled" >&2;}
> ;;
> esac
>
> +# Check whether --enable-gprofng was given.
> +if test "${enable_gprofng+set}" = set; then :
> + enableval=$enable_gprofng; enable_gprofng=$enableval
> +else
> + enable_gprofng=yes
> +fi
> +
> +if test "$enable_gprofng" = "yes"; then
> + case "${target}" in
> + x86_64-*-linux* | i?86-*-linux* | aarch64-*-linux*)
> + configdirs="$configdirs gprofng"
> + ;;
> + esac
> +fi
> +
> +
> # PR gas/19109
> # Decide the default method for compressing debug sections.
> # Provide a configure time option to override our default.
> diff --git a/configure.ac b/configure.ac
> index b3e9bbd2aa5..f1c280680fc 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -401,6 +401,20 @@ case "${ENABLE_LD}" in
> ;;
> esac
>
> +AC_ARG_ENABLE(gprofng,
> +[AS_HELP_STRING([[--enable-gprofng[=ARG]]],
> + [build gprofng @<:@ARG={yes,no}@:>@])],
> +enable_gprofng=$enableval,
> +enable_gprofng=yes)
> +if test "$enable_gprofng" = "yes"; then
> + case "${target}" in
> + x86_64-*-linux* | i?86-*-linux* | aarch64-*-linux*)
> + configdirs="$configdirs gprofng"
> + ;;
> + esac
> +fi
> +
> +
> # PR gas/19109
> # Decide the default method for compressing debug sections.
> # Provide a configure time option to override our default.
> diff --git a/include/collectorAPI.h b/include/collectorAPI.h
> new file mode 100644
> index 00000000000..010074a271f
> --- /dev/null
> +++ b/include/collectorAPI.h
> @@ -0,0 +1,73 @@
> +/* Copyright (C) 2021-2023 Free Software Foundation, Inc.
> + Contributed by Oracle.
> +
> + This file is part of GNU Binutils.
> +
> + This program is free software; you can redistribute it and/or modify
> + it under the terms of the GNU General Public License as published by
> + the Free Software Foundation; either version 3, or (at your option)
> + any later version.
> +
> + This program is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + GNU General Public License for more details.
> +
> + You should have received a copy of the GNU General Public License
> + along with this program; if not, write to the Free Software
> + Foundation, 51 Franklin Street - Fifth Floor, Boston,
> + MA 02110-1301, USA. */
> +
> +#ifndef _COLLECTORAPI_H
> +#define _COLLECTORAPI_H
> +
> +/* This file contains function prototypes for the user-callable API
> + routines in libcollector. */
> +
> +#include <pthread.h>
> +
> +#ifdef __cplusplus
> +extern "C"
> +{
> +#endif
> + /* Routine to record a sample in the experiment. */
> + extern void collector_sample (const char *name);
> +
> + /* Routine to suspend data collection during an experiment. */
> + extern void collector_pause (void);
> +
> + /* Routine to resume data collection during an experiment. */
> + extern void collector_resume (void);
> +
> + /* Routine to suspend per-thread data collection during an experiment. */
> + extern void collector_thread_pause (pthread_t tid);
> +
> + /* Routine to resume per-thread data collection during an experiment. */
> + extern void collector_thread_resume (pthread_t tid);
> +
> + /* Routine to close the experiment, and stop all data collection. */
> + extern void collector_terminate_expt (void);
> +
> + typedef struct
> + {
> + unsigned int offset;
> + unsigned int lineno;
> + } Lineno;
> +
> + /* Routines to let libcollector know about dynamically loaded functions. */
> + extern void collector_func_load (const char *name, const char *alias,
> + const char *sourcename, void *vaddr,
> + int size, int lntsize, Lineno *lntable);
> +
> + extern void collector_func_unload (void *vaddr);
> +
> +#ifdef NEED_COLLECTOR_MODULE
> + extern void collector_module_load (const char *modulename, void *vaddr);
> + extern void collector_module_unload (void *vaddr);
> +#endif
> +
> +#ifdef __cplusplus
> +}
> +#endif
> +
> +#endif /* _COLLECTORAPI_H */
> diff --git a/include/libcollector.h b/include/libcollector.h
> new file mode 100644
> index 00000000000..e1c2a440b2a
> --- /dev/null
> +++ b/include/libcollector.h
> @@ -0,0 +1,89 @@
> +/* Copyright (C) 2021-2023 Free Software Foundation, Inc.
> + Contributed by Oracle.
> +
> + This file is part of GNU Binutils.
> +
> + This program is free software; you can redistribute it and/or modify
> + it under the terms of the GNU General Public License as published by
> + the Free Software Foundation; either version 3, or (at your option)
> + any later version.
> +
> + This program is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + GNU General Public License for more details.
> +
> + You should have received a copy of the GNU General Public License
> + along with this program; if not, write to the Free Software
> + Foundation, 51 Franklin Street - Fifth Floor, Boston,
> + MA 02110-1301, USA. */
> +
> +#ifndef _LIBCOLLECTOR_H
> +#define _LIBCOLLECTOR_H
> +
> +typedef struct
> +{
> + unsigned int offset;
> + unsigned int lineno;
> +} Lineno;
> +
> +#ifdef __cplusplus
> +extern "C"
> +{
> +#endif
> +
> + /* This file contains function prototypes for the user-callable API
> + routines in libcollector for C and C++ codes. */
> +
> + /* Routine to record a sample in the experiment. */
> + void collector_sample (char *name);
> +
> + /* Routine to suspend data collection during an experiment. */
> + void collector_pause (void);
> +
> + /* Routine to resume data collection during an experiment. */
> + void collector_resume (void);
> +
> + /* Routine to suspend per-thread data collection during an experiment. */
> + void collector_thread_pause (unsigned int tid);
> +
> + /* Routine to resume per-thread data collection during an experiment. */
> + void collector_thread_resume (unsigned int tid);
> +
> + /* Routine to close the experiment, and stop all data collection. */
> + void collector_terminate_expt (void);
> +
> + /* Routines to let libcollector know about a dynamically loaded function. */
> + void collector_func_load (char *name, char *alias, char *sourcename,
> + void *vaddr, int size, int lntsize, Lineno *lntable);
> + void collector_func_unload (void *vaddr);
> +
> + /* Define the weak symbols for the API. */
> + void collector_sample () __attribute__ ((weak));
> + void collector_pause () __attribute__ ((weak));
> + void collector_resume () __attribute__ ((weak));
> + void collector_thread_pause () __attribute__ ((weak));
> + void collector_thread_resume () __attribute__ ((weak));
> + void collector_terminate_expt () __attribute__ ((weak));
> + void collector_func_load () __attribute__ ((weak));
> + void collector_func_unload () __attribute__ ((weak));
> +
> +#ifdef __cplusplus
> +}
> +#endif
> +
> +/* Define the macros that actually get inserted in the caller's code. */
> +#define collector_sample(x) (collector_sample ? collector_sample(x), 0 : 0)
> +#define collector_pause() (collector_pause ? collector_pause(), 0 : 0)
> +#define collector_resume() (collector_resume ? collector_resume(),0 : 0
> +#define collector_thread_pause(tid) \
> + (collector_thread_pause ? collector_thread_pause(tid), 0 : 0)
> +#define collector_thread_resume(tid) \
> + (collector_thread_resume ? collector_thread_resume(tid), 0 : 0)
> +#define collector_terminate_expt() \
> + (collector_terminate_expt ? collector_terminate_expt(), 0 : 0)
> +#define collector_func_load(x0,x1,x2,x3,x4,x5,x6) \
> + collector_func_load ? collector_func_load(x0,x1,x2,x3,x4,x5,x6), 0 : 0)
> +#define collector_func_unload(x) \
> + (collector_func_unload ? collector_func_unload(x), 0 : 0)
> +#endif /* _LIBCOLLECTOR_H */
> diff --git a/include/libfcollector.h b/include/libfcollector.h
> new file mode 100644
> index 00000000000..1dc6b144e6c
> --- /dev/null
> +++ b/include/libfcollector.h
> @@ -0,0 +1,42 @@
> +! Copyright (C) 2021-2023 Free Software Foundation, Inc.
> +! Contributed by Oracle.
> +!
> +! This file is part of GNU Binutils.
> +!
> +! This program is free software; you can redistribute it and/or modify
> +! it under the terms of the GNU General Public License as published by
> +! the Free Software Foundation; either version 3, or (at your option)
> +! any later version.
> +!
> +! This program is distributed in the hope that it will be useful,
> +! but WITHOUT ANY WARRANTY; without even the implied warranty of
> +! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +! GNU General Public License for more details.
> +!
> +! You should have received a copy of the GNU General Public License
> +! along with this program; if not, write to the Free Software
> +! Foundation, 51 Franklin Street - Fifth Floor, Boston,
> +! MA 02110-1301, USA.
> +!
> +! Developer Sampling Collector interface include file
> +
> + interface
> +
> + ! Routine to record a sample in the experiment.
> + subroutine collector_sample(name)
> + character(len=*), intent(in) :: name
> + end subroutine
> +
> + ! Routine to suspend data collection during an experiment.
> + subroutine collector_pause()
> + end subroutine
> +
> + ! Routine to resume data collection during an experiment.
> + subroutine collector_resume()
> + end subroutine
> +
> + ! Routine to stop all data collection and close the experiment.
> + subroutine collector_terminate_expt()
> + end subroutine
> +
> + end interface
> --
> 2.31.1
>
@@ -72,6 +72,7 @@ host_modules= { module= isl; lib_path=.libs; bootstrap=true;
no_install= true; };
host_modules= { module= gold; bootstrap=true; };
host_modules= { module= gprof; };
+host_modules= { module= gprofng; };
// intl acts on 'host_shared' directly, and does not support --with-pic.
host_modules= { module= intl; bootstrap=true; };
host_modules= { module= tcl;
@@ -510,6 +511,16 @@ dependencies = { module=all-gprof; on=all-bfd; };
dependencies = { module=all-gprof; on=all-opcodes; };
dependencies = { module=all-gprof; on=all-intl; };
dependencies = { module=all-gprof; on=all-gas; };
+
+dependencies = { module=configure-gprofng; on=configure-intl; };
+dependencies = { module=all-gprofng; on=all-libiberty; };
+dependencies = { module=all-gprofng; on=all-bfd; };
+dependencies = { module=all-gprofng; on=all-opcodes; };
+dependencies = { module=all-gprofng; on=all-intl; };
+dependencies = { module=all-gprofng; on=all-gas; };
+dependencies = { module=install-gprofng; on=install-opcodes; };
+dependencies = { module=install-gprofng; on=install-bfd; };
+
dependencies = { module=configure-ld; on=configure-intl; };
dependencies = { module=all-ld; on=all-libiberty; };
dependencies = { module=all-ld; on=all-bfd; };
@@ -1084,6 +1084,7 @@ configure-host: \
maybe-configure-isl \
maybe-configure-gold \
maybe-configure-gprof \
+ maybe-configure-gprofng \
maybe-configure-intl \
maybe-configure-tcl \
maybe-configure-itcl \
@@ -1237,6 +1238,7 @@ all-host: maybe-all-isl
all-host: maybe-all-gold
@endif gold-no-bootstrap
all-host: maybe-all-gprof
+all-host: maybe-all-gprofng
@if intl-no-bootstrap
all-host: maybe-all-intl
@endif intl-no-bootstrap
@@ -1376,6 +1378,7 @@ info-host: maybe-info-mpc
info-host: maybe-info-isl
info-host: maybe-info-gold
info-host: maybe-info-gprof
+info-host: maybe-info-gprofng
info-host: maybe-info-intl
info-host: maybe-info-tcl
info-host: maybe-info-itcl
@@ -1466,6 +1469,7 @@ dvi-host: maybe-dvi-mpc
dvi-host: maybe-dvi-isl
dvi-host: maybe-dvi-gold
dvi-host: maybe-dvi-gprof
+dvi-host: maybe-dvi-gprofng
dvi-host: maybe-dvi-intl
dvi-host: maybe-dvi-tcl
dvi-host: maybe-dvi-itcl
@@ -1556,6 +1560,7 @@ pdf-host: maybe-pdf-mpc
pdf-host: maybe-pdf-isl
pdf-host: maybe-pdf-gold
pdf-host: maybe-pdf-gprof
+pdf-host: maybe-pdf-gprofng
pdf-host: maybe-pdf-intl
pdf-host: maybe-pdf-tcl
pdf-host: maybe-pdf-itcl
@@ -1646,6 +1651,7 @@ html-host: maybe-html-mpc
html-host: maybe-html-isl
html-host: maybe-html-gold
html-host: maybe-html-gprof
+html-host: maybe-html-gprofng
html-host: maybe-html-intl
html-host: maybe-html-tcl
html-host: maybe-html-itcl
@@ -1736,6 +1742,7 @@ TAGS-host: maybe-TAGS-mpc
TAGS-host: maybe-TAGS-isl
TAGS-host: maybe-TAGS-gold
TAGS-host: maybe-TAGS-gprof
+TAGS-host: maybe-TAGS-gprofng
TAGS-host: maybe-TAGS-intl
TAGS-host: maybe-TAGS-tcl
TAGS-host: maybe-TAGS-itcl
@@ -1826,6 +1833,7 @@ install-info-host: maybe-install-info-mpc
install-info-host: maybe-install-info-isl
install-info-host: maybe-install-info-gold
install-info-host: maybe-install-info-gprof
+install-info-host: maybe-install-info-gprofng
install-info-host: maybe-install-info-intl
install-info-host: maybe-install-info-tcl
install-info-host: maybe-install-info-itcl
@@ -1916,6 +1924,7 @@ install-dvi-host: maybe-install-dvi-mpc
install-dvi-host: maybe-install-dvi-isl
install-dvi-host: maybe-install-dvi-gold
install-dvi-host: maybe-install-dvi-gprof
+install-dvi-host: maybe-install-dvi-gprofng
install-dvi-host: maybe-install-dvi-intl
install-dvi-host: maybe-install-dvi-tcl
install-dvi-host: maybe-install-dvi-itcl
@@ -2006,6 +2015,7 @@ install-pdf-host: maybe-install-pdf-mpc
install-pdf-host: maybe-install-pdf-isl
install-pdf-host: maybe-install-pdf-gold
install-pdf-host: maybe-install-pdf-gprof
+install-pdf-host: maybe-install-pdf-gprofng
install-pdf-host: maybe-install-pdf-intl
install-pdf-host: maybe-install-pdf-tcl
install-pdf-host: maybe-install-pdf-itcl
@@ -2096,6 +2106,7 @@ install-html-host: maybe-install-html-mpc
install-html-host: maybe-install-html-isl
install-html-host: maybe-install-html-gold
install-html-host: maybe-install-html-gprof
+install-html-host: maybe-install-html-gprofng
install-html-host: maybe-install-html-intl
install-html-host: maybe-install-html-tcl
install-html-host: maybe-install-html-itcl
@@ -2186,6 +2197,7 @@ installcheck-host: maybe-installcheck-mpc
installcheck-host: maybe-installcheck-isl
installcheck-host: maybe-installcheck-gold
installcheck-host: maybe-installcheck-gprof
+installcheck-host: maybe-installcheck-gprofng
installcheck-host: maybe-installcheck-intl
installcheck-host: maybe-installcheck-tcl
installcheck-host: maybe-installcheck-itcl
@@ -2276,6 +2288,7 @@ mostlyclean-host: maybe-mostlyclean-mpc
mostlyclean-host: maybe-mostlyclean-isl
mostlyclean-host: maybe-mostlyclean-gold
mostlyclean-host: maybe-mostlyclean-gprof
+mostlyclean-host: maybe-mostlyclean-gprofng
mostlyclean-host: maybe-mostlyclean-intl
mostlyclean-host: maybe-mostlyclean-tcl
mostlyclean-host: maybe-mostlyclean-itcl
@@ -2366,6 +2379,7 @@ clean-host: maybe-clean-mpc
clean-host: maybe-clean-isl
clean-host: maybe-clean-gold
clean-host: maybe-clean-gprof
+clean-host: maybe-clean-gprofng
clean-host: maybe-clean-intl
clean-host: maybe-clean-tcl
clean-host: maybe-clean-itcl
@@ -2456,6 +2470,7 @@ distclean-host: maybe-distclean-mpc
distclean-host: maybe-distclean-isl
distclean-host: maybe-distclean-gold
distclean-host: maybe-distclean-gprof
+distclean-host: maybe-distclean-gprofng
distclean-host: maybe-distclean-intl
distclean-host: maybe-distclean-tcl
distclean-host: maybe-distclean-itcl
@@ -2546,6 +2561,7 @@ maintainer-clean-host: maybe-maintainer-clean-mpc
maintainer-clean-host: maybe-maintainer-clean-isl
maintainer-clean-host: maybe-maintainer-clean-gold
maintainer-clean-host: maybe-maintainer-clean-gprof
+maintainer-clean-host: maybe-maintainer-clean-gprofng
maintainer-clean-host: maybe-maintainer-clean-intl
maintainer-clean-host: maybe-maintainer-clean-tcl
maintainer-clean-host: maybe-maintainer-clean-itcl
@@ -2694,6 +2710,7 @@ check-host: \
maybe-check-isl \
maybe-check-gold \
maybe-check-gprof \
+ maybe-check-gprofng \
maybe-check-intl \
maybe-check-tcl \
maybe-check-itcl \
@@ -2831,6 +2848,7 @@ install-host-nogcc: \
maybe-install-isl \
maybe-install-gold \
maybe-install-gprof \
+ maybe-install-gprofng \
maybe-install-intl \
maybe-install-tcl \
maybe-install-itcl \
@@ -2886,6 +2904,7 @@ install-host: \
maybe-install-isl \
maybe-install-gold \
maybe-install-gprof \
+ maybe-install-gprofng \
maybe-install-intl \
maybe-install-tcl \
maybe-install-itcl \
@@ -2996,6 +3015,7 @@ install-strip-host: \
maybe-install-strip-isl \
maybe-install-strip-gold \
maybe-install-strip-gprof \
+ maybe-install-strip-gprofng \
maybe-install-strip-intl \
maybe-install-strip-tcl \
maybe-install-strip-itcl \
@@ -19287,6 +19307,474 @@ maintainer-clean-gprof:
+.PHONY: configure-gprofng maybe-configure-gprofng
+maybe-configure-gprofng:
+@if gcc-bootstrap
+configure-gprofng: stage_current
+@endif gcc-bootstrap
+@if gprofng
+maybe-configure-gprofng: configure-gprofng
+configure-gprofng:
+ @: $(MAKE); $(unstage)
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gprofng/Makefile || exit 0; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gprofng; \
+ $(HOST_EXPORTS) \
+ echo Configuring in $(HOST_SUBDIR)/gprofng; \
+ cd "$(HOST_SUBDIR)/gprofng" || exit 1; \
+ case $(srcdir) in \
+ /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+ *) topdir=`echo $(HOST_SUBDIR)/gprofng/ | \
+ sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+ esac; \
+ module_srcdir=gprofng; \
+ $(SHELL) \
+ $$s/$$module_srcdir/configure \
+ --srcdir=$${topdir}/$$module_srcdir \
+ $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
+ --target=${target_alias} \
+ || exit 1
+@endif gprofng
+
+
+
+
+
+.PHONY: all-gprofng maybe-all-gprofng
+maybe-all-gprofng:
+@if gcc-bootstrap
+all-gprofng: stage_current
+@endif gcc-bootstrap
+@if gprofng
+TARGET-gprofng=all
+maybe-all-gprofng: all-gprofng
+all-gprofng: configure-gprofng
+ @: $(MAKE); $(unstage)
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/gprofng && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS) \
+ $(TARGET-gprofng))
+@endif gprofng
+
+
+
+
+.PHONY: check-gprofng maybe-check-gprofng
+maybe-check-gprofng:
+@if gprofng
+maybe-check-gprofng: check-gprofng
+
+check-gprofng:
+ @: $(MAKE); $(unstage)
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/gprofng && \
+ $(MAKE) $(FLAGS_TO_PASS) check)
+
+@endif gprofng
+
+.PHONY: install-gprofng maybe-install-gprofng
+maybe-install-gprofng:
+@if gprofng
+maybe-install-gprofng: install-gprofng
+
+install-gprofng: installdirs
+ @: $(MAKE); $(unstage)
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/gprofng && \
+ $(MAKE) $(FLAGS_TO_PASS) install)
+
+@endif gprofng
+
+.PHONY: install-strip-gprofng maybe-install-strip-gprofng
+maybe-install-strip-gprofng:
+@if gprofng
+maybe-install-strip-gprofng: install-strip-gprofng
+
+install-strip-gprofng: installdirs
+ @: $(MAKE); $(unstage)
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/gprofng && \
+ $(MAKE) $(FLAGS_TO_PASS) install-strip)
+
+@endif gprofng
+
+# Other targets (info, dvi, pdf, etc.)
+
+.PHONY: maybe-info-gprofng info-gprofng
+maybe-info-gprofng:
+@if gprofng
+maybe-info-gprofng: info-gprofng
+
+info-gprofng: \
+ configure-gprofng
+ @: $(MAKE); $(unstage)
+ @[ -f ./gprofng/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing info in gprofng"; \
+ (cd $(HOST_SUBDIR)/gprofng && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ info) \
+ || exit 1
+
+@endif gprofng
+
+.PHONY: maybe-dvi-gprofng dvi-gprofng
+maybe-dvi-gprofng:
+@if gprofng
+maybe-dvi-gprofng: dvi-gprofng
+
+dvi-gprofng: \
+ configure-gprofng
+ @: $(MAKE); $(unstage)
+ @[ -f ./gprofng/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing dvi in gprofng"; \
+ (cd $(HOST_SUBDIR)/gprofng && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ dvi) \
+ || exit 1
+
+@endif gprofng
+
+.PHONY: maybe-pdf-gprofng pdf-gprofng
+maybe-pdf-gprofng:
+@if gprofng
+maybe-pdf-gprofng: pdf-gprofng
+
+pdf-gprofng: \
+ configure-gprofng
+ @: $(MAKE); $(unstage)
+ @[ -f ./gprofng/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing pdf in gprofng"; \
+ (cd $(HOST_SUBDIR)/gprofng && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ pdf) \
+ || exit 1
+
+@endif gprofng
+
+.PHONY: maybe-html-gprofng html-gprofng
+maybe-html-gprofng:
+@if gprofng
+maybe-html-gprofng: html-gprofng
+
+html-gprofng: \
+ configure-gprofng
+ @: $(MAKE); $(unstage)
+ @[ -f ./gprofng/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing html in gprofng"; \
+ (cd $(HOST_SUBDIR)/gprofng && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ html) \
+ || exit 1
+
+@endif gprofng
+
+.PHONY: maybe-TAGS-gprofng TAGS-gprofng
+maybe-TAGS-gprofng:
+@if gprofng
+maybe-TAGS-gprofng: TAGS-gprofng
+
+TAGS-gprofng: \
+ configure-gprofng
+ @: $(MAKE); $(unstage)
+ @[ -f ./gprofng/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing TAGS in gprofng"; \
+ (cd $(HOST_SUBDIR)/gprofng && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ TAGS) \
+ || exit 1
+
+@endif gprofng
+
+.PHONY: maybe-install-info-gprofng install-info-gprofng
+maybe-install-info-gprofng:
+@if gprofng
+maybe-install-info-gprofng: install-info-gprofng
+
+install-info-gprofng: \
+ configure-gprofng \
+ info-gprofng
+ @: $(MAKE); $(unstage)
+ @[ -f ./gprofng/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing install-info in gprofng"; \
+ (cd $(HOST_SUBDIR)/gprofng && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ install-info) \
+ || exit 1
+
+@endif gprofng
+
+.PHONY: maybe-install-dvi-gprofng install-dvi-gprofng
+maybe-install-dvi-gprofng:
+@if gprofng
+maybe-install-dvi-gprofng: install-dvi-gprofng
+
+install-dvi-gprofng: \
+ configure-gprofng \
+ dvi-gprofng
+ @: $(MAKE); $(unstage)
+ @[ -f ./gprofng/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing install-dvi in gprofng"; \
+ (cd $(HOST_SUBDIR)/gprofng && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ install-dvi) \
+ || exit 1
+
+@endif gprofng
+
+.PHONY: maybe-install-pdf-gprofng install-pdf-gprofng
+maybe-install-pdf-gprofng:
+@if gprofng
+maybe-install-pdf-gprofng: install-pdf-gprofng
+
+install-pdf-gprofng: \
+ configure-gprofng \
+ pdf-gprofng
+ @: $(MAKE); $(unstage)
+ @[ -f ./gprofng/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing install-pdf in gprofng"; \
+ (cd $(HOST_SUBDIR)/gprofng && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ install-pdf) \
+ || exit 1
+
+@endif gprofng
+
+.PHONY: maybe-install-html-gprofng install-html-gprofng
+maybe-install-html-gprofng:
+@if gprofng
+maybe-install-html-gprofng: install-html-gprofng
+
+install-html-gprofng: \
+ configure-gprofng \
+ html-gprofng
+ @: $(MAKE); $(unstage)
+ @[ -f ./gprofng/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing install-html in gprofng"; \
+ (cd $(HOST_SUBDIR)/gprofng && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ install-html) \
+ || exit 1
+
+@endif gprofng
+
+.PHONY: maybe-installcheck-gprofng installcheck-gprofng
+maybe-installcheck-gprofng:
+@if gprofng
+maybe-installcheck-gprofng: installcheck-gprofng
+
+installcheck-gprofng: \
+ configure-gprofng
+ @: $(MAKE); $(unstage)
+ @[ -f ./gprofng/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing installcheck in gprofng"; \
+ (cd $(HOST_SUBDIR)/gprofng && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ installcheck) \
+ || exit 1
+
+@endif gprofng
+
+.PHONY: maybe-mostlyclean-gprofng mostlyclean-gprofng
+maybe-mostlyclean-gprofng:
+@if gprofng
+maybe-mostlyclean-gprofng: mostlyclean-gprofng
+
+mostlyclean-gprofng:
+ @: $(MAKE); $(unstage)
+ @[ -f ./gprofng/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing mostlyclean in gprofng"; \
+ (cd $(HOST_SUBDIR)/gprofng && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ mostlyclean) \
+ || exit 1
+
+@endif gprofng
+
+.PHONY: maybe-clean-gprofng clean-gprofng
+maybe-clean-gprofng:
+@if gprofng
+maybe-clean-gprofng: clean-gprofng
+
+clean-gprofng:
+ @: $(MAKE); $(unstage)
+ @[ -f ./gprofng/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing clean in gprofng"; \
+ (cd $(HOST_SUBDIR)/gprofng && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ clean) \
+ || exit 1
+
+@endif gprofng
+
+.PHONY: maybe-distclean-gprofng distclean-gprofng
+maybe-distclean-gprofng:
+@if gprofng
+maybe-distclean-gprofng: distclean-gprofng
+
+distclean-gprofng:
+ @: $(MAKE); $(unstage)
+ @[ -f ./gprofng/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing distclean in gprofng"; \
+ (cd $(HOST_SUBDIR)/gprofng && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ distclean) \
+ || exit 1
+
+@endif gprofng
+
+.PHONY: maybe-maintainer-clean-gprofng maintainer-clean-gprofng
+maybe-maintainer-clean-gprofng:
+@if gprofng
+maybe-maintainer-clean-gprofng: maintainer-clean-gprofng
+
+maintainer-clean-gprofng:
+ @: $(MAKE); $(unstage)
+ @[ -f ./gprofng/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing maintainer-clean in gprofng"; \
+ (cd $(HOST_SUBDIR)/gprofng && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ maintainer-clean) \
+ || exit 1
+
+@endif gprofng
+
+
+
.PHONY: configure-intl maybe-configure-intl
maybe-configure-intl:
@if gcc-bootstrap
@@ -66049,6 +66537,8 @@ all-stagetrain-gas: maybe-all-stagetrain-intl
all-stagefeedback-gas: maybe-all-stagefeedback-intl
all-stageautoprofile-gas: maybe-all-stageautoprofile-intl
all-stageautofeedback-gas: maybe-all-stageautofeedback-intl
+install-gprofng: maybe-install-opcodes
+install-gprofng: maybe-install-bfd
configure-ld: maybe-configure-intl
configure-stage1-ld: maybe-configure-stage1-intl
configure-stage2-ld: maybe-configure-stage2-intl
@@ -66489,6 +66979,7 @@ configure-gdb: stage_last
configure-gdbserver: stage_last
configure-gdbsupport: stage_last
configure-gprof: stage_last
+configure-gprofng: stage_last
configure-sid: stage_last
configure-sim: stage_last
configure-fastjar: stage_last
@@ -66523,6 +67014,12 @@ all-gprof: maybe-all-bfd
all-gprof: maybe-all-opcodes
all-gprof: maybe-all-intl
all-gprof: maybe-all-gas
+configure-gprofng: maybe-configure-intl
+all-gprofng: maybe-all-libiberty
+all-gprofng: maybe-all-bfd
+all-gprofng: maybe-all-opcodes
+all-gprofng: maybe-all-intl
+all-gprofng: maybe-all-gas
all-sid: maybe-all-libiberty
all-sid: maybe-all-bfd
all-sid: maybe-all-opcodes
@@ -800,6 +800,7 @@ enable_offload_targets
enable_offload_defaulted
enable_gold
enable_ld
+enable_gprofng
enable_compressed_debug_sections
enable_libquadmath
enable_libquadmath_support
@@ -1536,6 +1537,7 @@ Optional Features:
--enable-gold[=ARG] build gold [ARG={default,yes,no}]
--enable-ld[=ARG] build ld [ARG={default,yes,no}]
+ --enable-gprofng[=ARG] build gprofng [ARG={yes,no}]
--enable-compressed-debug-sections={all,gas,gold,ld,none}
Enable compressed debug sections for gas, gold or ld
by default
@@ -3110,6 +3112,22 @@ $as_echo "$as_me: WARNING: neither ld nor gold are enabled" >&2;}
;;
esac
+# Check whether --enable-gprofng was given.
+if test "${enable_gprofng+set}" = set; then :
+ enableval=$enable_gprofng; enable_gprofng=$enableval
+else
+ enable_gprofng=yes
+fi
+
+if test "$enable_gprofng" = "yes"; then
+ case "${target}" in
+ x86_64-*-linux* | i?86-*-linux* | aarch64-*-linux*)
+ configdirs="$configdirs gprofng"
+ ;;
+ esac
+fi
+
+
# PR gas/19109
# Decide the default method for compressing debug sections.
# Provide a configure time option to override our default.
@@ -401,6 +401,20 @@ case "${ENABLE_LD}" in
;;
esac
+AC_ARG_ENABLE(gprofng,
+[AS_HELP_STRING([[--enable-gprofng[=ARG]]],
+ [build gprofng @<:@ARG={yes,no}@:>@])],
+enable_gprofng=$enableval,
+enable_gprofng=yes)
+if test "$enable_gprofng" = "yes"; then
+ case "${target}" in
+ x86_64-*-linux* | i?86-*-linux* | aarch64-*-linux*)
+ configdirs="$configdirs gprofng"
+ ;;
+ esac
+fi
+
+
# PR gas/19109
# Decide the default method for compressing debug sections.
# Provide a configure time option to override our default.
new file mode 100644
@@ -0,0 +1,73 @@
+/* Copyright (C) 2021-2023 Free Software Foundation, Inc.
+ Contributed by Oracle.
+
+ This file is part of GNU Binutils.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _COLLECTORAPI_H
+#define _COLLECTORAPI_H
+
+/* This file contains function prototypes for the user-callable API
+ routines in libcollector. */
+
+#include <pthread.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+ /* Routine to record a sample in the experiment. */
+ extern void collector_sample (const char *name);
+
+ /* Routine to suspend data collection during an experiment. */
+ extern void collector_pause (void);
+
+ /* Routine to resume data collection during an experiment. */
+ extern void collector_resume (void);
+
+ /* Routine to suspend per-thread data collection during an experiment. */
+ extern void collector_thread_pause (pthread_t tid);
+
+ /* Routine to resume per-thread data collection during an experiment. */
+ extern void collector_thread_resume (pthread_t tid);
+
+ /* Routine to close the experiment, and stop all data collection. */
+ extern void collector_terminate_expt (void);
+
+ typedef struct
+ {
+ unsigned int offset;
+ unsigned int lineno;
+ } Lineno;
+
+ /* Routines to let libcollector know about dynamically loaded functions. */
+ extern void collector_func_load (const char *name, const char *alias,
+ const char *sourcename, void *vaddr,
+ int size, int lntsize, Lineno *lntable);
+
+ extern void collector_func_unload (void *vaddr);
+
+#ifdef NEED_COLLECTOR_MODULE
+ extern void collector_module_load (const char *modulename, void *vaddr);
+ extern void collector_module_unload (void *vaddr);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _COLLECTORAPI_H */
new file mode 100644
@@ -0,0 +1,89 @@
+/* Copyright (C) 2021-2023 Free Software Foundation, Inc.
+ Contributed by Oracle.
+
+ This file is part of GNU Binutils.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _LIBCOLLECTOR_H
+#define _LIBCOLLECTOR_H
+
+typedef struct
+{
+ unsigned int offset;
+ unsigned int lineno;
+} Lineno;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+ /* This file contains function prototypes for the user-callable API
+ routines in libcollector for C and C++ codes. */
+
+ /* Routine to record a sample in the experiment. */
+ void collector_sample (char *name);
+
+ /* Routine to suspend data collection during an experiment. */
+ void collector_pause (void);
+
+ /* Routine to resume data collection during an experiment. */
+ void collector_resume (void);
+
+ /* Routine to suspend per-thread data collection during an experiment. */
+ void collector_thread_pause (unsigned int tid);
+
+ /* Routine to resume per-thread data collection during an experiment. */
+ void collector_thread_resume (unsigned int tid);
+
+ /* Routine to close the experiment, and stop all data collection. */
+ void collector_terminate_expt (void);
+
+ /* Routines to let libcollector know about a dynamically loaded function. */
+ void collector_func_load (char *name, char *alias, char *sourcename,
+ void *vaddr, int size, int lntsize, Lineno *lntable);
+ void collector_func_unload (void *vaddr);
+
+ /* Define the weak symbols for the API. */
+ void collector_sample () __attribute__ ((weak));
+ void collector_pause () __attribute__ ((weak));
+ void collector_resume () __attribute__ ((weak));
+ void collector_thread_pause () __attribute__ ((weak));
+ void collector_thread_resume () __attribute__ ((weak));
+ void collector_terminate_expt () __attribute__ ((weak));
+ void collector_func_load () __attribute__ ((weak));
+ void collector_func_unload () __attribute__ ((weak));
+
+#ifdef __cplusplus
+}
+#endif
+
+/* Define the macros that actually get inserted in the caller's code. */
+#define collector_sample(x) (collector_sample ? collector_sample(x), 0 : 0)
+#define collector_pause() (collector_pause ? collector_pause(), 0 : 0)
+#define collector_resume() (collector_resume ? collector_resume(),0 : 0
+#define collector_thread_pause(tid) \
+ (collector_thread_pause ? collector_thread_pause(tid), 0 : 0)
+#define collector_thread_resume(tid) \
+ (collector_thread_resume ? collector_thread_resume(tid), 0 : 0)
+#define collector_terminate_expt() \
+ (collector_terminate_expt ? collector_terminate_expt(), 0 : 0)
+#define collector_func_load(x0,x1,x2,x3,x4,x5,x6) \
+ collector_func_load ? collector_func_load(x0,x1,x2,x3,x4,x5,x6), 0 : 0)
+#define collector_func_unload(x) \
+ (collector_func_unload ? collector_func_unload(x), 0 : 0)
+#endif /* _LIBCOLLECTOR_H */
new file mode 100644
@@ -0,0 +1,42 @@
+! Copyright (C) 2021-2023 Free Software Foundation, Inc.
+! Contributed by Oracle.
+!
+! This file is part of GNU Binutils.
+!
+! This program is free software; you can redistribute it and/or modify
+! it under the terms of the GNU General Public License as published by
+! the Free Software Foundation; either version 3, or (at your option)
+! any later version.
+!
+! This program is distributed in the hope that it will be useful,
+! but WITHOUT ANY WARRANTY; without even the implied warranty of
+! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+! GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License
+! along with this program; if not, write to the Free Software
+! Foundation, 51 Franklin Street - Fifth Floor, Boston,
+! MA 02110-1301, USA.
+!
+! Developer Sampling Collector interface include file
+
+ interface
+
+ ! Routine to record a sample in the experiment.
+ subroutine collector_sample(name)
+ character(len=*), intent(in) :: name
+ end subroutine
+
+ ! Routine to suspend data collection during an experiment.
+ subroutine collector_pause()
+ end subroutine
+
+ ! Routine to resume data collection during an experiment.
+ subroutine collector_resume()
+ end subroutine
+
+ ! Routine to stop all data collection and close the experiment.
+ subroutine collector_terminate_expt()
+ end subroutine
+
+ end interface