On Mon, 31 Dec 2018 14:26:10 +0100
Jeremie Courreges-Anglas <jca@wxcvbn.org> wrote:
> If you remove CFLAGS/CXXFLAGS = -mlongcall and restart the build from
> scratch, are clang and friends properly linked? Do you get a working
> llvm package?
This actually worked! I cleaned the build, removed the -mlongcall,
and built llvm with gcc 6.5.0. The build of llvm took about 28 hours
40 minutes with my PowerBook G4 at half speed = 666 MHz. (gcc had
taken about 28 h 30 m.) The removal of -mlongcall also removed most
or all compiler warnings from the log. The build succeeded. I can
now use clang++ to compile and run a simple C++ program.
I used the below diff in devel/llvm/Makefile. I also used
gcc-6-2.diff from my earlier mail to switch ports-gcc to lang/gcc/6.
(Pascal Stumpf recently posted lang/gcc/8, but I'm keeping 6.5.0 for
now because I want to try building other packages.)
Now that I can run clang++, I can show the dependency problem from
my mail "Re: powerpc bulk build report" to ports [1]:
ghostborough$ cat loopy.cpp
#include <functional>
struct Thing {
int get() const { return 0; }
};
int f(Thing t) {
return std::mem_fn(&Thing::get)(t);
}
ghostborough$ clang++ -c loopy.cpp
ghostborough$ doas pkg_delete g++
doas (kernigh@ghostborough.my.domain) password:
g++-6.5.0p0: ok
Read shared items: ok
ghostborough$ clang++ -c loopy.cpp
loopy.cpp:8:14: error: no member named 'mem_fn' in namespace 'std'
return std::mem_fn(&Thing::get)(t);
~~~~~^
1 error generated.
clang++ in the llvm package uses the headers from the g++ package,
but llvm has no dependency on g++. After I pkg_delete g++, then
clang++ seems to find the old headers from base-gcc, but those
headers don't have C++11 features like std::mem_fn.
[1] https://marc.info/?l=openbsd-ports&m=154629731512667&w=2
Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.202
diff -u -p -r1.202 Makefile
--- Makefile 15 Dec 2018 15:21:48 -0000 1.202
+++ Makefile 31 Dec 2018 19:26:26 -0000
@@ -83,8 +83,8 @@ CONFIGURE_ARGS = -DLLVM_ENABLE_FFI:Bool=
# Workaround relocation overflow
.if ${MACHINE_ARCH} == "powerpc"
-CFLAGS += -mlongcall
-CXXFLAGS += -mlongcall
+#CFLAGS += -mlongcall
+#CXXFLAGS += -mlongcall
# As a workaround for the size only build the PowerPC backend
CONFIGURE_ARGS += -DLLVM_TARGETS_TO_BUILD="PowerPC"
.elif ${MACHINE_ARCH} == "arm"
@@ -101,7 +101,7 @@ PKG_ARGS += -Dpowerpc=0
TEST_TARGET = check
# XXX sync
-GCC_VER = 4.9.4
+GCC_VER = 6.5.0
.if ${MACHINE_ARCH} == "amd64"
GCC_CONFIG = x86_64-unknown-openbsd${OSREV}
.else
--
George Koehler <kernigh@gmail.com>
No comments:
Post a Comment