On Wed, 2009-03-11 at 10:31 -0500, Brian Cameron wrote:
> 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?

Adding -D__EXTENSIONS__ to CFLAGS works well.

> 
> 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