Re: Recent seems to have broken toolchain

From: Steve Kargl <sgk_at_troutmask.apl.washington.edu>
Date: Mon, 30 May 2016 12:51:16 -0700
On Mon, May 30, 2016 at 09:29:40PM +0200, Dimitry Andric wrote:
> On 29 May 2016, at 04:27, Steve Kargl <sgk_at_troutmask.apl.washington.edu> wrote:
> > 
> > I have a Fortran application that has built forever on FreeBSD-current;
> > that is, until recently.  It now dies with the following error:
> > 
> > gfortran48 -O2 -pipe -march=native -mtune=native -static -funroll-loops \
> >  --param max-unroll-times=4 -ftree-vectorize -Wall\
> >  -rpath /usr/local/lib/gcc48 -I/home/kargl/modules -o acolor acolor.f90 \
> >   globalm.o saxm.o  -L/home/kargl/lib -L. -L/usr/local/lib -L. -ltgt -loa \
> >   -L/home/kargl/lib -L. -L/usr/local/lib -lm90 -llapack -lblas
> > ./liboa.a(pointm.o): In function `__pointm_MOD_l2norm2':
> > pointm.f90:(.text+0x490): multiple definition of `__pointm_MOD_l2norm2'
> > /home/kargl/lib/libtgt.a(pointm.o):pointm.f90:(.text+0x0): first defined here
> > 
> > Yes, pointm.o is in both libtgt.a and liboa.a.  In the past, during
> > linking, the symbols are resolved from the first of -ltgt or -loa
> > depending on the order on the command line.
> 
> If you run the above command line with -v, what linker does it use?  I
> suspect this may be something caused by a newer binutils port, or even
> by a newer gfortran.
> 
> If this is using /usr/local/bin/ld, you might want to try downgrading
> your binutils.
> 

It happens with both /usr/bin/ld and /usr/local/bin/ld.  I remove the
binutils port and still had the issue.  I tried reverting recent changes
to elftoolchain/libelftc, the resulting tree would not build.
For the record,

% /usr/bin/ld -v
GNU ld 2.17.50
% /usr/local/bin/ld -v
GNU ld (GNU Binutils) 2.25.1 

I forgot to note that the problem does not occur for amd64 FreeBSD at
r299122.  Unfortunately, I won't have time until the end of the week
to try to bisect the src tree (which is going to be a monumental pain
with keeping everything in sync). 
 
As a workaround, I have added -Wl,--allow-multiple-definition to the
compiler options for gfortran48.

-- 
Steve
Received on Mon May 30 2016 - 17:51:18 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:05 UTC