This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See crosstool-NG for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: need -fPIC cc flag?


Reinoud, list,

On Mon, 2015-04-13 at 12:59 -0600, Reinoud Koornstra wrote:
> Hi Everyone,
> 
> I kind of asked this question already, but I can't seem to get the
> -fPIC as flag in the final gcc compilation. This is for mips with ssp
> and uclibc. The problem complained about it:
> /media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/bin/ld:
> .libs/compatibility.o: relocation R_MIPS_HI16 against `__gnu_local_gp'
> can not be used when making a shared object; recompile with -fPIC
> as you can see below.
> Any hints as to how I can get -fPIC inserted as a cflag argument?
> 
> 
> [ALL  ]    libtool: compile: mv -f "compatibility-chrono.o"
> ".libs/compatibility-chrono.o"
> [ALL  ]    libtool: compile:
> /media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/./gcc/xgcc
> -shared-libgcc -B/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/./gcc
> -nostdinc++ -L/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/src
> -L/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/src/.libs
> -L/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/libsupc++/.libs
> -B/media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/bin/
> -B/media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/lib/
> -isystem /media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/include
> -isystem /media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/sys-include
> -I/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/include/mipsel-coconut-linux-uclibc
> -I/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/include
> -I/media/SSD/Reinoud/latest_crosstools/.build/src/gcc-4.9.2/libstdc++-v3/libsupc++
> -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual
> -Wabi -fdiagnostics-show-location=once -ffunction-sections
> -fdata-sections -frandom-seed=compatibility-chrono.lo -g -Os
> -std=gnu++11 -c
> /media/SSD/Reinoud/latest_crosstools/.build/src/gcc-4.9.2/libstdc++-v3/src/c++11/compatibility-chrono.cc
> >/dev/null 2>&1
> [ALL  ]    /bin/bash ../libtool --tag CXX   --mode=compile
> /media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/./gcc/xgcc
> -shared-libgcc -B/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/./gcc
> -nostdinc++ -L/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/src
> -L/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/src/.libs
> -L/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/libsupc++/.libs
> -B/media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/bin/
> -B/media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/lib/
> -isystem /media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/include
> -isystem /media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/sys-include
>     -I/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/include/mipsel-coconut-linux-uclibc
> -I/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/include
> -I/media/SSD/Reinoud/latest_crosstools/.build/src/gcc-4.9.2/libstdc++-v3/libsupc++
>   -fno-implicit-templates  -Wall -Wextra -Wwrite-strings -Wcast-qual
> -Wabi  -fdiagnostics-show-location=once   -ffunction-sections
> -fdata-sections  -frandom-seed=compatibility-condvar.lo -g -Os
> -std=gnu++11 -c
> /media/SSD/Reinoud/latest_crosstools/.build/src/gcc-4.9.2/libstdc++-v3/src/c++11/compatibility-condvar.cc
> [ALL  ]    libtool: compile:
> /media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/./gcc/xgcc
> -shared-libgcc -B/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/./gcc
> -nostdinc++ -L/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/src
> -L/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/src/.libs
> -L/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/libsupc++/.libs
> -B/media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/bin/
> -B/media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/lib/
> -isystem /media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/include
> -isystem /media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/sys-include
> -I/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/include/mipsel-coconut-linux-uclibc
> -I/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/include
> -I/media/SSD/Reinoud/latest_crosstools/.build/src/gcc-4.9.2/libstdc++-v3/libsupc++
> -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual
> -Wabi -fdiagnostics-show-location=once -ffunction-sections
> -fdata-sections -frandom-seed=compatibility-condvar.lo -g -Os
> -std=gnu++11 -c
> /media/SSD/Reinoud/latest_crosstools/.build/src/gcc-4.9.2/libstdc++-v3/src/c++11/compatibility-condvar.cc
>  -D_GLIBCXX_SHARED
> [ALL  ]    /tmp/ccFVSe46.s: Assembler messages:
> [ALL  ]    /tmp/ccFVSe46.s: Warning: .gnu_attribute 4,3 requires `softfloat'
> [ALL  ]    libtool: compile: mv -f "compatibility-condvar.o"
> ".libs/compatibility-condvar.o"
> [ALL  ]    libtool: compile:
> /media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/./gcc/xgcc
> -shared-libgcc -B/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/./gcc
> -nostdinc++ -L/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/src
> -L/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/src/.libs
> -L/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/libsupc++/.libs
> -B/media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/bin/
> -B/media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/lib/
> -isystem /media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/include
> -isystem /media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/sys-include
> -I/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/include/mipsel-coconut-linux-uclibc
> -I/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/include
> -I/media/SSD/Reinoud/latest_crosstools/.build/src/gcc-4.9.2/libstdc++-v3/libsupc++
> -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual
> -Wabi -fdiagnostics-show-location=once -ffunction-sections
> -fdata-sections -frandom-seed=compatibility-condvar.lo -g -Os
> -std=gnu++11 -c
> /media/SSD/Reinoud/latest_crosstools/.build/src/gcc-4.9.2/libstdc++-v3/src/c++11/compatibility-condvar.cc
> >/dev/null 2>&1
> [ALL  ]    cp /media/SSD/Reinoud/latest_crosstools/.build/src/gcc-4.9.2/libstdc++-v3/config/abi/pre/gnu.ver
> libstdc++-symbols.ver.tmp
> [ALL  ]    chmod +w libstdc++-symbols.ver.tmp
> [ALL  ]    if test "x" != x; then         if grep '^# Appended to
> version file.'                /dev/null > /dev/null 2>&1; then
>    cat  >> libstdc++-symbols.ver.tmp;    else      sed -n '1,/DO NOT
> DELETE/p' libstdc++-symbols.ver.tmp > tmp.top;           sed -n '/DO
> NOT DELETE/,$p' libstdc++-symbols.ver.tmp > tmp.bottom;
> cat tmp.top  tmp.bottom > libstdc++-symbols.ver.tmp;            rm
> tmp.top tmp.bottom;           fi;   fi
> [ALL  ]    /media/SSD/Reinoud/latest_crosstools/.build/tools/bin/grep
> -E -v '^[         ]*#(#| |$)' libstdc++-symbols.ver.tmp |
> /media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/./gcc/xgcc
> -B/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/./gcc/
> -B/media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/bin/
> -B/media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/lib/
> -isystem /media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/include
> -isystem /media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/sys-include
>    -E -P -include ../config.h - > libstdc++-symbols.ver || (rm -f
> libstdc++-symbols.ver ; exit 1)
> [ALL  ]    rm -f libstdc++-symbols.ver.tmp
> [ALL  ]    /bin/bash ../libtool --tag CXX   --mode=link
> /media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/./gcc/xgcc
> -shared-libgcc -B/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/./gcc
> -nostdinc++ -L/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/src
> -L/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/src/.libs
> -L/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/libsupc++/.libs
> -B/media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/bin/
> -B/media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/lib/
> -isystem /media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/include
> -isystem /media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/sys-include
>     -Wl,-O1 -Wl,-z,relro -Wl,--gc-sections   -fno-implicit-templates
> -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi
> -fdiagnostics-show-location=once   -ffunction-sections -fdata-sections
>  -frandom-seed=libstdc++.la  '-Wl,-EL' -o libstdc++.la -version-info
> 6:20:0 -Wl,--version-script=libstdc++-symbols.ver -lm -rpath
> /media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/lib
> compatibility.lo compatibility-debug_list.lo
> compatibility-debug_list-2.lo  compatibility-c++0x.lo
> compatibility-atomic-c++0x.lo compatibility-thread-c++0x.lo
> compatibility-chrono.lo compatibility-condvar.lo
> ../libsupc++/libsupc++convenience.la
> ../src/c++98/libc++98convenience.la
> ../src/c++11/libc++11convenience.la
> [ALL  ]    libtool: link:
> /media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/./gcc/xgcc
> -shared-libgcc -B/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/./gcc
> -nostdinc++ -L/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/src
> -L/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/src/.libs
> -L/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/libsupc++/.libs
> -B/media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/bin/
> -B/media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/lib/
> -isystem /media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/include
> -isystem /media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/sys-include
>    -shared -nostdlib
> /media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/sysroot/usr/lib/crti.o
> /media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/./gcc/crtbeginS.o
>  .libs/compatibility.o .libs/compatibility-debug_list.o
> .libs/compatibility-debug_list-2.o .libs/compatibility-c++0x.o
> .libs/compatibility-atomic-c++0x.o .libs/compatibility-thread-c++0x.o
> .libs/compatibility-chrono.o .libs/compatibility-condvar.o
> -Wl,--whole-archive ../libsupc++/.libs/libsupc++convenience.a
> ../src/c++98/.libs/libc++98convenience.a
> ../src/c++11/.libs/libc++11convenience.a -Wl,--no-whole-archive
> -L/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/libsupc++/.libs
> -L/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/src
> -L/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/mipsel-coconut-linux-uclibc/libstdc++-v3/src/.libs
> -lm -L/media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/./gcc
> -L/media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/bin
> -L/media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/lib
> -L/media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/sysroot/lib
> -L/media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/sysroot/usr/lib
> -lc -lgcc_s /media/SSD/Reinoud/latest_crosstools/.build/mipsel-coconut-linux-uclibc/build/build-cc-final/./gcc/crtendS.o
> /media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/sysroot/usr/lib/crtn.o
>  -Wl,-O1 -Wl,-z -Wl,relro -Wl,--gc-sections -Wl,-EL
> -Wl,--version-script=libstdc++-symbols.ver   -Wl,-soname
> -Wl,libstdc++.so.6 -o .libs/libstdc++.so.6.0.20
> [ALL  ]    /media/SSD/Reinoud/latest_crosstools/linux-mips/mipsel-coconut-linux-uclibc/bin/ld:
> .libs/compatibility.o: relocation R_MIPS_HI16 against `__gnu_local_gp'
> can not be used when making a shared object; recompile with -fPIC
> [ALL  ]    .libs/compatibility.o: error adding symbols: Bad value
> [ERROR]    collect2: error: ld returned 1 exit status


So, I was in need of doing some build testing, and I did builds on other
architectures and found no issues.

However, when building mipsel-unknown-linux-gnu, I got the same error
with final gcc's libatomic.la. It should be a static library that is
being built shared for some reason.

I'm trying a mips64el build right now. I'll update with more info.

-Bryan

Attachment: signature.asc
Description: This is a digitally signed message part


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]