<div dir="ltr">In case it helps the process, below are the changes to their files for context…<div><br></div><div><div>--- CMakeLists.txt.orig<span class="" style="white-space:pre"> </span>2014-05-30 19:25:35.000000000 -0400</div>
<div>+++ CMakeLists.txt<span class="" style="white-space:pre">  </span>2014-05-30 18:11:18.000000000 -0400</div><div>@@ -2,11 +2,8 @@</div><div> </div><div> project(libiomp)</div><div> </div><div>-enable_language(Fortran)</div>
<div> enable_language(C ASM)</div><div> </div><div>-</div><div>-# TODO: if compat set 5, legacy set 4</div><div> set(VERSION 5)</div><div> if(WIN32)</div><div> <span class="" style="white-space:pre">    </span># TODO: get build time</div>
<div>@@ -33,75 +30,64 @@</div><div> endif()</div><div> set(ARCH_STR "Intel(R) 64")</div><div> </div><div>-</div><div>-# show config</div><div>-if(WIN32)</div><div>-<span class="" style="white-space:pre">    </span>message(STATUS "OS : Windows")</div>
<div>-elseif(UNIX)</div><div>-<span class="" style="white-space:pre">       </span>message(STATUS "OS : UNIX")</div><div>-elseif(APPLE)</div><div>-<span class="" style="white-space:pre">        </span>message(STATUS "OS : mac")</div>
<div>-endif()</div><div>-message(STATUS "Mode : ${BUILD_TYPE}")</div><div>-message(STATUS "Arch : ${ARCH}")</div><div>-</div><div>-</div><div>+set(COMMON_FLAGS "${COMMON_FLAGS} -D USE_ITT_BUILD")</div>
<div>+set(COMMON_FLAGS "${COMMON_FLAGS} -D NDEBUG")</div><div> set(COMMON_FLAGS "${COMMON_FLAGS} -D KMP_ARCH_STR=\"\\\"${ARCH_STR}\\\"\"")</div><div> set(COMMON_FLAGS "${COMMON_FLAGS} -D _GNU_SOURCE")</div>
<div> set(COMMON_FLAGS "${COMMON_FLAGS} -D _REENTRANT")</div><div> set(COMMON_FLAGS "${COMMON_FLAGS} -D KMP_USE_ASSERT")</div><div> set(COMMON_FLAGS "${COMMON_FLAGS} -D BUILD_I8")</div><div> set(COMMON_FLAGS "${COMMON_FLAGS} -D BUILD_TV")</div>
<div>-set(COMMON_FLAGS "${COMMON_FLAGS} -D KMP_LIBRARY_FILE=\\\"libiomp5.so\\\"")</div><div>+if(APPLE)</div><div>+<span class="" style="white-space:pre">   </span>set(COMMON_FLAGS "${COMMON_FLAGS} -D KMP_LIBRARY_FILE=\\\"libiomp5.dylib\\\"")</div>
<div>+<span class="" style="white-space:pre">   </span>set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -current_version 5.0")</div><div>+<span class="" style="white-space:pre">      </span>set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -compatibility_version 5.0")</div>
<div>+else()</div><div>+<span class="" style="white-space:pre">     </span>set(COMMON_FLAGS "${COMMON_FLAGS} -D KMP_LIBRARY_FILE=\\\"libiomp5.so\\\"")</div><div>+endif()</div><div> set(COMMON_FLAGS "${COMMON_FLAGS} -D KMP_VERSION_MAJOR=${VERSION}")</div>
<div> set(COMMON_FLAGS "${COMMON_FLAGS} -D CACHE_LINE=64")</div><div> set(COMMON_FLAGS "${COMMON_FLAGS} -D KMP_ADJUST_BLOCKTIME=1")</div><div> set(COMMON_FLAGS "${COMMON_FLAGS} -D BUILD_PARALLEL_ORDERED")</div>
<div>+set(COMMON_FLAGS "${COMMON_FLAGS} -D KMP_ASM_INTRINS")</div><div> set(COMMON_FLAGS "${COMMON_FLAGS} -D USE_LOAD_BALANCE")</div><div> set(COMMON_FLAGS "${COMMON_FLAGS} -D USE_CBLKDATA")</div>
<div> set(COMMON_FLAGS "${COMMON_FLAGS} -D GUIDEDLL_EXPORTS")</div><div> set(COMMON_FLAGS "${COMMON_FLAGS} -D KMP_GOMP_COMPAT")</div><div>+set(COMMON_FLAGS "${COMMON_FLAGS} -D KMP_USE_ADAPTIVE_LOCKS=1")</div>
<div>+set(COMMON_FLAGS "${COMMON_FLAGS} -D KMP_DEBUG_ADAPTIVE_LOCKS=0")</div><div> </div><div> if("${OMP_VERSION_NUM}" STREQUAL "40")</div><div>-<span class="" style="white-space:pre">    </span># TODO: update when 4.0 is finalize</div>
<div>-<span class="" style="white-space:pre">   </span>set(OMP_VERSION "201107")</div><div>+<span class="" style="white-space:pre">       </span>set(COMMON_FLAGS "${COMMON_FLAGS} -D OMP_50_ENABLED=0")</div><div>
+<span class="" style="white-space:pre">      </span>set(COMMON_FLAGS "${COMMON_FLAGS} -D OMP_41_ENABLED=0")</div><div> <span class="" style="white-space:pre">        </span>set(COMMON_FLAGS "${COMMON_FLAGS} -D OMP_40_ENABLED=1")</div>
<div> <span class="" style="white-space:pre">  </span>set(COMMON_FLAGS "${COMMON_FLAGS} -D OMP_30_ENABLED=1")</div><div>-elseif("${OMP_VERSION_NUM}" STREQUAL "30")</div><div>-<span class="" style="white-space:pre">   </span>set(OMP_VERSION "201107")</div>
<div>-<span class="" style="white-space:pre">   </span>set(COMMON_FLAGS "${COMMON_FLAGS} -D OMP_40_ENABLED=0")</div><div>-<span class="" style="white-space:pre"> </span>set(COMMON_FLAGS "${COMMON_FLAGS} -D OMP_30_ENABLED=1")</div>
<div>-else()</div><div>-<span class="" style="white-space:pre">     </span>set(OMP_VERSION "200505")</div><div>-<span class="" style="white-space:pre">       </span>set(COMMON_FLAGS "${COMMON_FLAGS} -D OMP_40_ENABLED=0")</div>
<div>-<span class="" style="white-space:pre">   </span>set(COMMON_FLAGS "${COMMON_FLAGS} -D OMP_30_ENABLED=0")</div><div> endif()</div><div> </div><div>+set(COMMON_FLAGS "${COMMON_FLAGS} -D USE_ITT_NOTIFY=1")</div>
<div>+set(COMMON_FLAGS "${COMMON_FLAGS} -D INTEL_ITTNOTIFY_PREFIX=__kmp_itt_")</div><div>+</div><div> set(C_CXX_COMMON_FLAGS "${C_CXX_COMMON_FLAGS} -fPIC")</div><div> </div><div> if(${BUILD_TYPE} STREQUAL "Debug")</div>
<div>-<span class="" style="white-space:pre">   </span>set(COMMON_FLAGS "${COMMON_FLAGS} -D NDEBUG -g")</div><div>+<span class="" style="white-space:pre">        </span>set(COMMON_FLAGS "${COMMON_FLAGS} -g")</div>
<div> endif()</div><div> </div><div> # Silence some warnings</div><div>-set(C_CXX_COMMON_FLAGS "${C_CXX_COMMON_FLAGS} -Wno-comment")</div><div> set(C_CXX_COMMON_FLAGS "${C_CXX_COMMON_FLAGS} -Wno-unused-value")</div>
<div> set(C_CXX_COMMON_FLAGS "${C_CXX_COMMON_FLAGS} -Wno-switch")</div><div>+set(C_CXX_COMMON_FLAGS "${C_CXX_COMMON_FLAGS} -Wno-switch")</div><div> </div><div> # Disable exception handling.</div><div> set(C_CXX_COMMON_FLAGS "${C_CXX_COMMON_FLAGS} -fno-exceptions")</div>
<div> </div><div>-# Improves FP speed </div><div>-set(C_CXX_COMMON_FLAGS "${C_CXX_COMMON_FLAGS} -ffast-math")</div><div>-</div><div> # Disable use of EBP as general purpose register.</div><div>-if(NOT ${ARCH} STREQUAL "64")</div>
<div>-<span class="" style="white-space:pre">   </span>set(C_CXX_COMMON_FLAGS "${C_CXX_COMMON_FLAGS} -fno-omit-frame-pointer")</div><div>+if(NOT ${ARCH} STREQUAL "32e")</div><div>+<span class="" style="white-space:pre"> </span>set(C_CXX_COMMON_FLAGS "${C_CXX_COMMON_FLAGS} -m32 -fno-omit-frame-pointer")</div>
<div> endif()</div><div> </div><div> set(COMMON_FLAGS "${COMMON_FLAGS} -D _KMP_BUILD_TIME=\"\\\"${BUILD_TIME} UTC\\\"\"")</div><div> </div><div>-</div><div> set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_FLAGS} ${C_CXX_COMMON_FLAGS}")</div>
<div> set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_FLAGS} ${C_CXX_COMMON_FLAGS}")</div><div> </div></div><div><br></div><div><div>--- src/CMakeLists.txt.orig<span class="" style="white-space:pre">      </span>2014-05-30 19:31:39.000000000 -0400+++ src/CMakeLists.txt<span class="" style="white-space:pre"> </span>2014-05-30 19:31:07.000000000 -0400@@ -5,6 +5,7 @@</div>
<div> <span class="" style="white-space:pre">  </span>include</div><div> <span class="" style="white-space:pre">  </span>include/${OMP_VERSION_NUM}</div><div> <span class="" style="white-space:pre">       </span>i18n</div><div>+<span class="" style="white-space:pre">      </span>thirdparty/ittnotify</div>
<div> <span class="" style="white-space:pre">  </span>${CMAKE_CURRENT_BINARY_DIR}</div><div> <span class="" style="white-space:pre">      </span>)</div><div> <span class="" style="white-space:pre">        </span></div><div>@@ -19,16 +20,17 @@</div>
<div>  kmp_threadprivate.c</div><div>  kmp_taskq.c</div><div>  kmp_tasking.c</div><div>+ kmp_taskdeps.cpp </div><div>  kmp_str.c</div><div>  kmp_settings.c</div><div>  kmp_sched.cpp</div><div>  kmp_runtime.c</div><div>  kmp_lock.cpp</div>
<div>+ kmp_itt.c</div><div>  kmp_io.c</div><div>  kmp_i18n.c</div><div>  kmp_gsupport.c</div><div>  kmp_global.c</div><div>- kmp_ftn_stdcall.c</div><div>  kmp_ftn_extra.c</div><div>  kmp_ftn_cdecl.c</div><div>  kmp_error.c</div>
<div>@@ -36,15 +38,17 @@</div><div>  kmp_dispatch.cpp</div><div>  kmp_debug.c</div><div>  kmp_csupport.c</div><div>+ kmp_cancel.cpp</div><div>  kmp_atomic.c</div><div>  kmp_alloc.c</div><div>  kmp_affinity.cpp</div><div>+ thirdparty/ittnotify/ittnotify_static.c</div>
<div> )</div><div> </div><div> set_source_files_properties(${SRCS} PROPERTIES LANGUAGE CXX)</div><div> </div><div> set_source_files_properties(${ASM_SRCS} PROPERTIES LANGUAGE CXX)</div><div>-set_source_files_properties(${ASM_SRCS} PROPERTIES COMPILE_FLAGS "-DKMP_GOMP_COMPAT -DKMP_ARCH_X86_64 -x assembler-with-cpp")</div>
<div>+set_source_files_properties(${ASM_SRCS} PROPERTIES COMPILE_FLAGS "-O2")</div><div> </div><div> # TODO: config parameter</div><div> if(WIN32)</div><div>@@ -67,10 +71,17 @@</div><div> <span class="" style="white-space:pre">   </span>OUTPUT omp.h</div>
<div> <span class="" style="white-space:pre">  </span>COMMAND perl ${CMAKE_CURRENT_SOURCE_DIR}/../tools/<a href="http://expand-vars.pl">expand-vars.pl</a> --strict -D Revision=\"\\$$Revision\" -D Date=\"\\$$Date\" -D KMP_TYPE=\"Performance\" -D KMP_ARCH=\"\\\"${ARCH_STR}\\\"\" -D KMP_VERSION_MAJOR=${VERSION} -D KMP_VERSION_MINOR=0 -D KMP_VERSION_BUILD=00000000 -D KMP_BUILD_DATE=\"${BUILD_TIME} UTC\" -D KMP_TARGET_COMPILER=12 -D KMP_DIAG=0 -D KMP_DEBUG_INFO=0 -D OMP_VERSION=${OMP_VERSION} ${CMAKE_CURRENT_SOURCE_DIR}/include/${OMP_VERSION_NUM}/omp.h.var omp.h</div>
<div> <span class="" style="white-space:pre">  </span>)</div><div>+if(NOT ${ARCH} STREQUAL "32e")</div><div> add_custom_command(</div><div> <span class="" style="white-space:pre">    </span>OUTPUT z_Linux_asm.o</div>
<div>-<span class="" style="white-space:pre">   </span>COMMAND g++ -c -o z_Linux_asm.o -DKMP_GOMP_COMPAT -DKMP_ARCH_X86_64 -x assembler-with-cpp ${CMAKE_CURRENT_SOURCE_DIR}/${ASM_SRCS}</div><div>+<span class="" style="white-space:pre"> </span>COMMAND clang++ -m32 -c -o z_Linux_asm.o -DKMP_GOMP_COMPAT -DKMP_ARCH_X86 -x assembler-with-cpp ${CMAKE_CURRENT_SOURCE_DIR}/${ASM_SRCS}</div>
<div> )</div><div>+else()</div><div>+add_custom_command(</div><div>+<span class="" style="white-space:pre">        </span>OUTPUT z_Linux_asm.o</div><div>+<span class="" style="white-space:pre">      </span>COMMAND clang++ -c -o z_Linux_asm.o -DKMP_GOMP_COMPAT -DKMP_ARCH_X86_64 -x assembler-with-cpp ${CMAKE_CURRENT_SOURCE_DIR}/${ASM_SRCS}</div>
<div>+)</div><div>+endif()</div><div> </div><div> add_custom_target(gen_kmp_i18n DEPENDS kmp_i18n_id.inc kmp_i18n_default.inc omp.h z_Linux_asm.o)</div><div> </div></div><div><br></div></div><div class="gmail_extra"><br><br>
<div class="gmail_quote">On Fri, May 30, 2014 at 7:18 PM, Hal Finkel <span dir="ltr"><<a href="mailto:hfinkel@anl.gov" target="_blank">hfinkel@anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="">----- Original Message -----<br>
> From: "Jack Howarth" <<a href="mailto:howarth.mailing.lists@gmail.com">howarth.mailing.lists@gmail.com</a>><br>
</div><div class="">> To: "Hal Finkel" <<a href="mailto:hfinkel@anl.gov">hfinkel@anl.gov</a>><br>
> Cc: <a href="mailto:openmp-dev@dcs-maillist2.engr.illinois.edu">openmp-dev@dcs-maillist2.engr.illinois.edu</a>, "C. Bergström" <<a href="mailto:cbergstrom@pathscale.com">cbergstrom@pathscale.com</a>><br>

