* [PATCH] Introduce mangle_assembler_name hook, resolve parts of PR43157, PR46674.
@ 2010-12-10 12:56 Dave Korn
2010-12-10 14:39 ` Richard Guenther
2010-12-10 20:11 ` Jakub Jelinek
0 siblings, 2 replies; 7+ messages in thread
From: Dave Korn @ 2010-12-10 12:56 UTC (permalink / raw)
To: GCC Patches
[-- Attachment #1: Type: text/plain, Size: 2971 bytes --]
Hello,
The attached patch adds the new target hook discussed earlier(*) during the
tail-end of the thread(**) about enabling the lto linker plugin all the time.
The new hook, TARGET_MANGLE_ASSEMBLER_NAME, essentially does what
varasm.c#assemble_name() does, only in memory rather than to a file stream.
This allows the LTO symtabs to contain the real symbol names that match
exactly the symbols in the native object sections in fat LTO files; previously
they contained a mixture of C-level symbols and assembler-level symbols
(coming from anything with an explicit asm name specified), and things went
badly wrong on USER_LABEL_PREFIX-ing systems.
This hook provides us the mechanism to resolve the remaining part of PR46674
- a follow-on patch to make use of the new hook in
varasm.c#compute_visible_aliases() will actually resolve that bug - and it
resolves a problem shown up by the testcase for PR43157 that doesn't compile
correctly under LTO on U_L_P targets. It obsoletes the crude and approximate
hack of trying to do the equivalent in the lto-plugin now that it's not needed
any more, although I didn't remove that code straight away just in case we
need a get-out-of-jail-free-card; I'll rip it out next stage1.
gcc/ChangeLog:
2010-12-10 Dave Korn <...
PR middle-end/46674
PR lto/43157
* target.def (mangle_assembler_name): New target asm_out hook.
* targhooks.c (default_mangle_assembler_name): Add default hook
implementation.
* targhooks.h (default_mangle_assembler_name): Add prototype.
* lto-symtab.c (lto_symtab_register_decl): Use new hook when
processing DECL_ASSEMBLER_NAMEs for lto symtabs.
(lto_symtab_get_resolution): Likewise.
(lto_cgraph_replace_node): Likewise.
(lto_symtab_prevailing_decl): Likewise.
* lto-streamer-out.c (write_symbol): Likewise.
* doc/tm.texi.in (TARGET_MANGLE_ASSEMBLER_NAME): Add @hook directive.
* doc/tm.texi: Regenerate.
* config/i386/cygming.h (TARGET_MANGLE_ASSEMBLER_NAME): Define to
point at i386_pe_mangle_assembler_name.
* config/i386/winnt.c (i386_pe_mangle_assembler_name): New function.
* config/i386/i386-protos.h (i386_pe_mangle_assembler_name): Add
prototype.
lto-plugin/ChangeLog:
2010-12-10 Dave Korn <...
PR middle-end/46674
PR lto/43157
* configure.ac (SYM_STYLE): Don't AC_DEFINE.
* lto-plugin.c (sym_style): Don't use it; default to ss_none.
* configure: Regenerate.
* config.h.in: Likewise.
gcc/testsuite/ChangeLog:
2010-12-10 Dave Korn <...
PR middle-end/46674
PR lto/43157
* gcc.dg/pr43157.c: New file.
LTO-bootstrapped and tested c,c++,objc,obj-c++,fortran on
x86_64-unknown-linux-gnu without regressions. LTO-bootstrapped
c,c++,objc,obj-c++,fortran,java on i686-pc-cygwin, and tested
c,c++,objc,obj-c++ so far without regressions - java,fortran still running.
OK to commit?
cheers,
DaveK
--
(*) - http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00036.html
(**) - http://gcc.gnu.org/ml/gcc-patches/2010-12/threads.html#00031
[-- Attachment #2: mangle-asm-hook-pr43157.diff --]
[-- Type: text/x-c, Size: 9687 bytes --]
Index: gcc/target.def
===================================================================
--- gcc/target.def (revision 167484)
+++ gcc/target.def (working copy)
@@ -524,6 +524,18 @@ DEFHOOK_UNDOC
bool ,(unsigned char code),
default_print_operand_punct_valid_p)
+/* Given a symbol name, perform same mangling as assemble_name and
+ ASM_OUTPUT_LABELREF, returning result as an IDENTIFIER_NODE. */
+DEFHOOK
+(mangle_assembler_name,
+ "Given a symbol @var{name}, perform same mangling as @code{varasm.c}'s\
+ @code{assemble_name}, but in memory rather than to a file stream, returning\
+ result as an @code{IDENTIFIER_NODE}. Required for correct LTO symtabs. The\
+ default implementation calls the @code{TARGET_STRIP_NAME_ENCODING} hook and\
+ then prepends the @code{USER_LABEL_PREFIX}, if any.",
+ tree, (const char *name),
+ default_mangle_assembler_name)
+
HOOK_VECTOR_END (asm_out)
/* Functions relating to instruction scheduling. All of these
Index: gcc/targhooks.c
===================================================================
--- gcc/targhooks.c (revision 167484)
+++ gcc/targhooks.c (working copy)
@@ -358,6 +358,17 @@ default_print_operand_punct_valid_p (unsigned char
#endif
}
+/* The default implementation of TARGET_MANGLE_ASSEMBLER_NAME. */
+tree
+default_mangle_assembler_name (const char *name ATTRIBUTE_UNUSED)
+{
+ const char *skipped = name + (*name == '*');
+ const char *stripped = targetm.strip_name_encoding (skipped);
+ if (*name != '*' && user_label_prefix[0])
+ stripped = ACONCAT ((user_label_prefix, stripped, NULL));
+ return get_identifier (stripped);
+}
+
/* The default implementation of TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA. */
bool
Index: gcc/targhooks.h
===================================================================
--- gcc/targhooks.h (revision 167484)
+++ gcc/targhooks.h (working copy)
@@ -65,6 +65,8 @@ extern bool hook_callee_copies_named
extern void default_print_operand (FILE *, rtx, int);
extern void default_print_operand_address (FILE *, rtx);
extern bool default_print_operand_punct_valid_p (unsigned char);
+extern tree default_mangle_assembler_name (const char *);
+
extern bool default_asm_output_addr_const_extra (FILE *, rtx);
extern bool default_scalar_mode_supported_p (enum machine_mode);
Index: gcc/lto-symtab.c
===================================================================
--- gcc/lto-symtab.c (revision 167484)
+++ gcc/lto-symtab.c (working copy)
@@ -155,7 +155,8 @@ lto_symtab_register_decl (tree decl,
gcc_assert (!DECL_ABSTRACT (decl));
new_entry = ggc_alloc_cleared_lto_symtab_entry_def ();
- new_entry->id = DECL_ASSEMBLER_NAME (decl);
+ new_entry->id = (*targetm.asm_out.mangle_assembler_name)
+ (IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)));
new_entry->decl = decl;
new_entry->resolution = resolution;
new_entry->file_data = file_data;
@@ -190,7 +191,8 @@ lto_symtab_get_resolution (tree decl)
gcc_assert (DECL_ASSEMBLER_NAME_SET_P (decl));
- e = lto_symtab_get (DECL_ASSEMBLER_NAME (decl));
+ e = lto_symtab_get ((*targetm.asm_out.mangle_assembler_name)
+ (IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl))));
while (e && e->decl != decl)
e = e->next;
if (!e)
@@ -218,7 +220,8 @@ lto_cgraph_replace_node (struct cgraph_node *node,
cgraph_node_name (node), node->uid,
cgraph_node_name (prevailing_node),
prevailing_node->uid,
- IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (node->decl)));
+ IDENTIFIER_POINTER ((*targetm.asm_out.mangle_assembler_name)
+ (IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (node->decl)))));
}
if (prevailing_node->same_body_alias)
@@ -836,7 +839,8 @@ lto_symtab_prevailing_decl (tree decl)
gcc_assert (DECL_ASSEMBLER_NAME_SET_P (decl));
/* Walk through the list of candidates and return the one we merged to. */
- ret = lto_symtab_get (DECL_ASSEMBLER_NAME (decl));
+ ret = lto_symtab_get ((*targetm.asm_out.mangle_assembler_name)
+ (IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl))));
if (!ret)
return NULL_TREE;
Index: gcc/lto-streamer-out.c
===================================================================
--- gcc/lto-streamer-out.c (revision 167484)
+++ gcc/lto-streamer-out.c (working copy)
@@ -2368,16 +2368,14 @@ write_symbol (struct lto_streamer_cache_d *cache,
name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (t));
+ /* This behaves like assemble_name_raw in varasm.c, performing the
+ same name manipulations that ASM_OUTPUT_LABELREF does. */
+ name = IDENTIFIER_POINTER ((*targetm.asm_out.mangle_assembler_name) (name));
+
if (pointer_set_contains (seen, name))
return;
pointer_set_insert (seen, name);
- /* FIXME lto: this is from assemble_name_raw in varasm.c. For some
- architectures we might have to do the same name manipulations that
- ASM_OUTPUT_LABELREF does. */
- if (name[0] == '*')
- name = &name[1];
-
lto_streamer_cache_lookup (cache, t, &slot_num);
gcc_assert (slot_num >= 0);
Index: gcc/doc/tm.texi.in
===================================================================
--- gcc/doc/tm.texi.in (revision 167484)
+++ gcc/doc/tm.texi.in (working copy)
@@ -8011,6 +8011,8 @@ is customary on your operating system, as it is in
systems. This macro is used in @code{assemble_name}.
@end defmac
+@hook TARGET_MANGLE_ASSEMBLER_NAME
+
@defmac ASM_OUTPUT_SYMBOL_REF (@var{stream}, @var{sym})
A C statement (sans semicolon) to output a reference to
@code{SYMBOL_REF} @var{sym}. If not defined, @code{assemble_name}
Index: gcc/config/i386/cygming.h
===================================================================
--- gcc/config/i386/cygming.h (revision 167484)
+++ gcc/config/i386/cygming.h (working copy)
@@ -252,6 +252,10 @@ do { \
fputs ((NAME), (STREAM)); \
} while (0)
+/* This does much the same in memory rather than to a stream. */
+#undef TARGET_MANGLE_ASSEMBLER_NAME
+#define TARGET_MANGLE_ASSEMBLER_NAME i386_pe_mangle_assembler_name
+
\f
/* Emit code to check the stack when allocating more than 4000
bytes in one go. */
Index: gcc/config/i386/winnt.c
===================================================================
--- gcc/config/i386/winnt.c (revision 167484)
+++ gcc/config/i386/winnt.c (working copy)
@@ -244,6 +244,20 @@ i386_pe_mangle_decl_assembler_name (tree decl, tre
return (new_id ? new_id : id);
}
+/* This hook behaves the same as varasm.c/assemble_name(), but
+ generates the name into memory rather than outputting it to
+ a file stream. */
+
+tree
+i386_pe_mangle_assembler_name (const char *name ATTRIBUTE_UNUSED)
+{
+ const char *skipped = name + (*name == '*');
+ const char *stripped = targetm.strip_name_encoding (skipped);
+ if (*name != '*' && *user_label_prefix && *stripped != FASTCALL_PREFIX)
+ stripped = ACONCAT ((user_label_prefix, stripped, NULL));
+ return get_identifier (stripped);
+}
+
void
i386_pe_encode_section_info (tree decl, rtx rtl, int first)
{
Index: gcc/config/i386/i386-protos.h
===================================================================
--- gcc/config/i386/i386-protos.h (revision 167484)
+++ gcc/config/i386/i386-protos.h (working copy)
@@ -226,6 +226,7 @@ extern void i386_pe_file_end (void);
extern void i386_pe_start_function (FILE *, const char *, tree);
extern void i386_pe_end_function (FILE *, const char *, tree);
extern tree i386_pe_mangle_decl_assembler_name (tree, tree);
+extern tree i386_pe_mangle_assembler_name (const char *);
extern void i386_pe_seh_init (FILE *);
extern void i386_pe_seh_end_prologue (FILE *);
Index: lto-plugin/configure.ac
===================================================================
--- lto-plugin/configure.ac (revision 167484)
+++ lto-plugin/configure.ac (working copy)
@@ -9,18 +9,6 @@ AC_SYS_LARGEFILE
AM_PROG_LIBTOOL
ACX_LT_HOST_FLAGS
AC_SUBST(target_noncanonical)
-# Trying to get this information from gcc's config is tricky.
-case $target in
- x86_64*-mingw*)
- AC_DEFINE([SYM_STYLE], [ss_none], [Default symbol style])
- ;;
- *-cygwin* | i?86*-mingw* )
- AC_DEFINE([SYM_STYLE], [ss_win32], [Default symbol style])
- ;;
- *)
- AC_DEFINE([SYM_STYLE], [ss_none], [Default symbol style])
- ;;
-esac
AC_TYPE_INT64_T
AC_TYPE_UINT64_T
AC_HEADER_SYS_WAIT
Index: lto-plugin/lto-plugin.c
===================================================================
--- lto-plugin/lto-plugin.c (revision 167484)
+++ lto-plugin/lto-plugin.c (working copy)
@@ -152,10 +152,10 @@ static char debug;
static char nop;
static char *resolution_file = NULL;
-/* Set by default from configure.ac, but can be overridden at runtime
+/* Not used by default, but can be overridden at runtime
by using -plugin-opt=-sym-style={none,win32,underscore|uscore}
(in fact, only first letter of style arg is checked.) */
-static enum symbol_style sym_style = SYM_STYLE;
+static enum symbol_style sym_style = ss_none;
static void
check_1 (int gate, enum ld_plugin_level level, const char *text)
Index: gcc/testsuite/gcc.dg/pr43157.c
===================================================================
--- gcc/testsuite/gcc.dg/pr43157.c (revision 0)
+++ gcc/testsuite/gcc.dg/pr43157.c (revision 0)
@@ -0,0 +1,19 @@
+/* { dg-do link } */
+/* { dg-require-effective-target lto } */
+/* { dg-options "-O1 -flto -fuse-linker-plugin" } */
+
+#define LABEL3(pfx, x) # pfx x
+#define LABEL2(pfx, x) LABEL3(pfx, x)
+#define LABEL(x) LABEL2(__USER_LABEL_PREFIX__, x)
+
+unsigned int factorial_ (unsigned int) __asm__ (LABEL ("factorial"));
+
+unsigned int factorial (unsigned int i)
+{
+ return i > 1 ? i * factorial_ (i - 1) : 1;
+}
+
+int main (void)
+{
+ return factorial (5);
+}
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] Introduce mangle_assembler_name hook, resolve parts of PR43157, PR46674.
2010-12-10 12:56 [PATCH] Introduce mangle_assembler_name hook, resolve parts of PR43157, PR46674 Dave Korn
@ 2010-12-10 14:39 ` Richard Guenther
2010-12-10 14:43 ` Dave Korn
2010-12-10 20:11 ` Jakub Jelinek
1 sibling, 1 reply; 7+ messages in thread
From: Richard Guenther @ 2010-12-10 14:39 UTC (permalink / raw)
To: Dave Korn; +Cc: GCC Patches
On Fri, Dec 10, 2010 at 2:08 PM, Dave Korn <dave.korn.cygwin@gmail.com> wrote:
>
> Hello,
>
> The attached patch adds the new target hook discussed earlier(*) during the
> tail-end of the thread(**) about enabling the lto linker plugin all the time.
> The new hook, TARGET_MANGLE_ASSEMBLER_NAME, essentially does what
> varasm.c#assemble_name() does, only in memory rather than to a file stream.
> This allows the LTO symtabs to contain the real symbol names that match
> exactly the symbols in the native object sections in fat LTO files; previously
> they contained a mixture of C-level symbols and assembler-level symbols
> (coming from anything with an explicit asm name specified), and things went
> badly wrong on USER_LABEL_PREFIX-ing systems.
>
> This hook provides us the mechanism to resolve the remaining part of PR46674
> - a follow-on patch to make use of the new hook in
> varasm.c#compute_visible_aliases() will actually resolve that bug - and it
> resolves a problem shown up by the testcase for PR43157 that doesn't compile
> correctly under LTO on U_L_P targets. It obsoletes the crude and approximate
> hack of trying to do the equivalent in the lto-plugin now that it's not needed
> any more, although I didn't remove that code straight away just in case we
> need a get-out-of-jail-free-card; I'll rip it out next stage1.
The
+ const char *skipped = name + (*name == '*');
used in two places looks too clever to me. Instead write
name + (*name == '*' ? 1 : 0);
Ok with that change.
Thanks!
Richard.
> gcc/ChangeLog:
>
> 2010-12-10 Dave Korn <...
>
> PR middle-end/46674
> PR lto/43157
> * target.def (mangle_assembler_name): New target asm_out hook.
> * targhooks.c (default_mangle_assembler_name): Add default hook
> implementation.
> * targhooks.h (default_mangle_assembler_name): Add prototype.
> * lto-symtab.c (lto_symtab_register_decl): Use new hook when
> processing DECL_ASSEMBLER_NAMEs for lto symtabs.
> (lto_symtab_get_resolution): Likewise.
> (lto_cgraph_replace_node): Likewise.
> (lto_symtab_prevailing_decl): Likewise.
> * lto-streamer-out.c (write_symbol): Likewise.
> * doc/tm.texi.in (TARGET_MANGLE_ASSEMBLER_NAME): Add @hook directive.
> * doc/tm.texi: Regenerate.
> * config/i386/cygming.h (TARGET_MANGLE_ASSEMBLER_NAME): Define to
> point at i386_pe_mangle_assembler_name.
> * config/i386/winnt.c (i386_pe_mangle_assembler_name): New function.
> * config/i386/i386-protos.h (i386_pe_mangle_assembler_name): Add
> prototype.
>
> lto-plugin/ChangeLog:
>
> 2010-12-10 Dave Korn <...
>
> PR middle-end/46674
> PR lto/43157
> * configure.ac (SYM_STYLE): Don't AC_DEFINE.
> * lto-plugin.c (sym_style): Don't use it; default to ss_none.
> * configure: Regenerate.
> * config.h.in: Likewise.
>
> gcc/testsuite/ChangeLog:
>
> 2010-12-10 Dave Korn <...
>
> PR middle-end/46674
> PR lto/43157
> * gcc.dg/pr43157.c: New file.
>
> LTO-bootstrapped and tested c,c++,objc,obj-c++,fortran on
> x86_64-unknown-linux-gnu without regressions. LTO-bootstrapped
> c,c++,objc,obj-c++,fortran,java on i686-pc-cygwin, and tested
> c,c++,objc,obj-c++ so far without regressions - java,fortran still running.
>
> OK to commit?
>
> cheers,
> DaveK
> --
> (*) - http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00036.html
> (**) - http://gcc.gnu.org/ml/gcc-patches/2010-12/threads.html#00031
>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] Introduce mangle_assembler_name hook, resolve parts of PR43157, PR46674.
2010-12-10 14:39 ` Richard Guenther
@ 2010-12-10 14:43 ` Dave Korn
0 siblings, 0 replies; 7+ messages in thread
From: Dave Korn @ 2010-12-10 14:43 UTC (permalink / raw)
To: Richard Guenther; +Cc: GCC Patches
On 10/12/2010 13:35, Richard Guenther wrote:
> Ok with that change.
Committed revision 167688.
cheers,
DaveK
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] Introduce mangle_assembler_name hook, resolve parts of PR43157, PR46674.
2010-12-10 12:56 [PATCH] Introduce mangle_assembler_name hook, resolve parts of PR43157, PR46674 Dave Korn
2010-12-10 14:39 ` Richard Guenther
@ 2010-12-10 20:11 ` Jakub Jelinek
2010-12-11 1:26 ` Dave Korn
1 sibling, 1 reply; 7+ messages in thread
From: Jakub Jelinek @ 2010-12-10 20:11 UTC (permalink / raw)
To: Dave Korn; +Cc: GCC Patches
On Fri, Dec 10, 2010 at 01:08:07PM +0000, Dave Korn wrote:
> gcc/testsuite/ChangeLog:
>
> 2010-12-10 Dave Korn <...
>
> PR middle-end/46674
> PR lto/43157
> * gcc.dg/pr43157.c: New file.
>
> --- gcc/testsuite/gcc.dg/pr43157.c (revision 0)
> +++ gcc/testsuite/gcc.dg/pr43157.c (revision 0)
> @@ -0,0 +1,19 @@
> +/* { dg-do link } */
> +/* { dg-require-effective-target lto } */
> +/* { dg-options "-O1 -flto -fuse-linker-plugin" } */
> +
> +#define LABEL3(pfx, x) # pfx x
> +#define LABEL2(pfx, x) LABEL3(pfx, x)
> +#define LABEL(x) LABEL2(__USER_LABEL_PREFIX__, x)
> +
> +unsigned int factorial_ (unsigned int) __asm__ (LABEL ("factorial"));
> +
> +unsigned int factorial (unsigned int i)
> +{
> + return i > 1 ? i * factorial_ (i - 1) : 1;
> +}
> +
> +int main (void)
> +{
> + return factorial (5);
> +}
The testcase fails when using GLD which doesn't support plugins.
I guess you want
/* { dg-require-linker-plugin "" } */
Jakub
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] Introduce mangle_assembler_name hook, resolve parts of PR43157, PR46674.
2010-12-10 20:11 ` Jakub Jelinek
@ 2010-12-11 1:26 ` Dave Korn
2010-12-13 16:46 ` Richard Guenther
0 siblings, 1 reply; 7+ messages in thread
From: Dave Korn @ 2010-12-11 1:26 UTC (permalink / raw)
To: Jakub Jelinek; +Cc: GCC Patches
[-- Attachment #1: Type: text/plain, Size: 821 bytes --]
On 10/12/2010 19:53, Jakub Jelinek wrote:
> On Fri, Dec 10, 2010 at 01:08:07PM +0000, Dave Korn wrote:
>> gcc/testsuite/ChangeLog:
>>
>> 2010-12-10 Dave Korn <...
>>
>> PR middle-end/46674
>> PR lto/43157
>> * gcc.dg/pr43157.c: New file.
>>
>> --- gcc/testsuite/gcc.dg/pr43157.c (revision 0)
>> +++ gcc/testsuite/gcc.dg/pr43157.c (revision 0)
>> @@ -0,0 +1,19 @@
>> +/* { dg-do link } */
>> +/* { dg-require-effective-target lto } */
>> +/* { dg-options "-O1 -flto -fuse-linker-plugin" } */
> The testcase fails when using GLD which doesn't support plugins.
> I guess you want
> /* { dg-require-linker-plugin "" } */
>
> Jakub
Oops, sorry, yes, you're certainly correct there.
gcc/testsuite/ChangeLog:
* gcc.dg/pr43157.c: Add dg-require-linker-plugin directive.
OK once tested?
cheers,
DaveK
[-- Attachment #2: pr43157-testcase-fix.diff --]
[-- Type: text/x-c, Size: 417 bytes --]
Index: gcc/testsuite/gcc.dg/pr43157.c
===================================================================
--- gcc/testsuite/gcc.dg/pr43157.c (revision 167688)
+++ gcc/testsuite/gcc.dg/pr43157.c (working copy)
@@ -1,5 +1,6 @@
/* { dg-do link } */
/* { dg-require-effective-target lto } */
+/* { dg-require-linker-plugin "" } */
/* { dg-options "-O1 -flto -fuse-linker-plugin" } */
#define LABEL3(pfx, x) # pfx x
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] Introduce mangle_assembler_name hook, resolve parts of PR43157, PR46674.
2010-12-11 1:26 ` Dave Korn
@ 2010-12-13 16:46 ` Richard Guenther
2010-12-15 10:31 ` Dave Korn
0 siblings, 1 reply; 7+ messages in thread
From: Richard Guenther @ 2010-12-13 16:46 UTC (permalink / raw)
To: Dave Korn; +Cc: Jakub Jelinek, GCC Patches
On Fri, Dec 10, 2010 at 9:52 PM, Dave Korn <dave.korn.cygwin@gmail.com> wrote:
> On 10/12/2010 19:53, Jakub Jelinek wrote:
>> On Fri, Dec 10, 2010 at 01:08:07PM +0000, Dave Korn wrote:
>>> gcc/testsuite/ChangeLog:
>>>
>>> 2010-12-10 Dave Korn <...
>>>
>>> PR middle-end/46674
>>> PR lto/43157
>>> * gcc.dg/pr43157.c: New file.
>>>
>>> --- gcc/testsuite/gcc.dg/pr43157.c (revision 0)
>>> +++ gcc/testsuite/gcc.dg/pr43157.c (revision 0)
>>> @@ -0,0 +1,19 @@
>>> +/* { dg-do link } */
>>> +/* { dg-require-effective-target lto } */
>>> +/* { dg-options "-O1 -flto -fuse-linker-plugin" } */
>
>> The testcase fails when using GLD which doesn't support plugins.
>> I guess you want
>> /* { dg-require-linker-plugin "" } */
>>
>> Jakub
>
> Oops, sorry, yes, you're certainly correct there.
>
> gcc/testsuite/ChangeLog:
>
> * gcc.dg/pr43157.c: Add dg-require-linker-plugin directive.
>
> OK once tested?
Ok.
Thanks,
Richard.
> cheers,
> DaveK
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] Introduce mangle_assembler_name hook, resolve parts of PR43157, PR46674.
2010-12-13 16:46 ` Richard Guenther
@ 2010-12-15 10:31 ` Dave Korn
0 siblings, 0 replies; 7+ messages in thread
From: Dave Korn @ 2010-12-15 10:31 UTC (permalink / raw)
To: Richard Guenther; +Cc: Jakub Jelinek, GCC Patches
On 13/12/2010 16:36, Richard Guenther wrote:
> On Fri, Dec 10, 2010 at 9:52 PM, Dave Korn <dave.korn.cygwin@gmail.com> wrote:
>> On 10/12/2010 19:53, Jakub Jelinek wrote:
>>> The testcase fails when using GLD which doesn't support plugins.
>>> I guess you want
>>> /* { dg-require-linker-plugin "" } */
>>>
>>> Jakub
>> Oops, sorry, yes, you're certainly correct there.
>>
>> gcc/testsuite/ChangeLog:
>>
>> * gcc.dg/pr43157.c: Add dg-require-linker-plugin directive.
>>
>> OK once tested?
>
> Ok.
Committed revision 167848.
cheers,
DaveK
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2010-12-15 9:52 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-12-10 12:56 [PATCH] Introduce mangle_assembler_name hook, resolve parts of PR43157, PR46674 Dave Korn
2010-12-10 14:39 ` Richard Guenther
2010-12-10 14:43 ` Dave Korn
2010-12-10 20:11 ` Jakub Jelinek
2010-12-11 1:26 ` Dave Korn
2010-12-13 16:46 ` Richard Guenther
2010-12-15 10:31 ` Dave Korn
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).