On 30 Jun 2011, at 18:06, Quentin Mathé wrote: > Le 30 juin 2011 à 14:24, David Chisnall a écrit : > >> On 30 Jun 2011, at 13:21, Quentin Mathé wrote: >> >>> EtoileThread builds just fine when I invoke make in the parent directory >>> (EF main directory), but reports various errors 'ivars may not be placed in >>> class extension' for ETObjectPipe, when 'make' is invoked directly in the >>> EtoileThread directory. I'm not even sure to understand the purpose behind >>> this Clang message… Is it expected to report identically named ivars >>> declared in superclasses or in @interface? Could this be a bug in Clang? >> >> Ivars in a class extension require the non-fragile ABI. This is probably >> set in EF and imported in the subdirectory, but omitted in the >> subdirectory's makefile. > > Indeed, that's the issue. > > We have in EtoileFoundation/GNUmakefile: > ifeq ($CC, clang) > ADDITIONAL_OBJCFLAGS += -fobjc-nonfragile-abi -fblocks > endif > > I suppose we always want to pass the flags every time we compile a project > with Clang, right?
My latest changes now require the non-fragile ABI, so won't build with the fragile ABI. If you want to support legacy compilers, then you'll need to move the ivars into the headers, but that's pretty ugly. David -- Sent from my IBM 1620 _______________________________________________ Etoile-dev mailing list Etoile-dev@gna.org https://mail.gna.org/listinfo/etoile-dev