[Openmp-commits] [openmp] r237124 - D9576: Updates documentation to include all possible architecture builds, synchronizes runtime/README.txt and www/README.txt, updates the building-with-CMake documentation. This change also changes references of Intel(R) OpenMP Library to LLVM OpenMP Library.
Andrey Churbanov
Andrey.Churbanov at intel.com
Tue May 12 05:52:43 PDT 2015
Author: achurbanov
Date: Tue May 12 07:52:43 2015
New Revision: 237124
URL: http://llvm.org/viewvc/llvm-project?rev=237124&view=rev
Log:
D9576: Updates documentation to include all possible architecture builds, synchronizes runtime/README.txt and www/README.txt, updates the building-with-CMake documentation. This change also changes references of Intel(R) OpenMP Library to LLVM OpenMP Library.
Modified:
openmp/trunk/runtime/Build_With_CMake.txt
openmp/trunk/runtime/README.txt
openmp/trunk/www/README.txt
Modified: openmp/trunk/runtime/Build_With_CMake.txt
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/Build_With_CMake.txt?rev=237124&r1=237123&r2=237124&view=diff
==============================================================================
--- openmp/trunk/runtime/Build_With_CMake.txt (original)
+++ openmp/trunk/runtime/Build_With_CMake.txt Tue May 12 07:52:43 2015
@@ -9,8 +9,8 @@
#//===----------------------------------------------------------------------===//
#
- Building libiomp5 using CMake
- =============================
+ How to Build the LLVM* OpenMP* Runtime Library using CMake
+ ===========================================
---- Version of CMake required: v2.8.0 or above ----
@@ -91,9 +91,6 @@ Compiler options
Unix* systems (Optional as compiler is default):
This option is only needed when -Dcreate_fortran_modules is true
--DCMAKE_ASM_COMPILER=<Assembler name>
-This option isn't usually needed for Non-Windows* builds
-
-DCMAKE_ASM_MASM_COMPILER=[ml | ml64 ]
This option is Windows* Only
@@ -111,15 +108,12 @@ Build options
======================
==== Architecture ====
======================
--Darch=32|32e|arm|ppc64|aarch64|mic
+-Darch=32|32e|arm|ppc64|ppc64le|aarch64|mic
* Architecture can be 32 (IA-32 architecture), 32e (Intel(R) 64 architecture),
- arm (ARM architecture), aarch64 (ARMv8 architecture) or ppc64 (PPC64 architecture).
- This option, by default is chosen based on the
- CMake variable CMAKE_SIZEOF_VOID_P. If it is 8, then Intel(R) 64 architecture
- is assumed. If it is 4, then IA-32 architecture is assumed. If you want to
- use a different architecture other than x86 based architecture, you must specify
- it when calling cmake initially using this -Darch=<arch> option or by changing
- the arch value via CMakeCache.txt or the CMake GUI after the initial CMake run.
+ arm (ARM architecture), aarch64 (ARMv8 architecture), ppc64 (PPC64 architecture),
+ or ppc64le (little endian PPC64 architecture).
+* This option, by default is chosen based on the probing the compiler for
+ architecture macros (e.g., is __x86_64__ predefined by compiler?).
---- First values listed are the default value ----
-Dlib_type=normal|profile|stubs
@@ -145,34 +139,47 @@ Should the Fortran modules be created (r
-Dstats=off|on
Should include stats-gathering code?
+-Dompt_support=off|on
+Should OMPT support be turned on?
+If ompt_support is off, then both ompt_blame and ompt_trace are ignored.
+
+-Dompt_blame=on|off
+should OMPT blame functionality be turned on?
+
+-Dompt_trace=on|off
+should OMPT trace functionality be turned on?
+
=====================
==== Micro tests ====
=====================
-After the library has been built, five microtests are performed.
-Some will be skipped based upon the platform.
+After the library has been built, there are five optional microtests that
+can be performed. Some will be skipped based upon the platform.
These tests can be turned on (default) or off with the following options:
-Dtest_touch=on|off -- Should the touch test be done?
-Dtest_relo=on|off -- Should the position independent code test be done?
-Dtest_execstack=on|off -- Should the stack be checked for executability?
--Dtest_instr=on|off -- Should the Intel(R) MIC Libraries be checked
+-Dtest_instr=on|off -- Should the Intel(R) MIC Libraries be checked
for correct instruction set?
-Dtest_deps=on|off -- Should libiomp5's dependencies be checked?
-Dtests=off|on -- Should any of the above tests be done?
+If -Dtests=on is specified, the user can then call:
+$ make libiomp-micro-tests
+which runs the tests.
============================================
==== How to append flags to compilation ====
============================================
- These flags are *appended*. They do not
overwrite any of the preset flags.
--DUSER_CPP_FLAGS=<space-separated flags> -- Additional C Preprocessor flags
+-DLIBIOMP_CPPFLAGS=<space-separated flags> -- Additional C Preprocessor flags
(typically additional -Ddef=val flags)
--DUSER_C_FLAGS=<space-separated flags> -- Additional C compiler flags
--DUSER_CXX_FLAGS=<space-separated flags> -- Additional C++ compiler flags
--DUSER_ASM_FLAGS=<space-separated flags> -- Additional assembly flags
--DUSER_LD_FLAGS=<space-separated flags> -- Additional linker flags
--DUSER_LD_LIB_FLAGS=<space-separated flags> -- Additional libraries to link
+-DLIBIOMP_CFLAGS=<space-separated flags> -- Additional C compiler flags
+-DLIBIOMP_CXXFLAGS=<space-separated flags> -- Additional C++ compiler flags
+-DLIBIOMP_ASMFLAGS=<space-separated flags> -- Additional assembly flags
+-DLIBIOMP_LDFLAGS=<space-separated flags> -- Additional linker flags
+-DLIBIOMP_LIBFLAGS=<space-separated flags> -- Additional libraries to link
to during link phase
--DUSER_F_FLAGS=<space-separated flags> -- Additional Fortran compiler flags
+-DLIBIOMP_FFLAGS=<space-separated flags> -- Additional Fortran compiler flags
===================================
==== Feature Based Compilation ====
@@ -217,12 +224,22 @@ cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX
cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ..
---- With Various Options ----
+- Build the 32 bit Linux library using GCC*
cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -Dos=lin -Darch=32 ..
+
+- Build the 32 bit debug Mac library using Clang*
cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -Dos=mac -Darch=32 -DCMAKE_BUILD_TYPE=Debug ..
+
+- Build the library (architecture determined by probing compiler) using the
+ Intel(R) C Compiler and the Intel(R) C++ Compiler. Also, create the fortran modules using
+ the Intel(R) Fortran Compiler, enabling the libiomp-micro-tests target and using similar rules that build.pl
+ would use to build the library.
cmake -DCMAKE_C_COMPILER=icc -DCMAKE_CXX_COMPILER=icpc -DCMAKE_Fortran_COMPILER=ifort -Dtests=on -Dcreate_fortran_modules=on -DUSE_BUILDPL_RULES=on ..
-cmake -DUSER_CFLAGS='Werror' -DUSER_CPP_FLAGS='-DNEW_FEATURE=1 -DOLD_FEATURE=0' -DUSER_CXX_FLAGS='-Werror -Wsign-compare' ..
----- Stubs library ----
+- Have CMake Find the C/C++ compiler, and specify additional flags for the C compiler, preprocessor, and C++ compiler.
+cmake -DLIBIOMP_CFLAGS='Werror' -DLIBIOMP_CPPFLAGS='-DNEW_FEATURE=1 -DOLD_FEATURE=0' -DLIBIOMP_CXXFLAGS='-Werror -Wsign-compare' ..
+
+---- Build the stubs library ----
cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -Dlib_type=stubs ..
=========
Modified: openmp/trunk/runtime/README.txt
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/README.txt?rev=237124&r1=237123&r2=237124&view=diff
==============================================================================
--- openmp/trunk/runtime/README.txt (original)
+++ openmp/trunk/runtime/README.txt Tue May 12 07:52:43 2015
@@ -1,6 +1,6 @@
- README for Intel(R) OpenMP* Runtime Library
- ===========================================
+ README for the LLVM* OpenMP* Runtime Library
+ ============================================
How to Build Documentation
==========================
@@ -11,7 +11,7 @@ However, an HTML version can be built by
% doxygen doc/doxygen/config
-in this directory.
+in the runtime directory.
That will produce HTML documentation in the doc/doxygen/generated
directory, which can be accessed by pointing a web browser at the
@@ -21,11 +21,23 @@ If you don't have Doxygen installed, you
www.doxygen.org.
-How to Build the Intel(R) OpenMP* Runtime Library
-=================================================
+How to Build the LLVM* OpenMP* Runtime Library
+==============================================
+The library can be built either using Cmake, or using a makefile that
+in turn invokes various Perl scripts. For porting, non X86
+architectures, and for those already familiar with Cmake that may be
+an easier route to take than the one described here.
+
+Building with CMake
+===================
+The runtime/Build_With_CMake.txt file has a description of how to
+build with Cmake.
+
+Building with the Makefile
+==========================
The Makefile at the top-level will attempt to detect what it needs to
-build the Intel(R) OpenMP* Runtime Library. To see the default settings,
+build the LLVM* OpenMP* Runtime Library. To see the default settings,
type:
make info
@@ -37,7 +49,7 @@ omp_root: The path to the top-level d
current working directory.
omp_os: Operating system. By default, the build will attempt to
- detect this. Currently supports "linux", "freebsd", "macos", and
+ detect this. Currently supports "linux", "freebsd", "macos", and
"windows".
arch: Architecture. By default, the build will attempt to
@@ -46,6 +58,8 @@ arch: Architecture. By default, t
"32" for IA-32 architecture
"32e" for Intel(R) 64 architecture
"mic" for Intel(R) Many Integrated Core Architecture
+ "arm" for ARM* architecture
+ "aarch64" for Aarch64 (64-bit ARM) architecture
"ppc64" for IBM(R) Power architecture (big endian)
"ppc64le" for IBM(R) Power architecture (little endian)
@@ -74,10 +88,6 @@ example, if you want to build with gcc i
make compiler=gcc
-There is also an experimental CMake build system. This is *not* yet
-supported for production use and resulting binaries have not been checked
-for compatibility.
-
On OS X* machines, it is possible to build universal (or fat) libraries which
include both IA-32 architecture and Intel(R) 64 architecture objects in a
single archive; just build the 32 and 32e libraries separately, then invoke
@@ -121,7 +131,9 @@ Front-end Compilers that work with this
===========================================
The following compilers are known to do compatible code generation for
-this RTL: icc/icl, gcc. See the documentation for more detail.
+this RTL: clang (from the OpenMP development branch at
+http://clang-omp.github.io/ ), Intel compilers, GCC. See the documentation
+for more details.
-----------------------------------------------------------------------
Modified: openmp/trunk/www/README.txt
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/www/README.txt?rev=237124&r1=237123&r2=237124&view=diff
==============================================================================
--- openmp/trunk/www/README.txt (original)
+++ openmp/trunk/www/README.txt Tue May 12 07:52:43 2015
@@ -58,6 +58,10 @@ arch: Architecture. By default, t
"32" for IA-32 architecture
"32e" for Intel(R) 64 architecture
"mic" for Intel(R) Many Integrated Core Architecture
+ "arm" for ARM* architecture
+ "aarch64" for Aarch64 (64-bit ARM) architecture
+ "ppc64" for IBM(R) Power architecture (big endian)
+ "ppc64le" for IBM(R) Power architecture (little endian)
If "mic" is specified then "icc" will be used as the
compiler, and appropriate k1om binutils will be used. The
@@ -75,6 +79,10 @@ compiler: Which compiler to use for t
mode: Library mode: default is "release". Also supports "debug".
+jobs: The number of parallel jobs for the underlying call to make.
+ This value is sent as the parameter to the -j flag for make.
+ This value defaults to "1", but can be set to any positive integer.
+
To use any of the options above, simple add <option_name>=<value>. For
example, if you want to build with gcc instead of icc, type:
More information about the Openmp-commits
mailing list