svn commit: r268137 - head/sys/sys

Hans Petter Selasky hps at selasky.org
Fri Jun 19 13:40:45 UTC 2015


On 06/19/15 14:54, David Chisnall wrote:
> I definitely know of people building out-of-ports programs on FreeBSD whose code you have just broken (including myself,
 > though I do Objective-C stuff on 10, so haven’t yet encountered the 
breakage).

Hi David,

r268137 has been in 11-current for a long time (11 months) and was 
MFC'ed to 10-stable not long ago. Multiple systems are defining __weak 
for C and C++ :

Linux:
> include/linux/compiler-gcc.h:
#define __weak				__attribute__((weak))

NetBSD:
 > sys/cdefs_elf.h
#define __weak  __attribute__((__weak__))

FreeBSD:
 > sys/cdefs.h
#define	__weak	__attribute__((__weak__))


__weak is *the* way currently to say __attribute__((__weak__)) in C and 
C++ cross multiple systems. Are you sure you want to change that?

I understand that including "sys/cdefs.h" breaks objective C-code in the 
kernel, but we don't have any such code, do we?

In userspace, why is objective C-code including "sys/cdefs.h"? Is this 
perhaps a mistake in another header file which indirectly includes 
"sys/cdefs.h" when it shouldn't?

> Portable code should not rely on anything in cdefs.h.

Right - can you explain why it is ending up in your ObjC code?

And you are certain this is the change causing your build breakage?

https://svnweb.freebsd.org/base?view=revision&revision=283326

Hope you bear with me, I just don't want to rush a fix.

--HPS


More information about the svn-src-head mailing list