> Sent: Friday, May 30, 2014 6:10:22 PM<br>
> Subject: Re: [Openmp-dev] (no subject)<br>
><br>
><br>
> Hal,<br>
> Even if that is problematic, starting over is fairly<br>
> straight-forward. Their CMakelists.txt is simply a directly<br>
> repetition of the commands emitted from the build as done by<br>
</div>> <a href="http://build.pl" target="_blank">build.pl</a> . So if they are difficult about it, just take a printout<br>
<div class="">> of the output for the current build with 'make compiler=clang" and<br>
> code the Cmakelist.txt from that. If you look carefully, you will<br>
> see that they are replicating this down to the exact order of the<br>
> parameters on the compiler calls. It is very difficult to see how<br>
> that could be intellectual property in any fashion since replicating<br>
> the output of the <a href="http://build.pl" target="_blank">build.pl</a> currently in <a href="http://llvm.org" target="_blank">llvm.org</a> 's openmp results<br>
> in the same ordering. Note that their files are only a crude<br>
> starting point and nowhere near what we will need for llvm.<br>
<br>
</div>Yes, I understand. An C. has generally been forthcoming about this kind of thing. However, I'm not about to make an IP call here, and we have a policy. If he does not grant explicit permission soon, I recommend that you start over.<br>

<span class="HOEnZb"><font color="#888888"><br>
 -Hal<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
