On Mon, 31 Dec 2018 14:26:10 +0100 Jeremie Courreges-Anglas <j...@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 (kern...@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 <kern...@gmail.com>