* opensm/complib: redundant redeclaration of functions
@ 2010-02-01 13:05 Yevgeny Kliteynik
[not found] ` <4B66D189.2090500-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
0 siblings, 1 reply; 4+ messages in thread
From: Yevgeny Kliteynik @ 2010-02-01 13:05 UTC (permalink / raw)
To: Sasha Khapyorsky, Linux RDMA
Hi Sasha,
There are couple of places in complib headers that cause
compiler to complain:
cl_atomic.h:73: warning: redundant redeclaration of 'cl_atomic_inc'
cl_atomic_osd.h:58: warning: previous definition of 'cl_atomic_inc' was here
cl_atomic.h:104: warning: redundant redeclaration of 'cl_atomic_dec'
cl_atomic_osd.h:69: warning: previous definition of 'cl_atomic_dec' was here
cl_atomic.h:136: warning: redundant redeclaration of 'cl_atomic_add'
cl_atomic_osd.h:81: warning: previous definition of 'cl_atomic_add' was here
cl_atomic.h:171: warning: redundant redeclaration of 'cl_atomic_sub'
cl_atomic_osd.h:93: warning: previous definition of 'cl_atomic_sub' was here
cl_thread.h:346: warning: redundant redeclaration of 'cl_is_blockable'
cl_thread_osd.h:63: warning: previous definition of 'cl_is_blockable' was here
In general, here's the problem:
We have cl_file.h and cl_file_osd.h.
cl_file.h has include directive for cl_file_osd.h
cl_file.h has the following definition of function:
int foo();
cl_file_osd.h has another function definition, but
this time it also has implementation:
static inline int foo() { ..... }
Any preferable way to fix this?
Get rid of the _osd.h files and have the functions
implementation included in the usual .h file?
Define some *_HAVE_OSD flag in the _osd.h file
and enclose function declaration in the usual .h
file with #ifndef?
Any other ideas (I'd go for option 2)?
-- Yevgeny
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: opensm/complib: redundant redeclaration of functions
[not found] ` <4B66D189.2090500-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
@ 2010-02-01 18:46 ` Jason Gunthorpe
[not found] ` <20100201184616.GC25902-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
0 siblings, 1 reply; 4+ messages in thread
From: Jason Gunthorpe @ 2010-02-01 18:46 UTC (permalink / raw)
To: Yevgeny Kliteynik; +Cc: Sasha Khapyorsky, Linux RDMA
On Mon, Feb 01, 2010 at 03:05:13PM +0200, Yevgeny Kliteynik wrote:
> In general, here's the problem:
>
> We have cl_file.h and cl_file_osd.h.
> cl_file.h has include directive for cl_file_osd.h
> cl_file.h has the following definition of function:
> int foo();
>
> cl_file_osd.h has another function definition, but
> this time it also has implementation:
> static inline int foo() { ..... }
>
> Any preferable way to fix this?
It looks to me like using 'extern inline' is appropriate here:
extern inline int foo();
[..]
inline int foo()
{
body
}
If no inline version is defined then the compiler just emits a normal
function call, if an inline version is defined then the compiler might
use it.
Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: opensm/complib: redundant redeclaration of functions
[not found] ` <20100201184616.GC25902-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
@ 2010-02-02 13:11 ` Yevgeny Kliteynik
[not found] ` <4B68247E.6070405-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
0 siblings, 1 reply; 4+ messages in thread
From: Yevgeny Kliteynik @ 2010-02-02 13:11 UTC (permalink / raw)
To: Jason Gunthorpe; +Cc: Sasha Khapyorsky, Linux RDMA
On 01/Feb/10 20:46, Jason Gunthorpe wrote:
> On Mon, Feb 01, 2010 at 03:05:13PM +0200, Yevgeny Kliteynik wrote:
>
>> In general, here's the problem:
>>
>> We have cl_file.h and cl_file_osd.h.
>> cl_file.h has include directive for cl_file_osd.h
>> cl_file.h has the following definition of function:
>> int foo();
>>
>> cl_file_osd.h has another function definition, but
>> this time it also has implementation:
>> static inline int foo() { ..... }
>>
>> Any preferable way to fix this?
>
> It looks to me like using 'extern inline' is appropriate here:
>
> extern inline int foo();
>
> [..]
>
> inline int foo()
> {
> body
> }
>
> If no inline version is defined then the compiler just emits a normal
> function call, if an inline version is defined then the compiler might
> use it.
Thanks for the idea.
I read some documentation about it, and it does look that
your suggestion should fix the problem, but it didn't :(
Probably because they both are in .h files.
-- Yevgeny
> Jason
>
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: opensm/complib: redundant redeclaration of functions
[not found] ` <4B68247E.6070405-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
@ 2010-02-02 18:33 ` Jason Gunthorpe
0 siblings, 0 replies; 4+ messages in thread
From: Jason Gunthorpe @ 2010-02-02 18:33 UTC (permalink / raw)
To: Yevgeny Kliteynik; +Cc: Sasha Khapyorsky, Linux RDMA
On Tue, Feb 02, 2010 at 03:11:26PM +0200, Yevgeny Kliteynik wrote:
> >If no inline version is defined then the compiler just emits a normal
> >function call, if an inline version is defined then the compiler might
> >use it.
>
> Thanks for the idea.
> I read some documentation about it, and it does look that
> your suggestion should fix the problem, but it didn't :(
> Probably because they both are in .h files.
No, but they do have to be in the right order.
first header:
extern inline int foo();
inline int foo()
{
body
}
2nd header:
extern inline int foo();
Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2010-02-02 18:33 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-01 13:05 opensm/complib: redundant redeclaration of functions Yevgeny Kliteynik
[not found] ` <4B66D189.2090500-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2010-02-01 18:46 ` Jason Gunthorpe
[not found] ` <20100201184616.GC25902-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2010-02-02 13:11 ` Yevgeny Kliteynik
[not found] ` <4B68247E.6070405-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2010-02-02 18:33 ` Jason Gunthorpe
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 NNTP newsgroup(s).