differently makes sense, but surely not most of them.
Whether -profile really makes sense for FreeBSD, or whether -profile
specs for FreeBSD should be removed, seems unclear. I added it to
freebsd.opt on the basis of freebsd-spec.h:FBSD_STARTFILE_SPEC;
FBSD_LIB_SPEC doesn't handle it, but links with -lc_p unconditionally
for -pg. I don't know what's in -lc_p on FreeBSD (whether it's just
profiling support code, or whether as with glibc it has profiling
enabled for all the libc functions).
cp/g++spec.c and go/gospec.c know about linking with different
versions of certain libraries (in particular libm) for profiling on
certain targets; for that driver code, profiling means -p or -pg and
-profile is unknown.
(I do not have specific recommendations for cleaning things up in this
area.)
2011-02-14 Joseph Myers <joseph@codesourcery.com>
* config/i386/freebsd64.h (CC1_SPEC): Define.
* config/i386/linux64.h (CC1_SPEC): Define.
* config/i386/x86-64.h (CC1_SPEC): Don't define.
===================================================================
@@ -1,5 +1,6 @@
/* OS independent definitions for AMD x86-64.
- Copyright (C) 2001, 2005, 2007, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005, 2007, 2009, 2010, 2011
+ Free Software Foundation, Inc.
Contributed by Bo Thorsen <bo@suse.de>.
This file is part of GCC.
@@ -48,9 +49,6 @@ see the files COPYING3 and COPYING.RUNTI
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE 32
-#undef CC1_SPEC
-#define CC1_SPEC "%(cc1_cpu) %{profile:-p}"
-
#undef ASM_SPEC
#define ASM_SPEC "%{m32:--32} %{m64:--64}"
===================================================================
@@ -1,5 +1,5 @@
/* Definitions for AMD x86-64 running FreeBSD with ELF format
- Copyright (C) 2002, 2004, 2007, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2007, 2010, 2011 Free Software Foundation, Inc.
Contributed by David O'Brien <obrien@FreeBSD.org>
This file is part of GCC.
@@ -25,6 +25,9 @@ along with GCC; see the file COPYING3.
#define SUBTARGET_EXTRA_SPECS \
{ "fbsd_dynamic_linker", FBSD_DYNAMIC_LINKER }
+#undef CC1_SPEC
+#define CC1_SPEC "%(cc1_cpu) %{profile:-p}"
+
/* Provide a LINK_SPEC appropriate for the FreeBSD/x86-64 ELF target.
This is a copy of LINK_SPEC from <i386/freebsd.h> tweaked for
the x86-64 target. */
===================================================================
@@ -1,5 +1,5 @@
/* Definitions for AMD x86-64 running Linux-based GNU systems with ELF format.
- Copyright (C) 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+ Copyright (C) 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
Contributed by Jan Hubicka <jh@suse.cz>, based on linux.h.
@@ -40,6 +40,9 @@ see the files COPYING3 and COPYING.RUNTI
#undef CPP_SPEC
#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
+#undef CC1_SPEC
+#define CC1_SPEC "%(cc1_cpu) %{profile:-p}"
+
/* The svr4 ABI for the i386 says that records and unions are returned
in memory. In the 64bit compilation we will turn this flag off in
ix86_option_override_internal, as we never do pcc_struct_return