Have I got this right? It seems to work: set ver [regsub -all {[[:alpha:]]+} ${compilers.gcc_default} {}] if { ${ver} >= 10 } { reinplace \ "s|FFLAGS = -Wall -O2|FFLAGS = -Wall -O2 -fallow-argument-mismatch|g" \ ${worksrcpath}/src/Makefile }
Thanks, Mark > On Jul 17, 2022, at 12:48 PM, Mark Brethen <mark.bret...@gmail.com> wrote: > > Unfortunately spooles is no longer maintained, but I found this discussion > online: > > If you compile with GCC 10 or newer, you will get the following error, > originating from CalculiX: > > Error: Rank mismatch between actual argument at (1) and actual argument at > (2) (rank-1 and scalar) > To work around this, you need to add -fallow-argument-mismatch to the FFLAGS > inside Makefile: > > - FFLAGS = -Wall -O3 -fopenmp $(INCLUDES) > + FFLAGS = -Wall -O3 -fopenmp -fallow-argument-mismatch $(INCLUDES) > > I’ll implement this in a patch, assuming everyone is building with >+ 10? > Would it hurt to patch it even if gcc <10? > > Mark > > > >> On Jul 17, 2022, at 12:01 PM, Chris Jones <jon...@hep.phy.cam.ac.uk >> <mailto:jon...@hep.phy.cam.ac.uk>> wrote: >> >> Ok, shame. >> >> Nevertheless, this is not an issue with the compiler but the code itself. >> You might try discussing it with the upstream maintainers. >> >> Chris >> >>> On 17 Jul 2022, at 3:29 pm, Mark Brethen <mark.bret...@gmail.com >>> <mailto:mark.bret...@gmail.com>> wrote: >>> >>> Hmm, 'compilers.allow_arguments_mismatch yes’ had no effect—same failure. >>> I looked at the compilers group and with it set, and gfortran variant is >>> selected, chooses ${compilers.gcc_default}. Which in my case was >>> gcc12—which is already installed. >>> >>> Mark Brethen >>> mark.bret...@gmail.com <mailto:mark.bret...@gmail.com> >>> >>> >>> >>>> On Jul 17, 2022, at 6:15 AM, Chris Jones <jon...@hep.phy.cam.ac.uk >>>> <mailto:jon...@hep.phy.cam.ac.uk>> wrote: >>>> >>>> >>>> >>>>> On 17 Jul 2022, at 1:59 am, Mark Brethen <mark.bret...@gmail.com >>>>> <mailto:mark.bret...@gmail.com>> wrote: >>>>> >>>>> I’ve tested the build with gfortran-mp-12 which fails: >>>>> >>>>> :info:build /opt/local/bin/gfortran-mp-12 -Wall -O2 -c gencontelem_n2f.f >>>>> :info:build gencontelem_n2f.f:595:39: >>>>> :info:build 184 | call >>>>> isortii(ialset(istartset(iset)),idummy, >>>>> :info:build | 2 >>>>> :info:build ...... >>>>> :info:build 595 | call >>>>> isortii(nodef,iorder,nopes,kflag) >>>>> :info:build | 1 >>>>> :info:build Error: Rank mismatch between actual argument at (1) and >>>>> actual argument at (2) (scalar and rank-1) >>>>> :info:build make: *** [gencontelem_n2f.o] Error 1 >>>>> >>>>> How is a particular value of gfortran blacklisted, in this case >>>>> gfortran-mp-12? >>>> >>>> As Ken has eluded to, this is not a problem with the compiler, but an >>>> issue i. The code itself made apparent by stricter checks in recent >>>> compilers. You will likely run into the same with most recent versions so >>>> blacklisting is not the fix here. >>>> >>>> The option Ken mentioned turns off those checks >>>> >>>> https://github.com/macports/macports-ports/blob/8f07e286eac6e7fa7c9bcd282cc461ee945c7c8d/_resources/port1.0/group/compilers-1.0.tcl#L782 >>>> >>>> <https://github.com/macports/macports-ports/blob/8f07e286eac6e7fa7c9bcd282cc461ee945c7c8d/_resources/port1.0/group/compilers-1.0.tcl#L782> >>>> >>>> so is definitely the way forward I would think. >>>> >>>> Chris >>>> >>>>> >>>>> Mark Brethen >>>>> mark.bret...@gmail.com <mailto:mark.bret...@gmail.com> >>>>> >>>>> >>>>> >>>>>> On Jul 6, 2022, at 10:19 PM, Mark Brethen <mark.bret...@gmail.com >>>>>> <mailto:mark.bret...@gmail.com>> wrote: >>>>>> >>>>>> The Spooles library is written in C language and has multi-threading >>>>>> subroutines. >>>>>> >>>>>> Mark Brethen >>>>>> mark.bret...@gmail.com <mailto:mark.bret...@gmail.com> >>>>>> >>>>>> >>>>>> >>>>>>> On Jul 6, 2022, at 5:06 PM, Joshua Root <j...@macports.org >>>>>>> <mailto:j...@macports.org>> wrote: >>>>>>> >>>>>>> On 2022-7-7 07:40 , Mark Brethen wrote: >>>>>>>> The source is a combination of C and fortran, so a C-compiler with >>>>>>>> fortran is needed-preferably gcc. The gcc8 build is the only one that >>>>>>>> does not issue those warnings. But I have successfully run >>>>>>>> verification test cases packaged with the source against gcc8, gcc9, >>>>>>>> gcc11 and gfortran builds. >>>>>>>> The compilers PortGroup sets gfortran by default with these settings: >>>>>>>> compilers.choose fc cc >>>>>>>> compilers.setup require_fortran -g95 -clang >>>>>>>> But it uses clang to compile the C-code. I tried blacklisting clang >>>>>>>> but then it wants to install clang-14. Choosing a gcc variant uses its >>>>>>>> associated mp-gfortan compiler. >>>>>>> >>>>>>> Yes, +gfortran is there to only give you a fortran compiler (because >>>>>>> clang doesn't have one). Is there a reason you need the C code to be >>>>>>> compiled with gcc? >>>>>>> >>>>>>> - Josh >>> >