I don't mind turning Tests back on, but the Test doesn't compile. Looks like the same problem.
And there may be a problem with your patch submitted back in May. http://lists.gnu.org/archive/html/gnustep-dev/2013-06/msg00052.html The patch file extension is .bin. With Tests on, I get this error from the libobjc build. Linking C executable Test/AllocatePair /usr/local/bin/clang \ -std=gnu99 \ -fexceptions \ Test/CMakeFiles/AllocatePair.dir/AllocatePair.m.o \ -o Test/AllocatePair \ libobjc.so.4.6 \ -lsupc++ -Wl,-rpath,/home/frank/objc/build -1.7-RC1 libobjc.so.4.6: undefined reference to `vtable for std::type_info' libobjc.so.4.6: undefined reference to `std::type_info::__is_function_p() const' libobjc.so.4.6: undefined reference to `typeinfo for std::type_info' libobjc.so.4.6: undefined reference to `std::type_info::~type_info()' libobjc.so.4.6: undefined reference to `std::type_info::__do_upcast(__cxxabiv1::__class_type_inf o const*, void**) const' libobjc.so.4.6: undefined reference to `std::type_info::__is_pointer_p() const' clang-3.4: error: linker command failed with exit code 1 (use -v to see invocation) On Wed, Jun 12, 2013 at 4:43 PM, Maxthon Chan <[email protected]> wrote: > Actually, buddy, you screwed the library up. Do not turn off Tests! > > Sent from my iPhone > > On 2013年6月13日, at 4:37, Frank Rehwinkel <[email protected]> wrote: > > Well I realized the new failure in trying to build libobjc was coming from > the Test directory and I had disabled the Test option the first time I used > cmake. So that explains why this problem didn't surface the first time. > > But I'm left with the first problem reported. That -base won't link with > the libobjc.so.4.6. Even when -lsup++ is added to the link options. > > > On Wed, Jun 12, 2013 at 2:31 PM, Maxthon Chan <[email protected]> wrote: > >> Hmm? Maybe the -std=gnu99 is an issue? >> >> I never built it using ninja so I am not so sure. Try use make? >> >> 在 2013-6-13,上午2:29,Frank Rehwinkel <[email protected]> 写道: >> >> Checking the ccmake settings for libobjc2, it is already setup to use >> libsupc++. >> >> Here is the ninja build failure. >> >> /usr/local/bin/clang >> -std=gnu99 -fexceptions >> Test/CMakeFiles/AllocatePair_optimised.dir/AllocatePair.m.o >> -o Test/AllocatePair_optimised >> libobjc.so.4.6 -lsupc++ -Wl,-rpath,/home/frank/objc/build-1.7-RC1 >> libobjc.so.4.6: undefined reference to `vtable for std::type_info' >> >> libobjc.so.4.6: undefined reference to >> `std::type_info::__is_function_p() const' >> libobjc.so.4.6: undefined reference to `typeinfo for std::type_info' >> >> libobjc.so.4.6: undefined reference to `std::type_info::~type_info()' >> >> libobjc.so.4.6: undefined reference to >> `std::type_info::__do_upcast(__cxxabiv1::__class_type_inf >> o const*, void**) const' >> >> libobjc.so.4.6: undefined reference to >> `std::type_info::__is_pointer_p() const' >> clang-3.4: error: linker command failed with exit code 1 (use -v to see >> invocation) >> ninja: build stopped: subcommand failed. >> >> >> On Wed, Jun 12, 2013 at 2:19 PM, Maxthon Chan <[email protected]> wrote: >> >>> Oh I missed this out, you can build LLVM libc++ linking against >>> libsupc++ too. >>> >>> My building system on Ubuntu is like this: >>> >>> clang -> LLVM -> libc++ -> libsupc++ (I am using 3.3rc2, not 3.4 head) >>> Étoilé -> gnustep-gui -> gnustep-base -> libobjc2 -> libsupc++ >>> libobjc2 -> libdispatch -> libobjc2 (ln -s libobjc.so >>> libBlocksRuntime.so) >>> Étoilé -> libc++ >>> >>> 在 2013-6-13,上午2:14,Frank Rehwinkel <[email protected]> 写道: >>> >>> In trying to understand your suggestion by searching the web for llvm >>> and libcxxrt references, I run into notes saying that clang is normally >>> linked with libsupc++. libsupc++ is in both the FreeBSD 9.1 host and the >>> jail. >>> >>> Is using libsupc++ an option for building libobjc2 and gnustep-base? >>> >>> >>> On Wed, Jun 12, 2013 at 1:57 PM, Maxthon Chan <[email protected]> wrote: >>> >>>> Download and build it separately using the same SVN head version. >>>> >>>> If you built that, you should also build libc++ (LLVM's C++ runtime) >>>> and (maybe) link it against libc++rt. >>>> >>>> Also, when building gnustep-base, specify -I/usr/local/include and >>>> -L/usr/local/lib appropriately. >>>> >>>> 在 2013-6-13,上午1:54,Frank Rehwinkel <[email protected]> 写道: >>>> >>>> gnustep-base configuration fails. See link error at the bottom and the >>>> command line from config.log. In trying to rebuild objc2 1.7-RC1, I get >>>> similar link errors now. I don't know why I didn't get these before but >>>> maybe because now gnustep-make has been installed. >>>> >>>> Anyway, these errors seem to indicate that the libcxxrt.a is needed but >>>> missing. In my FreeBSD 9.1 jail, there isn't even source for this library >>>> let alone the library, and no port. On the FreeBSD host, there are the >>>> source directories for it but as pointed out earlier, this library is not >>>> yet built automatically. >>>> >>>> On a fresh FreeBSD 9.1 jail, where llvm and clang (trunk head 3.4) have >>>> been manually built and installed to /usr/local, the configure step for >>>> -base fails to link objc code. >>>> >>>> If I do need the libcxxrt.a, how do I build on the host? If I can do >>>> that, manually copying library and headers to jail is then necessary I >>>> guess. >>>> >>>> I tried to follow instructions from >>>> http://lists.gnu.org/archive/html/gnustep-dev/2013-03/msg00127.html >>>> (Building >>>> libobjc2 on FreeBSD 9.1 with clang 3.2 using cmake fails) >>>> >>>> which says to add MK_LIBCPLUSPLUS = yes >>>> to /etc/make.conf but then make in /usr/src/lib/libcxxrt gives this >>>> error >>>> >>>> "/usr/share/mk/bsd.own.mk", line 478: MK_LIBCPLUSPLUS can't be set by >>>> a user. >>>> >>>> FreeBSD 9.1 seems to ship with clang 3.1 but the ports would bring it >>>> to 3.2. If I'm building the library manually, which clang version is >>>> sufficient? >>>> >>>> In case libcxxrt isn't needed, here are the configure calls for -make >>>> and -base. gnustep-make is built and installed with gmake and gmake >>>> install (run as root). >>>> >>>> export CC=/usr/local/bin/clang >>>> export CXX=${CC} >>>> ( >>>> cd core/make >>>> ./configure \ >>>> --with-layout=gnustep \ >>>> --with-objc-lib-flag=-l:libobjc.so.4.6 \ >>>> CC=${CC} CXX=${CXX} >>>> gmake >>>> gmake install # as root >>>> ) >>>> export GNUSTEP_CONFIG_FILE=/etc/GNUstep.conf >>>> . /usr/GNUstep/System/Library/Makefiles/GNUstep.sh >>>> ( >>>> cd core/base >>>> ./configure \ >>>> --with-layout=gnustep \ >>>> CC=${CC} CXX=${CXX} >>>> ) >>>> >>>> configure:13164: checking whether objc really works >>>> configure:13194: /usr/local/bin/clang -o conftest -g -O2 \ >>>> -I/usr/GNUstep/System/Library/Headers >>>> -I/usr/GNUstep/Local/Library/Headers \ >>>> -I/usr/local/include \ >>>> -fgnu-runtime -x objective-c \ >>>> -L/usr/GNUstep/System/Library/Libraries >>>> -L/usr/GNUstep/Local/Library/Libraries -L/usr/local/lib \ >>>> conftest.c \ >>>> -lrt -lpthread -rdynamic -pthread \ >>>> -fobjc-nonfragile-abi -fgnu-runtime \ >>>> -L/home/frank/GNUstep/Library/Libraries >>>> -L/usr/GNUstep/Local/Library/Libraries \ >>>> -L/usr/GNUstep/System/Library/Libraries -L/usr/local/lib \ >>>> -l:libobjc.so.4.6 -lm >>>> >>>> In file included from conftest.c:99: >>>> In file included from ././config/config.objc.m:2: >>>> ././config/objc-common.g:53:3: warning: assignment to Objective-C's isa >>>> is deprecated in favor of object_setClass() [-Wdeprecated-objc-isa-usage] >>>> obj->isa = self; >>>> ^ ~~~~~~~ >>>> object_setClass( , ) >>>> ././config/objc-common.g:46:5: note: instance variable is declared here >>>> id isa; >>>> ^ >>>> 1 warning generated. >>>> /usr/local/lib/libobjc.so.4.6: undefined reference to `vtable for >>>> std::type_info' >>>> /usr/local/lib/libobjc.so.4.6: undefined reference to >>>> `std::type_info::__is_function_p() const' >>>> /usr/local/lib/libobjc.so.4.6: undefined reference to `typeinfo for >>>> std::type_info' >>>> /usr/local/lib/libobjc.so.4.6: undefined reference to >>>> `std::type_info::~type_info()' >>>> /usr/local/lib/libobjc.so.4.6: undefined reference to >>>> `std::type_info::__do_upcast(__cxxabiv1::__class_type_info const*, void**) >>>> const' >>>> /usr/local/lib/libobjc.so.4.6: undefined reference to >>>> `std::type_info::__is_pointer_p() const' >>>> clang-3.4: error: linker command failed with exit code 1 (use -v to see >>>> invocation) >>>> >>>> _______________________________________________ >>>> Gnustep-dev mailing list >>>> [email protected] >>>> https://lists.gnu.org/mailman/listinfo/gnustep-dev >>>> >>>> >>>> >>> >>> >> >> >
_______________________________________________ Gnustep-dev mailing list [email protected] https://lists.gnu.org/mailman/listinfo/gnustep-dev
