This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] LTO support for Mach-O (apple-darwin)
On Fri, May 14, 2010 at 1:51 PM, Diego Novillo <dnovillo@google.com> wrote:
> On Fri, May 14, 2010 at 01:48, Iain Sandoe <idsandoe@googlemail.com> wrote:
>> could someone OK this?
>> ... ?it works for me on powerpc*-apple-darwin for several days...
>
> Please post a complete unified patch. ?I've just read the thread and
> there were several patches in addition to the original one. ?I'm not
> sure what to review.
This. Apparently tested by Iain? :-)
ChangeLog:
* configure.ac (--enable-lto): All *-apple-darwin* now support LTO.
* configure: Regenerate.
gcc/ChangeLog:
* config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
lto-macho as lto_binary_reader.
* darwin.c (darwin_asm_named_section): Do not add assembler comment
after .section directive; just print it before the directive instead.
Index: configure.ac
===================================================================
--- configure.ac (revision 159173)
+++ configure.ac (working copy)
@@ -1803,7 +1803,7 @@ fi],[if test x"$default_enable_lto" = x"
# -flto it won't be needed until after installation anyway.
case $target in
*-cygwin*|*-mingw*) ;;
- x86_64-apple-darwin*) ;;
+ *-apple-darwin*) ;;
*) if test x"$enable_lto" = x"yes"; then
AC_MSG_ERROR([LTO support is not enabled for this target.])
fi
Index: configure
===================================================================
--- configure (revision 159173)
+++ configure (working copy)
@@ -6686,7 +6686,7 @@ else
# -flto it won't be needed until after installation anyway.
case $target in
*-cygwin*|*-mingw*) ;;
- x86_64-apple-darwin*) ;;
+ *-apple-darwin*) ;;
*) if test x"$enable_lto" = x"yes"; then
as_fn_error "LTO support is not enabled for this target." "$LINENO" 5
fi
Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc (revision 159173)
+++ gcc/config.gcc (working copy)
@@ -1888,12 +1888,14 @@ powerpc-*-darwin*)
*-darwin[0-6]*)
;;
esac
+ lto_binary_reader=lto-macho
extra_headers=altivec.h
;;
powerpc64-*-darwin*)
tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
extra_options="${extra_options} ${cpu_type}/darwin.opt"
# We're omitting t-darwin8 to avoid building any multilibs
+ lto_binary_reader=lto-macho
extra_headers=altivec.h
;;
powerpc*-*-freebsd*)
Index: gcc/config/darwin.c
===================================================================
--- gcc/config/darwin.c (revision 159173)
+++ gcc/config/darwin.c (working copy)
@@ -1460,8 +1460,9 @@ darwin_asm_named_section (const char *na
obstack_grow (<o_section_names_obstack, "\\0\"\n", 4);
/* Output the dummy section name. */
- fprintf (asm_out_file, "\t.section %s,__%08X,regular,debug\t# %s\n",
- LTO_SEGMENT_NAME, lto_section_names_offset, name);
+ fprintf (asm_out_file, "\t# %s\n", name);
+ fprintf (asm_out_file, "\t.section %s,__%08X,regular,debug\n",
+ LTO_SEGMENT_NAME, lto_section_names_offset);
/* Update the offset for the next section name. Make sure we stay
within reasonable length. */