Re: devel/llvm16 -- flang is still broken

From: Steve Kargl <sgk_at_troutmask.apl.washington.edu>
Date: Fri, 10 Feb 2023 01:26:32 UTC
On Fri, Feb 10, 2023 at 01:07:39AM +0000, Brooks Davis wrote:
> On Thu, Feb 09, 2023 at 04:59:45PM -0800, Steve Kargl wrote:
> > On Thu, Feb 09, 2023 at 02:07:11PM -0800, Steve Kargl wrote:
> > > TL:DR: Please disable building flang in devel/llvm16.
> > > 
> > > 
> > > I was hoping to test the to Fortran compilers included in
> > > devel/llvm16.  Unfortunately, neither flang16 nor flang-new16
> > > are usable.
> > 
> > This seems to work for a simple program.  Have no idea if
> > the order of libs is correct.
> > 
> > --- flang16.orig        2023-02-09 16:57:35.384452000 -0800
> > +++ flang16     2023-02-09 16:57:57.163685000 -0800
> > @@ -7,5 +7,9 @@
> >  [ -L "$tool" ] && tool=$(/bin/realpath $tool)
> >  tool=${tool##*/}
> >  tool="${LLVM_PREFIX}/bin/${tool%${LLVM_SUFFIX}}"
> > -LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}${LLVM_PREFIX}/lib" \
> > -    exec "${tool}" "${@}"
> > +#LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}${LLVM_PREFIX}/lib" \
> > +#    exec "${tool}" "${@}"
> > +exec "${tool}" "${@}" -L${LLVM_PREFIX}/lib \
> > +-lFortranCommon -lFortranDecimal -lFortranEvaluate \
> > +-lFortranLower -lFortranParser -lFortranSemantics \
> > +-lFortran_main -lFortranRuntime -lm
> 
> I'm somewhat minded to either turn it off by default or apply
> https://reviews.llvm.org/D143592 locally.  There's a contingent that
> seems to think flang must be essentially perfect before they make it at
> all usable and that seems a backwards to me.
> 

Yes, I'm aware of that exchange.  It's the former PGI and NVidia guys
hold flang and flang-new back.  To be fair, these are the guys doing
much of the heavy lifting with the implementation.

The above works if one is compile to an executable, e.g.,
'flang16 -o z a.f90'.  If one compiles to object files
 as is done with compiling a library, you see

flang16 -O2 -pipe -w -c zerrec.f
flang: warning: -lFortranCommon: 'linker' input unused
flang: warning: -lFortranDecimal: 'linker' input unused
flang: warning: -lFortranEvaluate: 'linker' input unused
flang: warning: -lFortranLower: 'linker' input unused
flang: warning: -lFortranParser: 'linker' input unused
flang: warning: -lFortranSemantics: 'linker' input unused
flang: warning: -lFortran_main: 'linker' input unused
flang: warning: -lFortranRuntime: 'linker' input unused
flang: warning: -lm: 'linker' input unused
flang: warning: argument unused during compilation: '-L/usr/local/llvm16/lib'

On the the bright, the tests for netlib BLAS all pass, and
the tests for LAPACK also appear to work.

-- 
Steve