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 ]
- <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
$ 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. |
|