Forum - libc++ 13.0 for NEC C/C++ Compiler

Jump to navigation Jump to search
Overview > Topics > Porting > libc++ 13.0 for NEC C/C++ Compiler
[#37]

Dear all,

I could port libc++ 13.0 on Aurora by using NEC C/C++ compiler version 3.4.0. The libc++ is C++ standard library used by clang when "-stdlib=libc++" is specified, as you know. If you have any comments and questions, please let me know freely.

Usage:

You can use libc++ by the following way.

$ nc++ -mlibcxx -mlibcxxdir=your-install-directory [ compiler-options | files ]

Remarks:

  • <execution> is not available.
  • I have not tried "make check" but I could get equal to or better than the result of "clang++ -stdlib=libc++" in PlumHall C++ testsuite.

Required software:

  • NEC C/C++ compiler version 3.4.0 or higher.
  • Cmake version 3.13.4 or higher.

Build and installation:

Please refer to the following procedure after you download the attached file. Assume that;

  • The install directory is "/home/libcxx".
  • The directory where you make a clone of llvm-project is "/home/llvm-project".

1) Get a clone of llvm-project.

$ pwd
/home
$ git clone https://github.com/llvm/llvm-project.git -b release/13.x

2) Extract the attached file libc++.ve.tgz.

$ cd /home/llvm-project
$ mkdir build
$ cd build
$ tar zxvf libc++.ve.tgz  (This is the attached file of this topic)
ve/
ve/libcxx.ve.diff
ve/cmake.sh
ve/libvec++.a
ve/libvec++.so.2.11.0
ve/pre-install.sh

3) Patching libc++ and setup install directory.

$ pwd
/home/llvm-project/build
$ vi ve/pre-install.sh
#!/bin/bash

INSTALL_PREFIX=/home/libcxx    (Edit this line.)
LLVMDIR=/home/llvm-project     (Edit this line.)

PATCHDIR=$LLVMDIR/build/ve
NCCDIR=/opt/nec/ve/ncc/3.4.0
....

$ ve/pre-install.sh
~/libcxx/lib ~/libcxx/include
~/libcxx/include
patching file libcxx/__config_site.ve
patching file libcxx/include/CMakeLists.txt
patching file libcxx/include/__config
patching file libcxx/include/__iterator/istream_iterator.h
patching file libcxx/include/cmath
patching file libcxx/include/cuchar
patching file libcxx/include/deque
patching file libcxx/include/locale
patching file libcxx/include/math.h
patching file libcxx/include/memory
patching file libcxx/include/optional
patching file libcxx/include/random
patching file libcxx/include/typeinfo
patching file libcxx/src/CMakeLists.txt
patching file libcxx/src/atomic.cpp
patching file libcxx/src/exception.cpp
patching file libcxx/src/new.cpp
patching file libcxx/src/support/nec/xlocale.cpp
patching file libcxx/src/support/runtime/exception_pointer_nec.ipp

4) Do cmake.

$ cd /home/llvm-project/build
$ vi ve/cmake.sh
#!/bin/bash

INSTALL_PREFIX=/home/libcxx     (Edit this line.)
LLVMDIR=/home/llvm-project      (Edit this line.)

NCCDIR=/opt/nec/ve/ncc/3.4.0
....

$ ve/cmake.sh

5) Do make

$ make install

This completes the installation.

Posted by NEC admin (administrator) on 17 June 2022 at 04:42.
Edited by NEC admin (administrator) on 20 June 2022 at 08:06.