Reinoud, list, On Tue, 2015-04-14 at 14:04 -0700, Bryan Hundven wrote: > 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. As I expected, mips64el didn't have a problem. This seems to be specific to crosstool-ng and mipsel (regardless of libc). I'll look into this more this evening. > -Bryan -Bryan