Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Jun 2015 12:42:58 +0100
From:      David Chisnall <theraven@FreeBSD.org>
To:        Hans Petter Selasky <hps@selasky.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r268137 - head/sys/sys
Message-ID:  <1EB851FC-CA78-4A7B-BE5D-4F050C61A14C@FreeBSD.org>
In-Reply-To: <5583F2C9.1030409@selasky.org>
References:  <201407020845.s628jRG5031824@svn.freebsd.org> <5BE3492F-86A0-4CE3-A27C-8DB5EB662C64@FreeBSD.org> <5583F2C9.1030409@selasky.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 19 Jun 2015, at 11:45, Hans Petter Selasky <hps@selasky.org> wrote:
>=20
> Appearently this will be fixed in GNUSTEP base:
>=20
> =
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys/cdefs_elf.h?only_with_tag=3D=
MAIN
>=20
> Is this still an issue?

It is impossible to fix it in GNUstep Base, because we can=E2=80=99t =
guarantee that user code doesn=E2=80=99t include system headers after =
including GNUstep headers (not to mention the fact that GNUstep is not =
the only Objective-C standard library implementation out there).  If the =
user does, for example:

#import <Foundation/Foundation.h>
#include <something_that_includes_cdefs.h>

void example()
{
	__weak id foo =3D bar();
	baz(foo);
}

Then they will get a compile error no matter what GNUstep=E2=80=99s =
Foundation.h does.  It can=E2=80=99t prevent cdefs.h from redefining =
__weak to be something different.

I=E2=80=99ve just looked at the GNUstep base changelog since that NetBSD =
commit and there are no relevant changes, so I=E2=80=99ve no idea what =
the NetBSD people are thinking there.

David




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1EB851FC-CA78-4A7B-BE5D-4F050C61A14C>