[PATCH] Fix PR78333
Christophe Lyon
christophe.lyon@linaro.org
Thu Nov 17 16:19:00 GMT 2016
On 17 November 2016 at 11:27, Christophe Lyon
<christophe.lyon@linaro.org> wrote:
> On 17 November 2016 at 10:53, Richard Biener <rguenther@suse.de> wrote:
>> On Thu, 17 Nov 2016, Rainer Orth wrote:
>>
>>> Hi Richard,
>>>
>>> >> Probably providing dummy implemenations as in the original testcase in
>>> >> the PR is enough?
>>> >
>>> > Maybe { dg-require weak } plus weak definitions of the cyg_profile funcs?
>>> > Or simply restrict the test to { target *-*-linux* }?
>>>
>>> the only existing dg-do run testcase (gcc.dg/20001117-1.c) just has
>>>
>>> void __attribute__((no_instrument_function))
>>> __cyg_profile_func_enter(void *this_fn, void *call_site)
>>> {
>>> if (call_site == (void *)0)
>>> abort ();
>>> }
>>>
>>> void __attribute__((no_instrument_function))
>>> __cyg_profile_func_exit(void *this_fn, void *call_site)
>>> {
>>> if (call_site == (void *)0)
>>> abort ();
>>> }
>>>
>>> In the case at hand, we could do with empty implementations. This
>>> certainly works on Solaris.
>>
>> Ok. Christophe, can you add the above and verify it works for you
>> (and then commit)?
>>
> OK, I'm taking a look.
>
I tested and committed (r242553) the attached patch (on arm-none-eabi and
arm-none-linux-gnueabihf). I used empty function as suggested by Rainer.
Thanks,
Christophe
>> Thanks,
>> Richard.
-------------- next part --------------
Fix PR78333 testcase for non-glibc systems.
2016-11-17 Christophe Lyon <christophe.lyon@linaro.org>
gcc/testsuite/
* gcc.dg/pr78333.c: Add empty implementations of
__cyg_profile_func_enter() and __cyg_profile_func_exit() to avoid
problems on non-glibc systems.
-------------- next part --------------
diff --git a/gcc/testsuite/gcc.dg/pr78333.c b/gcc/testsuite/gcc.dg/pr78333.c
index fd3669c..ca037e5 100644
--- a/gcc/testsuite/gcc.dg/pr78333.c
+++ b/gcc/testsuite/gcc.dg/pr78333.c
@@ -1,6 +1,19 @@
/* { dg-do link } */
/* { dg-options "-finstrument-functions" } */
+/* Add empty implementations of __cyg_profile_func_enter() and
+ __cyg_profile_func_exit() to avoid problems on non-glibc
+ systems. */
+void __attribute__((no_instrument_function))
+__cyg_profile_func_enter(void *this_fn, void *call_site)
+{
+}
+
+void __attribute__((no_instrument_function))
+__cyg_profile_func_exit(void *this_fn, void *call_site)
+{
+}
+
extern inline __attribute__((gnu_inline, always_inline)) int foo () { }
int main()
{
More information about the Gcc-patches
mailing list