Inline definition problem in current

Scot Hetzel swhetzel at gmail.com
Tue Mar 24 08:43:04 PDT 2009


On Mon, Mar 23, 2009 at 10:05 PM, Ben Kelly <ben at wanderview.com> wrote:
> On Mar 23, 2009, at 6:31 PM, Gustau Perez wrote:
>>
>> a few time ago I switched to current, right now I've it updated to
>> yesterday.  While compiling some ports (in fact, building x11/gnome2) I
>> found that some of them (written in C) are using  some inline functions (I
>> guess it is because the compiler will replace the call to the function with
>> the function itself). The problem is that gcc fails with the following
>> message :
>>             error: nested function 'XXX' declared but never defined
>>
>>  checking the code, the function is declared and then implemented in a
>> header file which is included in the offending .c file. The function is
>> declared as 'inline'. The only solution I found is to change the definition
>> to static.
>>
>>  Checking pontyhat shows me that many ports are failing because of this
>> problem. What I can understand is why is this happening, because the same
>> ports compiles fine in STABLE and the compilers's version in base seems to
>> be the same (gcc (GCC) 4.2.1 20070719  [FreeBSD], the same in current)
>>  Can anyone help with this problem ?
>
> Check out the arch@ discussion about "C99 Inlines" and this commit:
>
>  http://svn.freebsd.org/viewvc/base?view=revision&revision=189824
>
> It seems like they might be related.
>
> Hope that helps.
>
I can confirm that reverting this change allows the audio/faad port to build.

Scot


More information about the freebsd-current mailing list