#1406: Commit r5034 to the flesh breaks many external libraries ----------------------+----------------------------------------------------- Reporter: eschnett | Owner: knarf@… Type: defect | Status: new Priority: blocker | Milestone: Component: Cactus | Version: development version Keywords: | ----------------------+----------------------------------------------------- Commit r5034 modified the options that are passed to external libraries. I see build failures on machines using the Intel compiler. Reverting this commit seems to cure the problem. Frank Löffler and I are investigating.
#1406: Commit r5034 to the flesh breaks many external libraries -------------------------+-------------------------------------------------- Reporter: eschnett | Owner: knarf@… Type: defect | Status: review Priority: critical | Milestone: ET_2013_11 Component: SimFactory | Version: development version Resolution: | Keywords: -------------------------+-------------------------------------------------- Changes (by knarf):
* priority: blocker => critical * status: new => review * component: Cactus => SimFactory * milestone: => ET_2013_11
Comment:
This is actually a mistake in several option lists. They define {{{ CPP_OPENMP_FLAGS = -openmp }}} The Intel compiler isn't at fault here. It only occurs for Intel compilers, since only intel compiler option lists use, e.g., C_OPENMP_FLAGS = -openmp, and because of that (I guess) people also used it for CPP_OPENMP_FLAGS.
However, there is no option for OpenMP for cpp. This is actually interpreted as -oFILENAME where any output is put into a file called 'penmp', which throws autoconf off because it is looking for this output and configures libraries wrong.
What gcc optionlists do (and we should do for intel as well, as we typically use the gnu cpp) is to use {{{ CPP_OPENMP_FLAGS = -fopenmp }}}
This option is understood by cpp (and passed down to subprocesses if there are any).
Thus, I propose to change entries in simfactory option lists that include the first, wrong version for CPP_OPENMP_FLAGS to use -fopenmp. This change works for me - GSL (for example) builds with the patch.
Commit r5034 had an influence, because before we overwrote all kinds of autoconf-tests of the different libraries, which we shouldn't - and Cactus' autoconf-test didn't use CPP_OPENMP_FLAGS for the autoconf-tests (which might be an issue of its own - I believe it should).
#1406: Commit r5034 to the flesh breaks many external libraries -------------------------+-------------------------------------------------- Reporter: eschnett | Owner: knarf@… Type: defect | Status: review Priority: critical | Milestone: ET_2013_11 Component: SimFactory | Version: development version Resolution: | Keywords: -------------------------+--------------------------------------------------
Comment (by eschnett):
We pass CPPFLAGS to the C compiler, not to cpp. For example, when determining dependencies for C and C++, we use CPPFLAGS, but we do not use CFLAGS nor CXXFLAGS since we don't compile. In this case, we still need the compiler's OpenMP flag to ensure that the #ifdef _OPENMP and the #include <omp.h> are handled correctly. Thus, we need to continue to pass -openmp for CPP_OPENMP_FLAGS.
I believe this is a case where Cactus uses a flag differently from the way it is used elsewhere. A similar flag is LIBS, which we need to unset in all configure.sh scripts: Cactus does not prepend the "-l" flag to the libraries there, but every other code expects this, so passing LIBS would lead to errors. Of course, we don't want to use the libraries against Cactus will be linked when building an external library anyway, so this is fine.
I also just see that icc and icpc accept both -openmp and -fopenmp. We should simply switch to -fopenmp to circumvent this problem for now.
#1406: Commit r5034 to the flesh breaks many external libraries -------------------------+-------------------------------------------------- Reporter: eschnett | Owner: knarf@… Type: defect | Status: review Priority: critical | Milestone: ET_2013_11 Component: SimFactory | Version: development version Resolution: | Keywords: -------------------------+--------------------------------------------------
Comment (by knarf):
We probably shouldn't use CPPFLAGS to pass to the C or C++ compiler, but the corresponding CFLAGS ect. Is there a reason we shouldn't do that? The CFLAGS for instance shouldn't (do they?) contain the actual action (like compiling). Shouldn't they work just as well, or better?
Also, can I assume your last comment means 'reviewed ok'?
#1406: Commit r5034 to the flesh breaks many external libraries -------------------------+-------------------------------------------------- Reporter: eschnett | Owner: knarf@… Type: defect | Status: review Priority: critical | Milestone: ET_2013_11 Component: SimFactory | Version: development version Resolution: | Keywords: -------------------------+--------------------------------------------------
Comment (by eschnett):
When Cactus determines include dependencies, it does so by calling the compiler with certain flags. It does not call cpp directly, since this may lead to different include files -- e.g. GNU's cpp would now know what Intel-specific files icc would include. cpp needs to be called via icc, so that icc can add its -I flags.
CPPFLAGS contains the flags necessary for this preprocessing. These are mostly the -I and -D flags. CFLAGS contains only the flags necessary for compiling, e.g. -Wall or -xHost or -O2.
It seems that other libraries (e.g. GSL) interpret CPPFLAGS differently, and/or call GNU cpp even if the compiler is Intel icc.
We should use CPPFLAGS to pass the -I and -D flags. If we did not do this, and if we used CFLAGS instead, then we would need to pass CFLAGS when looking for dependencies, which could lead to warnings about unused flags.
#1406: Commit r5034 to the flesh breaks many external libraries -------------------------+-------------------------------------------------- Reporter: eschnett | Owner: knarf@… Type: defect | Status: review Priority: critical | Milestone: ET_2013_11 Component: SimFactory | Version: development version Resolution: | Keywords: -------------------------+--------------------------------------------------
Comment (by eschnett):
To be explicit: No, we should not change all -openmp to -fopenmp. As I described, Cactus passes these to icc, and we can only make this change if the respective version of icc understands the flags -fopenmp. Modern versions of icc do, but I am not sure about older versions. This needs to be tested on each system before committing.
#1406: Commit r5034 to the flesh breaks many external libraries -------------------------+-------------------------------------------------- Reporter: eschnett | Owner: knarf@… Type: defect | Status: closed Priority: critical | Milestone: ET_2013_11 Component: SimFactory | Version: development version Resolution: fixed | Keywords: -------------------------+-------------------------------------------------- Changes (by knarf):
* status: review => closed * resolution: => fixed
Comment:
Agreed.
#1406: Commit r5034 to the flesh breaks many external libraries -------------------------+-------------------------------------------------- Reporter: eschnett | Owner: knarf@… Type: defect | Status: closed Priority: critical | Milestone: ET_2013_11 Component: SimFactory | Version: development version Resolution: fixed | Keywords: -------------------------+--------------------------------------------------
Comment (by anonymous):
{{{ #!html <h1 style="text-align: center">Конфиденциальность и полная безопасность на веб-сайте секс-услуг</h1> }}} Интернет сегодня – не только средство для обмена информацией, это и неплохой помощник тем, кто желает развлечься, не отходя от экрана компьютера. Веб-сайты, посвященные оказанию интим-услуг, сделают времяпровождение незабываемым и максимально приятным. Фантазиям нет предела. [[br]] На предоставляющем услуги интимного характера интернет-ресурсе подобраны лучшие '''[http://escort-models.com проститутки киева]'''. Не нем также можно рассмотреть любую девушку и ознакомиться с оказываемыми услугами, правилами и стоимостью. Без сомнения, к услугам проститутки киев будет это или какой-либо другой город пожелают прибегнуть многие мужчины. И оснований может быть великое множество: - приятно порадовать товарища либо же партнеров; - получить какой-то новый опыт в сексе;- ощутить себя желанным мужчиной;- отдохнуть телом и душой;- избавиться от всяческих комплексов;- и, возможно, чуть-чуть поэкспериментировать. Многие гости столицы, приезжая посетить местные достопримечательности либо просто по вопросам бизнеса хотят воспользоваться секс-услугами. Киев проститутки всегда составят гостям приятную компанию и не дадут им умирать от скуки, они без проблем могут приехать на несколько часов или же остаться на всю ночь. [[br]] Чтобы воспользоваться интим-услугами потрясающих леди достаточно лишь заглянуть на веб-ресурс, выбрать понравившуюся девушку и связаться с представителем агентства по указанному контактному телефону. Также необходимо будет указать место, где вы желаете встретиться с девушкой, а также отрезок времени, в течение которого вы хотели бы пользоваться интимными услугами. Абсолютно все пожелания будут строго соблюдены. [[br]] Огромное достоинство данного сервиса - тот факт, что если вдруг необходимы проститутки в украине, то не понадобится выезжать куда-либо для поиска сомнительных услуг. Всегда можно воспользоваться возможностями надежного агентства. [[br]] Располагая некоторым количеством свободного времени, возможно рассмотреть все анкеты проституток киева. Как результат, по каким-то определенным показателям вполне можно выбрать девушек, к услугам которых можно будет все время прибегать. [[br]] Компании, оказывающие сексуальные услуги, немаловажную роль отводят качеству обслуживания. Ведь мужчина должен оставаться доволен. Только лишь тогда он будет вызывать девушек снова и снова. [[br]] А если мужчину привлекла какая-то проститутка киев он посещает регулярно, то и к сексуальным услугам ее он будет прибегать всегда. Притом ему могут предоставляться некоторые скидки. [[br]] Распространенность секс-услуг все время возрастает. И это понятно, потому как сегодня самая древняя профессия стала еще доступней. Многочисленные интернет-страницы предоставляют всевозможные разновидности интимных наслаждений: веб-камеры, чаты. Однако ничего не сравнится с вызовом девушки на дом, где есть возможность как отдохнуть телом, так и мило побеседовать с интересной и привлекательной девушкой. Можно быть полностью уверенным в том, что при обращении в проверенное агентство, интим-услуги выполняются на высочайшем уровне и данные о клиенте останутся конфиденциальными. [[br]] Воспользоваться интимными услугами можно для себя, а также можно сделать приятное другу либо же деловым партнерам. Подобного рода сюрпризы будут высоко оценены.
trac@lists.einsteintoolkit.org