Hi everyone,
We have ported and installed Basilisk straightforwardly on multiple machines (including supercomputers) but have been incapable of installing it on the environnement of the new federal supercomputers here in Canada.
The problem looks pretty simple though: it seems that the option CC99 is not processed/parsed properly when that option contains more than 1 string.
Below are some examples of unsuccessful and successful installations.
If I set CC99 = $(CC) -std=c99 -pedantic -D_GNU_SOURCE=1 -Wno-unused-result, I get the following error:
If I only pass one option as CC99 = $(CC) -std=c99, I get:
And I eventually realized that the option does not matter, I can actually pass the option titi as
CC99 = $(CC) -titi, and get:
The commonality between the above examples is that the option CC99 is not correctly parsed on the Canadian federal supercomputers’ environment and
there is always an additional “ attached to the last option that should not be there.
I have spent hours trying to understand how the Makefile and the different compiling stages work in Basilisk but failed to patch this. The CC99 string is exported in Makefile.defs and shows up in 3 lines only at the top of the main in qcc.c (itself
a result of qcc.lex).
It is not entirely clear why the compilation of qcc fails, as the option -DCC99=xxx simply replaces any instance of CC99 with its definition.
Anyhow, for now, the only way I managed to install Basilisk on the Canadian federal supercomputers is to pass the options to CC instead of CC99 as follows:
CC = $(BASILISK_C) -std=c99 -pedantic -D_GNU_SOURCE=1 -Wno-unused-result
CC99 = $(BASILISK_C)
where BASILISK_C is a basic exported variable of the form xxx/yyy/bin/gcc. Doing this CC99 is defined as a single string.
Consequently, it does work well, but I am now passing options to any call to CC that I may not want to pass. And this is certainly not what the config file has been designed for.
No bid deal though I suspect as the options -std=c99 -pedantic -D_GNU_SOURCE=1 -Wno-unused-result are relatively harmless.
Once again, this issue to install Basilisk is specific to the environment of the Canadian federal supercomputers
If anyone has any idea how to fix this option parsing problem ?
Thank you in advance,
Anthony
--
Anthony Wachs, Associate Professor
Departments of Mathematics and Chemical & Biological Engineering
University of British Columbia
Vancouver, BC, Canada