Vinson Lee | 4 Aug 2012 00:29
Favicon

[PATCH] ltp_signal.h: Remove inline keyword from handler_h.

This patch fixes this build error with clang.

testcases/kernel/syscalls/rt_sigaction/../../../../include/ltp_signal.h:85: undefined
reference to `handler_h'

Signed-off-by: Vinson Lee <vlee@...>
---
 include/ltp_signal.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/ltp_signal.h b/include/ltp_signal.h
index 1ac6f70..093059f 100644
--- a/include/ltp_signal.h
+++ b/include/ltp_signal.h
 <at>  <at>  -69,7 +69,7  <at>  <at>  struct kernel_sigaction {

 void (*restore_rt) (void);

-inline void
+void
 handler_h (int signal)
 {
 	return;
--

-- 
1.7.9.5

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
(Continue reading)

Wanlong Gao | 6 Aug 2012 03:42
Favicon
Gravatar

Re: [PATCH] ltp_signal.h: Remove inline keyword from handler_h.

On 08/04/2012 06:29 AM, Vinson Lee wrote:
> This patch fixes this build error with clang.
> 
> testcases/kernel/syscalls/rt_sigaction/../../../../include/ltp_signal.h:85: undefined
reference to `handler_h'

If you wanna build LTP with LLVM, why not make out "a path for LLVM building" and send
out it. I think this one line change can't do everything for LLVM building, although
untested. right?

Thanks,
Wanlong Gao

> 
> Signed-off-by: Vinson Lee <vlee@...>
> ---
>  include/ltp_signal.h |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/ltp_signal.h b/include/ltp_signal.h
> index 1ac6f70..093059f 100644
> --- a/include/ltp_signal.h
> +++ b/include/ltp_signal.h
>  <at>  <at>  -69,7 +69,7  <at>  <at>  struct kernel_sigaction {
>  
>  void (*restore_rt) (void);
>  
> -inline void
> +void
>  handler_h (int signal)
(Continue reading)

Vinson Lee | 6 Aug 2012 18:55
Favicon

Re: [PATCH] ltp_signal.h: Remove inline keyword from handler_h.

On Sun, Aug 5, 2012 at 6:42 PM, Wanlong Gao <gaowanlong@...> wrote:
> On 08/04/2012 06:29 AM, Vinson Lee wrote:
>> This patch fixes this build error with clang.
>>
>> testcases/kernel/syscalls/rt_sigaction/../../../../include/ltp_signal.h:85: undefined
reference to `handler_h'
>
> If you wanna build LTP with LLVM, why not make out "a path for LLVM building" and send
> out it. I think this one line change can't do everything for LLVM building, although
> untested. right?
>
> Thanks,
> Wanlong Gao
>

This was the only build error with I saw with clang. This one change
fixes the build with clang.

It's a C99 error which would probably occur with gcc -std=c99 as well.
http://clang.llvm.org/compatibility.html#inline

>>
>> Signed-off-by: Vinson Lee <vlee@...>
>> ---
>>  include/ltp_signal.h |    2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/include/ltp_signal.h b/include/ltp_signal.h
>> index 1ac6f70..093059f 100644
>> --- a/include/ltp_signal.h
(Continue reading)

Wanlong Gao | 7 Aug 2012 03:09
Favicon
Gravatar

Re: [PATCH] ltp_signal.h: Remove inline keyword from handler_h.

On 08/07/2012 12:55 AM, Vinson Lee wrote:
> On Sun, Aug 5, 2012 at 6:42 PM, Wanlong Gao <gaowanlong@...> wrote:
>> On 08/04/2012 06:29 AM, Vinson Lee wrote:
>>> This patch fixes this build error with clang.
>>>
>>> testcases/kernel/syscalls/rt_sigaction/../../../../include/ltp_signal.h:85: undefined
reference to `handler_h'
>>
>> If you wanna build LTP with LLVM, why not make out "a path for LLVM building" and send
>> out it. I think this one line change can't do everything for LLVM building, although
>> untested. right?
>>
>> Thanks,
>> Wanlong Gao
>>
> 
> This was the only build error with I saw with clang. This one change
> fixes the build with clang.
> 
> It's a C99 error which would probably occur with gcc -std=c99 as well.
> http://clang.llvm.org/compatibility.html#inline

I saw that "Change add to a static inline function. 
This is usually the right solution if only one translation
unit needs to use the function. static inline functions are
always resolved within the translation unit, so you won't have
to add a non-inline definition of the function elsewhere in your program."

So, why not just change it to "static inline" to resolve this?

(Continue reading)

chrubis | 4 Oct 2012 15:00
Picon

Re: [PATCH] ltp_signal.h: Remove inline keyword from handler_h.

Hi!
> I saw that "Change add to a static inline function. 
> This is usually the right solution if only one translation
> unit needs to use the function. static inline functions are
> always resolved within the translation unit, so you won't have
> to add a non-inline definition of the function elsewhere in your program."
> 
> So, why not just change it to "static inline" to resolve this?

Interestingly enough, the function is passed via pointer so compiler
couldn't inline it at all, I wonder why there was the inline in the
first place...

I've removed the inline added static and confirmed that it builds with
clang 3.1 on x86_64.

--

-- 
Cyril Hrubis
chrubis@...

------------------------------------------------------------------------------
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
chrubis | 4 Oct 2012 15:02
Picon

Re: [PATCH] ltp_signal.h: Remove inline keyword from handler_h.

Hi!
> diff --git a/include/ltp_signal.h b/include/ltp_signal.h
> index 1ac6f70..093059f 100644
> --- a/include/ltp_signal.h
> +++ b/include/ltp_signal.h
>  <at>  <at>  -69,7 +69,7  <at>  <at>  struct kernel_sigaction {
>  
>  void (*restore_rt) (void);
>  
> -inline void
> +void
>  handler_h (int signal)
>  {
>  	return;

I've just commited similar patch to this and added your signed-of-by.

Thanks.

--

-- 
Cyril Hrubis
chrubis@...

------------------------------------------------------------------------------
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
(Continue reading)


Gmane