On 11/28/2013 05:09 PM, [email protected] wrote:
> Hi!
>>>> +static void cleanup(void)
>>>> +{
>>>> +  TEST_CLEANUP;
>>>> +
>>>> +  SAFE_CLOSE(cleanup, old_fd);
>>>
>>> Take care not to call cleanup() from within a cleanup()
>>>
>>> If the close() here will fail, the cleanup will be called, then the
>>> close() will fail and the cleanup will be called... untill the end of
>>> the stack and the test will eventually SegFault.
>>>
>>> Also if the SAFE_CREAT() in setup() will fail, the close() will fail
>>> too, because the old_fd will be set to -1.
>>>
>>> I've fixed that this time and pushed (see diff bellow), thanks.
>>>
>>>
>>> @@ -117,7 +117,8 @@ static void cleanup(void)
>>>    {
>>>           TEST_CLEANUP;
>>>
>>> -       SAFE_CLOSE(cleanup, old_fd);
>>> +       if (old_fd > 0)
>>> +               SAFE_CLOSE(NULL, old_fd);
>>>
>>>           tst_rmdir();
>>>    }
>>>
>>
>> Hello,
>>
>> This test does not seem to compile on uClibc based systems
>>
>> I am getting this:
>> dup3_02.c:53: error: 'O_CLOEXEC' undeclared here (not in a function)
>
> Looking at fcntl.h in uClibc git the O_CLOEXEC is defined only on
> __USE_GNU
>
> Does adding
>
> #define _GNU_SOURCE
>
> before the includes help?

Yeah that fixes it. Thanks!

>
> If not, your uClibc version does not yet support it and we will have to
> add:
>
> #ifndef O_CLOEXEC
> # define O_CLOEXEC 02000000
> #endif
>
> To fix it.
>

Either way is fine I suppose.

-- 
markos


------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to