gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: libs-base fails to compile on OpenBSD


From: Riccardo Mottola
Subject: Re: libs-base fails to compile on OpenBSD
Date: Sun, 2 Dec 2018 17:28:11 +0100
User-agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 SeaMonkey/2.49.4

Sebastian Reitenbach wrote:
What platform are you on? Why don’t you take the path the packages take and use 
base clang, and libobjc2?

because libobjc2 I always have issues with that setup or clang or something.

I like to use GCC and its runtime.


I definitely don’t recommend to use the system libobjc, at least you seem to 
pick up system libobjc headers.

You have a point here, it is not picking up the correct headers - I am not using the system GCC but the one from packages (gcc 4.9) which is a perfctly fine runtime and which worked in OpenBSD 6.3 (as well as on many other systems, FreeBSD, Linux... etc)

With GCC no extra path is needed usually, it should just pick up "its own" runtime"

Making all for subproject ObjectiveC2...
egcc runtime.c -c \
-MMD -MP -Wall -Wdeclaration-after-statement -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -pthread -pthread -fPIC -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -g -O2 -I/System/Library/Headers/ObjectiveC2 -I../. -I../ -I../../Headers -I. -I/home/multix/GNUstep/Library/Headers -I/Local/Library/Headers -I/System/Library/Headers -I/usr/local/include -I/Local/Library/Headers -I/Local/Library/Headers -I/System/Library/Headers -I/usr/local/include -I/usr/local/include/libxml2 -I/usr/local/include -I/usr/local/include -I/usr/local/include/p11-kit-1 \
       -o obj/ObjectiveC2.obj/runtime.c.o
In file included from runtime.c:35:0:
/usr/include/objc/objc-api.h:365:1: error: unknown type name 'retval_t'
 retval_t objc_msg_sendv(id, SEL, arglist_t);
 ^
/usr/include/objc/objc-api.h:365:34: error: unknown type name 'arglist_t'
 retval_t objc_msg_sendv(id, SEL, arglist_t);

If I look for the file,

rohan$ sudo find /usr -name objc-api.h
/usr/include/objc/objc-api.h
/usr/src/gnu/gcc/libobjc/objc/objc-api.h
/usr/src/gnu/lib/libobjc/libobjc/objc/objc-api.h

which is the standard file!


however, if I look for objc.h, I find "both" versions:
rohan$ sudo find /usr -name objc.h
/usr/include/objc/objc.h
/usr/local/lib/gcc/i386-unknown-openbsd6.4/4.9.4/include/objc/objc.h
/usr/src/gnu/gcc/libobjc/objc/objc.h
/usr/src/gnu/lib/libobjc/libobjc/objc/objc.h

objc-api.h seems to have disappeared! But I checked against latest gcc8 on debian linux and the file is not there.

Perhaps we should not include it at all? Or stop including it from a certain version of GCC onwards because it does not exist?

I can skip that, but then I hit another header... and then redefinitions.
I actually wonder how this all worked before. It looks as if there is only one compiler, it works, but if two are installed, a mess !

Riccardo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]