https://gcc.gnu.org/bugzilla/show_bug.cgi?id=40528
Jeffrey A. Law changed:
What|Removed |Added
Status|NEW |RESOLVED
CC|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=40528
Yuri Gribov changed:
What|Removed |Added
CC||tetra2005 at gmail dot com
--- Comment
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40528
--- Comment #16 from Agner Fog agner at agner dot org 2011-07-08 08:52:32 UTC
---
(In reply to comment #15)
(In reply to comment #14)
(In reply to comment #13)
What is the status of this issue?
It is implemented on ifunc branch.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40528
--- Comment #15 from Agner Fog agner at agner dot org 2011-05-30 13:13:06 UTC
---
(In reply to comment #14)
(In reply to comment #13)
What is the status of this issue?
It is implemented on ifunc branch.
Is option 3 implemented?
Yes,
--- Comment #13 from agner at agner dot org 2010-02-21 16:21 ---
What is the status of this issue?
Is option 3 implemented?
Which versions of Linux and binutils support IFUNC?
Any plans for BSD and Mac?
--
agner at agner dot org changed:
What|Removed
--- Comment #14 from hjl dot tools at gmail dot com 2010-02-21 16:34
---
(In reply to comment #13)
What is the status of this issue?
It is implemented on ifunc branch.
Is option 3 implemented?
Yes, on ifunc branch.
Which versions of Linux and binutils support IFUNC?
You need at
--- Comment #12 from hjl at gcc dot gnu dot org 2009-06-28 15:14 ---
Subject: Bug 40528
Author: hjl
Date: Sun Jun 28 15:14:09 2009
New Revision: 149026
URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=149026
Log:
gcc/
2009-06-28 H.J. Lu hongjiu...@intel.com
PR c/40528
--- Comment #8 from hjl dot tools at gmail dot com 2009-06-26 16:14 ---
For C++:
class Foo
{
private:
virtual void foo1 ()
{
printf (I am %s\n, __PRETTY_FUNCTION__);
}
public:
virtual void __attribute__ ((ifunc)) foo ()
{
return Foo::foo1;
}
};
class
--- Comment #9 from hjl dot tools at gmail dot com 2009-06-26 20:20 ---
Created an attachment (id=18076)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18076action=view)
Ifunc examples in C and C++
Here are some C/C++ examples with valid and invalid cases.
--
hjl dot tools at
--- Comment #10 from hjl dot tools at gmail dot com 2009-06-26 20:39
---
Created an attachment (id=18077)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18077action=view)
A C++ program with ifunc attribute
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40528
--- Comment #11 from hjl dot tools at gmail dot com 2009-06-26 20:41
---
Created an attachment (id=18078)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18078action=view)
Static Linux/ia32 binary of prog.C
I got
[...@gnu-6 c++]$ ./static
I have SSE4.2
I support 64bit.
I have
--- Comment #7 from hjl dot tools at gmail dot com 2009-06-25 14:12 ---
It is easier to support C++ with option 3.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40528
--- Comment #1 from hjl dot tools at gmail dot com 2009-06-24 15:28 ---
With option 3, we can check the return value of an ifunc
function since we know the return value is a pointer to
the ifunc function. We don't need a separate prototype
nor asm statement.
--
--- Comment #2 from hjl dot tools at gmail dot com 2009-06-24 15:31 ---
Created an attachment (id=18060)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18060action=view)
Ifunc examples
Here are some ifunc examples with option 3.
--
--- Comment #3 from jakub at gcc dot gnu dot org 2009-06-24 15:54 ---
Option 2) is certainly the least intrusive in the compiler and you can use it
even with foo's prototype and calling it from the same CU, just use asm.
__typeof (foo) *
__attribute__ ((ifunc))
foo_ifunc (void) __asm
--- Comment #4 from hjl dot tools at gmail dot com 2009-06-24 16:07 ---
(In reply to comment #3)
Option 2) is certainly the least intrusive in the compiler and you can use it
even with foo's prototype and calling it from the same CU, just use asm.
__typeof (foo) *
__attribute__
--- Comment #5 from jakub at gcc dot gnu dot org 2009-06-24 19:26 ---
What do you do if the function has arguments, because ifunc shouldn't have
arguments? While C++ has unnamed arguments and you could perhaps enforce them,
C does not. How do you handle option 3 with:
--- Comment #6 from hjl dot tools at gmail dot com 2009-06-24 19:31 ---
(In reply to comment #5)
What do you do if the function has arguments, because ifunc shouldn't have
arguments? While C++ has unnamed arguments and you could perhaps enforce
them,
For unnamed arguments, see
18 matches
Mail list logo