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