This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH v2 3/3] Consolidate posix_fadvise implementations
- From: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- To: Joseph Myers <joseph at codesourcery dot com>
- Cc: libc-alpha at sourceware dot org
- Date: Wed, 12 Oct 2016 10:51:01 -0300
- Subject: Re: [PATCH v2 3/3] Consolidate posix_fadvise implementations
- Authentication-results: sourceware.org; auth=none
- References: <1475021701-22246-1-git-send-email-adhemerval.zanella@linaro.com> <1475021701-22246-3-git-send-email-adhemerval.zanella@linaro.com> <724b49ae-ab7a-d678-cac6-ba286bf8b069@gotplt.org> <alpine.DEB.2.20.1610112345340.11874@digraph.polyomino.org.uk>
On 11/10/2016 20:46, Joseph Myers wrote:
> I'm now seeing a build failure for MIPS n64:
>
> libc.so:(*IND*+0x0): multiple definition of `posix_fadvise64@GLIBC_2.2'
> libc.so::(.text+0xcf940): first defined here
> libc.so:(*IND*+0x0): multiple definition of `posix_fadvise64'
> collect2: error: ld returned 1 exit status
>
For some reason I am not seeing this issue with my mips64n64 toolchain
(gcc 5.3.1, binutils 2.26.0.20160331).
Checking the objects, I am seeing that posix_advise64 is defined only
on posix_fadvise64.os:
$ /opt/cross/bin/mips64-linux-gnuabi64-objdump -t ./io/posix_fadvise64.os | grep posix_fadvise64
./io/posix_fadvise64.os: file format elf64-tradbigmips
0000000000000000 g F .text 000000000000001c __posix_fadvise64_l32
0000000000000000 g F .text 000000000000001c __posix_fadvise64_l64
0000000000000000 w F .text 000000000000001c posix_fadvise64
0000000000000000 g F .text 000000000000001c posix_fadvise64@GLIBC_2.2
0000000000000000 g F .text 000000000000001c posix_fadvise64@@GLIBC_2.3.3
$ /opt/cross/bin/mips64-linux-gnuabi64-objdump -t ./io/posix_fadvise.os | grep posix_fadvise64
$
So could this be a non-empty build directory? I usually clean the folder
completely before restarting a new build.
For this consolidations patches I am doing a full build on all supported
architectures before pushing them (aarch64, alpha, armeabi, armeabihf,
hppa, ia64, i686, m68k, microblaze, mips{32,64,n32}, nios2,
powerpc{32, 64,64le}, s390{x}, sh4, sparc{64}, tile{pro,x64}, and
x86_64).