Ke:

I think a better way to fix this problem would be to simply
add the following line in the file that is causing the problem.
Add this line before the system includes.

#define __EXTENSIONS__

Does that work?

Brian


On 03/11/09 02:43, Ke Wang wrote:
> On Wed, 2009-03-11 at 12:53 +0800, Ginn Chen wrote:
>> On Mar 11, 2009, at 8:22 AM, Ke Wang wrote:
>>
>>> On Tue, 2009-03-10 at 19:30 +0800, Ginn Chen wrote:
>>>> What's the problem you're trying to fix?
>>> System header files have been updated recently and this makes
>>> libproxy
>>> do not compile with _POSIX_C_SOURCE defined.
>>
>> What's the exact error message?
>
> pkgbuild: "/usr/include/dlfcn.h", line 87: syntax error before or at:
> mmapobj_result_t
>
>> I guess you should change the value of _POSIX_C_SOURCE rather than
>> define _GNU_SOURCE
>
> I find the definition of mmapobj_result_t in /usr/include/sys/mman.h is
> enclosed in the conditional macro
>
> #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
>
> But in /usr/include/dlfcn.h, where mmapobj_result_t is used, the
> corresponding code is enclosed in the conditional macro
>
> #if !defined(_XOPEN_SOURCE) || defined(__EXTENSIONS__)
>
> In /usr/include/sys/feature_test.h, I find the following macro
> definition:
>
> #if defined(_XOPEN_SOURCE) || defined(_POSIX_C_SOURCE)
> #define __XOPEN_OR_POSIX
> #endif
>
> This shows that __XOPEN_OR_POSIX is a superset of _XOPEN_SOURCE, so if
> we only define _POSIX_C_SOURCE, the definition of mmapobj_result_t in
> sys/mman.h will be excluded while it is being used in dlfcn.h.
>
> I don't know why two different conditional macros are used. Perhaps this
> is a bug?
>
> BTW, I don't find the _GNU_SOURCE in sys/feature_test.h, so I think this
> macro is not used in Solaris, and the "-D_GNU_SOURCE" will not make
> sense. The result will be the same as just removing "_D_POSIX_C_SOURCE",
> so I'll update the patch to remove "-D_GNU_SOURCE".
>
> Attached the updated patch.
>
>>
>> Ginn
>>
>>
>> --------
>> Ginn Chen
>> Software Engineer, Browser Team
>> Sun Microsystems, Inc.
>> Phone: x82869 / +86-10-62673869
>> Fax: +86-10-62780969
>>
>>
>>


Reply via email to