aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDavid O'Brien <obrien@FreeBSD.org>2002-04-23 15:05:33 +0000
committerDavid O'Brien <obrien@gcc.gnu.org>2002-04-23 15:05:33 +0000
commit271f61fb29c6583bf4250100f19f86dcb5d2ef29 (patch)
tree2d692bcfab6ac128788d04f5b5f2c804cc930682 /gcc
parentbdabbc80b9b04367e78137e0401c359799ee104e (diff)
downloadgcc-271f61fb29c6583bf4250100f19f86dcb5d2ef29.zip
gcc-271f61fb29c6583bf4250100f19f86dcb5d2ef29.tar.gz
gcc-271f61fb29c6583bf4250100f19f86dcb5d2ef29.tar.bz2
g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
2002-04-23 David O'Brien <obrien@FreeBSD.org> * g++spec.c: Use profiled libstdc++ and libm with -p/-pg. * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of these libraries. Approved by: Richard Henderson <rth@redhat.com> Message-ID: <20020422223253.A32678@redhat.com> From-SVN: r52667
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/freebsd.h2
-rw-r--r--gcc/cp/g++spec.c15
3 files changed, 21 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f513c73..fc34e7b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2002-04-23 David O'Brien <obrien@FreeBSD.org>
+ * g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
+ * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
+ these libraries.
+
+2002-04-23 David O'Brien <obrien@FreeBSD.org>
+
* config/freebsd.h(OBJECT_FORMAT_ELF): Define.
Tue Apr 23 14:24:25 CEST 2002 Jan Hubicka <jh@suse.cz>
diff --git a/gcc/config/freebsd.h b/gcc/config/freebsd.h
index cd09897..97b20c5 100644
--- a/gcc/config/freebsd.h
+++ b/gcc/config/freebsd.h
@@ -79,6 +79,8 @@ Boston, MA 02111-1307, USA. */
#undef WCHAR_UNSIGNED
#define WCHAR_UNSIGNED 0
+#define MATH_LIBRARY_PROFILE "-lm_p"
+
/* Code generation parameters. */
/* Use periods rather than dollar signs in special g++ assembler names.
diff --git a/gcc/cp/g++spec.c b/gcc/cp/g++spec.c
index fbbe599..c0e5c73 100644
--- a/gcc/cp/g++spec.c
+++ b/gcc/cp/g++spec.c
@@ -32,10 +32,16 @@ Boston, MA 02111-1307, USA. */
#ifndef MATH_LIBRARY
#define MATH_LIBRARY "-lm"
#endif
+#ifndef MATH_LIBRARY_PROFILE
+#define MATH_LIBRARY_PROFILE "-lm"
+#endif
#ifndef LIBSTDCXX
#define LIBSTDCXX "-lstdc++"
#endif
+#ifndef LIBSTDCXX_PROFILE
+#define LIBSTDCXX_PROFILE "-lstdc++"
+#endif
void
lang_specific_driver (in_argc, in_argv, in_added_libraries)
@@ -45,6 +51,9 @@ lang_specific_driver (in_argc, in_argv, in_added_libraries)
{
int i, j;
+ /* If non-zero, the user gave us the `-p' or `-pg' flag. */
+ int saw_profile_flag = 0;
+
/* If non-zero, the user gave us the `-v' flag. */
int saw_verbose_flag = 0;
@@ -137,6 +146,8 @@ lang_specific_driver (in_argc, in_argv, in_added_libraries)
}
else if (strcmp (argv[i], "-lc") == 0)
args[i] |= WITHLIBC;
+ else if (strcmp (argv[i], "-pg") == 0 || strcmp (argv[i], "-p") == 0)
+ saw_profile_flag++;
else if (strcmp (argv[i], "-v") == 0)
{
saw_verbose_flag = 1;
@@ -259,14 +270,14 @@ lang_specific_driver (in_argc, in_argv, in_added_libraries)
/* Add `-lstdc++' if we haven't already done so. */
if (library)
{
- arglist[j++] = LIBSTDCXX;
+ arglist[j++] = saw_profile_flag ? LIBSTDCXX_PROFILE : LIBSTDCXX;
added_libraries++;
}
if (saw_math)
arglist[j++] = saw_math;
else if (library && need_math)
{
- arglist[j++] = MATH_LIBRARY;
+ arglist[j++] = saw_profile_flag ? MATH_LIBRARY_PROFILE : MATH_LIBRARY;
added_libraries++;
}
if (saw_libc)