[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Problems building gnustep-base on Ubuntu Linux with clang/llvm-3.7
From: |
David Lobron |
Subject: |
Re: Problems building gnustep-base on Ubuntu Linux with clang/llvm-3.7 |
Date: |
Mon, 28 Sep 2015 12:18:53 -0400 |
Thanks very much for the help, David. A few more comments:
> Please try the most recent release (1.8.1, see:
> https://github.com/gnustep/libobjc2/releases ), which incorporates some more
> error checking and recovery into the build process (not to mention a number
> of other bug fixes).
This worked fine - I was also able to get the normal CMake build working.
>> When I then tried to compile gnustep-base with clang, I was able to build
>> Source, Additions, and libgnustep-base, but I hit some error in the
>> ObjectiveC2 subproject. The first few of these look like this:
>>
>> Making all for subproject ObjectiveC2…
>
> This subproject is to provide modern runtime APIs to old versions of the GCC
> runtime. It should not be being built if you have a modern runtime
> installed, so something has gone wrong with an earlier configuration stage.
I deleted my build tree and tried the build again, but the problem persisted.
Digging deeper, I instrumented Source/GNUmakefile, and found that HAVE_BLOCKS
is set to 0 and OBJC2RUNTIME is set to 1, which causes the subproject to be
added:
ifeq ($(OBJC2RUNTIME),0)
...
else
ifeq ($(HAVE_BLOCKS),0)
libgnustep-base_SUBPROJECTS = ObjectiveC2
The configure script notes that HAVE_BLOCKS is set to 0 when
ac_cv_func__Block_copy
if test $ac_cv_func__Block_copy = yes ; then
HAVE_BLOCKS=1
else
HAVE_BLOCKS=0
fi
The config.log shows that:
ac_cv_func__Block_copy=no
The above line appears under the "Cache variables" section in the config.log.
I do not have a cache file in my build tree, so I don't think I'm picking up an
obsolete value. Do you know how this variable would be set in a correct
configuration? I Googled around for it, but I could not find any mention of
it. Just as a guess: could this be because I'm compiling with clang, rather
than gcc? You mentioned above that the ObjectiveC2 subproject is meant to
provide a runtime to older versions of the GCC runtime, and in fact I was able
to build this codeline with gcc (4.6).
I'm using libobjc2-1.8.1 and clang-3.7 on an Ubuntu GNU/Linux OS.
Thank you again for this assistance!
--David
smime.p7s
Description: S/MIME cryptographic signature