On Fri, Jun 08, 2018 at 06:37:47PM +0200, Kamil Rytarowski wrote:
> On 08.06.2018 17:04, Patrick Welche wrote:
> > According to
> > 
> >   http://en.cppreference.com/w/cpp/compiler_support
> > 
> > string_view is supported by gcc 7 and clang 4.0. As in NetBSD-current
> > base we have gcc 6.4.0 and clang 5.0.1, I thought I would try it out:
> > 
> > $ clang -std=c++17 -o foo foo.cpp
> > foo.cpp:3:10: fatal error: 'string_view' file not found
> > #include <string_view>
> >          ^~~~~~~~~~~~~
> > 1 error generated.
> > 
> > Is the page over optimistic, or do I need more flags on my compile line?
> > (Guessing that /usr/include has the gcc include files...)
> > 
> 
> We ship with an old version of libc++ in base.
> 
> If you are using a LLVM style Please try to include it with
> <experimental/string_view>.
> 
> I'm working right now on getting HEAD libc++ to work on NetBSD.

Great news!

In the meantime, to try things out, I installed pkgsrc/lang/gcc8 and see:

$ make
rm -f .gdbinit
touch .gdbinit
#   compile  ts/net.o
c++  -O2 -fPIE -Werror -std=c++14 -fPIC   
-I/usr/src/local/networking-ts-impl/include  -c    net.cpp
#      link  ts/net
c++    -lpthread  -pie  -shared-libgcc      -o net  net.o  -Wl,-rpath-link,/lib 
 -L=/lib     
/usr/bin/ld: /usr/pkg/gcc8/lib/gcc/x86_64--netbsd/8.1.0/crtbegin.o: relocation 
R_X86_64_32 against hidden symbol `__TMC_END__' can not be used when making a 
shared object
/usr/bin/ld: /usr/pkg/gcc8/lib/gcc/x86_64--netbsd/8.1.0/crtend.o: relocation 
R_X86_64_32 against `.ctors' can not be used when making a shared object; 
recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status


I randomly added a -fPIC as the message suggests, so used the following
Makefile for the above:

$ cat Makefile 
PROG_CXX=net
MKRELRO=no
CPPFLAGS+=-I/usr/src/local/networking-ts-impl/include
CXXFLAGS+=-std=c++14 -fPIC
LDFLAGS+=-lpthread
#-lstdc++fs
MKMAN=no
.include <bsd.prog.mk>


Cheers,

Patrick

Reply via email to