Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 May 2016 12:51:16 -0700
From:      Steve Kargl <sgk@troutmask.apl.washington.edu>
To:        Dimitry Andric <dim@FreeBSD.org>
Cc:        freebsd-current@freebsd.org
Subject:   Re: Recent seems to have broken toolchain
Message-ID:  <20160530195116.GA93546@troutmask.apl.washington.edu>
In-Reply-To: <1EF864CF-12E8-4A48-B6E9-317D438B7B7C@FreeBSD.org>
References:  <20160529022702.GA57282@troutmask.apl.washington.edu> <1EF864CF-12E8-4A48-B6E9-317D438B7B7C@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, May 30, 2016 at 09:29:40PM +0200, Dimitry Andric wrote:
> On 29 May 2016, at 04:27, Steve Kargl <sgk@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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160530195116.GA93546>