This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch, libobjc] export __objc_get_forward_imp, get_imp again
- From: Andrew Pinski <pinskia at gmail dot com>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: Matthias Klose <doko at ubuntu dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>, Nicola Pero <nicola dot pero at meta-innovation dot com>
- Date: Wed, 21 Jan 2015 15:56:19 -0800
- Subject: Re: [patch, libobjc] export __objc_get_forward_imp, get_imp again
- Authentication-results: sourceware.org; auth=none
- References: <54BF6B0F dot 5040502 at ubuntu dot com> <8DC976E1-E1E3-45C4-8641-5AB6CD2B586B at gmail dot com> <20150121165116 dot GP1746 at tucnak dot redhat dot com>
On Wed, Jan 21, 2015 at 8:51 AM, Jakub Jelinek <jakub@redhat.com> wrote:
> On Wed, Jan 21, 2015 at 08:41:46AM -0800, pinskia@gmail.com wrote:
>> > On Jan 21, 2015, at 1:02 AM, Matthias Klose <doko@ubuntu.com> wrote:
>> >
>> > __objc_get_forward_imp and get_imp were exported in libobjc since GCC 4.1, for
>> > some reason these are not exported anymore in GCC 5 (both declared inline). So
>> > either export these as before, or don't export them and bump the soname. The
>> > latter seems to be unwanted, and at least gnustep-base is using the get_imp
>> > function. So better keep the references in GCC 5?
>> >
>> > Is this an intended change in GCC 5 to not to export inline methods anymore?
>>
>> Just remove the inline instead.
>
> The comments like:
>
> /* The new name of get_imp(). */
> IMP
> class_getMethodImplementation (Class class_, SEL selector)
> {
> if (class_ == Nil || selector == NULL)
> return NULL;
>
> /* get_imp is inlined, so we're good. */
> return get_imp (class_, selector);
> }
>
> don't make me very confident in such a change.
> The extern prototypes really work with both -std=gnu89 and -std=gnu11 and
> thus will at least keep status quo.
Let's do that then.
This also fixes bug 63863.
Thanks,
Andrew Pinski
>
> Jakub