> Jack<br>
><br>
><br>
><br>
> On Fri, May 30, 2014 at 6:40 PM, Hal Finkel < <a href="mailto:hfinkel@anl.gov">hfinkel@anl.gov</a> ><br>
> wrote:<br>
><br>
><br>
> Jack,<br>
><br>
> Before you go too far with this, do we have Pathscale's explicit<br>
> contribution of their build files? (I've cc'd C. Bergstrom so that<br>
> he can comment directly).<br>
><br>
> Thanks,<br>
> Hal<br>
><br>
><br>
><br>
> ----- Original Message -----<br>
> > From: "Jack Howarth" < <a href="mailto:howarth.mailing.lists@gmail.com">howarth.mailing.lists@gmail.com</a> ><br>
> > To: <a href="mailto:openmp-dev@dcs-maillist2.engr.illinois.edu">openmp-dev@dcs-maillist2.engr.illinois.edu</a><br>
> > Sent: Friday, May 30, 2014 5:28:33 PM<br>
> > Subject: [Openmp-dev] (no subject)<br>
> ><br>
> ><br>
> ><br>
> > Attached is a first pass at modifying the cmakefiles from<br>
> > <a href="https://github.com/pathscale/openmprtl/blob/master/itt/libomp_oss" target="_blank">https://github.com/pathscale/openmprtl/blob/master/itt/libomp_oss</a><br>
> > to<br>
> > build openmp. I noticed that the existing <a href="http://build.pl" target="_blank">build.pl</a> doesn't actually<br>
> > build a fat shared library on darwin. The attached changes can does<br>
> > this in an indirect fashion with…<br>
> ><br>
> ><br>
> > % cd runtime<br>
> > % mkdir build_32<br>
> > % cd build_32<br>
> > % cmake -DARCH="32" ..<br>
> > % make VERBOSE=1<br>
> > % cd ..<br>
> > % mkdir build_32e<br>
> > % cmake -DARCH="32e" ..<br>
> > % make VERBOSE=1<br>
> > % cd ..<br>
> > % lipo ./build_32/src/libiomp5.dylib ./build_32e/src/libiomp5.dylib<br>
> > -create -o libiomp5.dylib<br>
> > % file libiomp5.dylib<br>
> ><br>
> > libiomp5.dylib: Mach-O universal binary with 2 architectures<br>
> > libiomp5.dylib (for architecture x86_64): Mach-O 64-bit dynamically<br>
> > linked shared library x86_64<br>
> > libiomp5.dylib (for architecture i386): Mach-O dynamically linked<br>
> > shared library i386<br>
> ><br>
> ><br>
> > Normally we could do this in cmake by passing '-arch i386 -arch<br>
> > x86_64' but use of assembly code in the build gums that up.<br>
> > _______________________________________________<br>
> > Openmp-dev mailing list<br>
> > <a href="mailto:Openmp-dev@dcs-maillist2.engr.illinois.edu">Openmp-dev@dcs-maillist2.engr.illinois.edu</a><br>
> > <a href="http://lists.cs.uiuc.edu/mailman/listinfo/openmp-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/openmp-dev</a><br>
> ><br>
><br>
> --<br>
> Hal Finkel<br>
> Assistant Computational Scientist<br>
> Leadership Computing Facility<br>
> Argonne National Laboratory<br>
><br>
><br>
<br>
--<br>
Hal Finkel<br>
Assistant Computational Scientist<br>
Leadership Computing Facility<br>
Argonne National Laboratory<br>
</div></div></blockquote></div><br></div>