FreeBSD Toolchain
BSD Toolchain Project
The LLVM Compiler Infrastructure
The LLDB Debugger
build – host – target
Traditional cross-compilation terminology defines three platforms:
- build – the platform we’re building on
- host – the platform the compiler will run on
- target – the platform the compiler we’re building will generate code for
arch-vendor-os
Can anyone explain the gcc cross-compiler naming convention?
Building a Cross-Compiler
How to make a cross compiler (gcc) for freebsd under linux. A small tutorial
GNU development tools (binutils)
This directory contains various GNU compilers, assemblers, linkers,
debuggers, etc., plus their support routines, definitions, and documentation.t
$ mkdir /usr/x86_64-freebsd $ mkdir /usr/x86_64-freebsd/src $ mv ~/Downloads/binutils-2.24.tar.gz /usr/x86_64-freebsd/src $ cd /usr/x86_64-freebsd/src $ tar -xzf binutils-2.24.tar.gz $ cd binutils-2.24 $ ./configure --enable-libssp --enable-gold --enable-ld \ --target=x86_64-pc-freebsd10.0 --prefix=/usr/x86_64-freebsd $ make -j 4 $ make install
GNU MP (gmp)
GNU MP is a library for arbitrary precision arithmetic, operating on signed
integers, rational numbers, and floating point numbers.
$ mv ~/Downloads/gmp-5.1.3.tar.gz /usr/x86_64-freebsd/src $ cd /usr/x86_64-freebsd/src $ tar -xzf gmp-5.1.3.tar.gz $ cd gmp-5.1.3 $ ./configure --prefix=/usr/x86_64-freebsd --enable-shared \ --enable-static --enable-mpbsd --enable-fft --enable-cxx \ --host=x86_64-pc-freebsd10.0 configure: summary of build options: Version: GNU MP 5.1.3 Host type: x86_64-pc-freebsd10.0 ABI: 64 Install prefix: /usr/x86_64-freebsd Compiler: gcc -std=gnu99 Static libraries: yes Shared libraries: yes $ make -j 4 $ make install +-------------------------------------------------------------+ | CAUTION: | | | | If you have not already run "make check", then we strongly | | recommend you do so. | | | | GMP has been carefully tested by its authors, but compilers | | are all too often released with serious bugs. GMP tends to | | explore interesting corners in compilers and has hit bugs | | on quite a few occasions. | | | +-------------------------------------------------------------+ $ make check
GNU MPFR (mpfr)
The MPFR library is a C library for multiple-precision floating-point computations with correct rounding.
$ mv ~/Downloads/mpfr-3.1.2.tar.gz /usr/x86_64-freebsd/src $ cd /usr/x86_64-freebsd/src $ tar -xzf mpfr-3.1.2.tar.gz $ cd mpfr-3.1.2 $ ./configure --prefix=/usr/x86_64-freebsd --with-gnu-ld \ --with-gmp=/usr/x86_64-freebsd --enable-static \ --enable-shared --host=x86_64-pc-freebsd10.0 $ make -j 4 $ make install
GNU MPC (mpc)
GNU MPC is a C library for the arithmetic of complex numbers with arbitrarily high precision and correct rounding of the result.
$ mv ~/Downloads/mpc-1.0.2.tar.gz /usr/x86_64-freebsd/src $ cd /usr/x86_64-freebsd/src $ tar -xzf mpc-1.0.2.tar.gz $ cd mpc-1.0.2 $ ./configure --prefix=/usr/x86_64-freebsd --with-gnu-ld \ --with-gmp=/usr/x86_64-freebsd --with-mpfr=/usr/x86_64-freebsd \ --enable-static --enable-shared --host=x86_64-pc-freebsd10.0 $ make -j 4 $ make install
GNU libgomp
The GOMP project has developed an implementation of OpenMP for the C, C++, and Fortran compilers in the GNU Compiler Collection and is further improving it. As part of the GNU Project, GOMP simplifies parallel programming for all GNU system variants. This effort operates in an open environment to attract developers and ensure applicability across multiple architectures and applications.
Not used!
GCC
$ mv ~/Downloads/gcc-4.8.3.tar.gz /usr/x86_64-freebsd/src $ cd /usr/x86_64-freebsd/src $ tar -xzf gcc-4.8.3.tar.gz $ cd gcc-4.8.3 $ mkdir obj $ cd obj $ ../configure --without-headers --with-gnu-as --with-gnu-ld \ --enable-languages=c,c++ --disable-nls --enable-libssp \ --enable-gold --enable-ld --target=x86_64-pc-freebsd10.0 \ --prefix=/usr/x86_64-freebsd \ --with-gmp=/usr/x86_64-freebsd \ --with-mpc=/usr/x86_64-freebsd \ --with-mpfr=/usr/x86_64-freebsd \ --disable-libgomp $ LD_LIBRARY_PATH=/usr/x86_64-freebsd/lib make -j 4 ../configure --without-headers --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --disable-nls --enable-libssp --enable-gold --enable-ld --target=x86_64-pc-freebsd10.0 --prefix=/usr/x86_64-freebsd --with-gmp=/usr/x86_64-freebsd --with-mpc=/usr/x86_64-freebsd --with-mpfr=/usr/x86_64-freebsd --disable-libgomp --with-build-sysroot=/usr/x86_64-freebsd
FAQ
$ mv ~/Downloads/gcc-4.8.3.tar.gz /usr/x86_64-freebsd/src
$ cd /usr/x86_64-freebsd/src
$ tar -xzf gcc-4.8.3.tar.gz
$ cd gcc-4.8.3
$ mkdir obj
$ cd obj
$ ../configure [...]
$ LD_LIBRARY_PATH=/usr/x86_64-freebsd/lib make -j 4
[...]
/usr/x86_64-freebsd/src/gcc-4.8.3/obj/./gcc/xgcc -B/usr/x86_64-freebsd/src/gcc-4.8.3/obj/./gcc/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/lib/ -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/include -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/sys-include -O2 -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fpic -pthread -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -Dinhibit_libc -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 -Wl,--version-script=libgcc.map -o ./libgcc_s.so.1.tmp -g -O2 -B./ _muldi3_s.o _negdi2_s.o _lshrdi3_s.o _ashldi3_s.o _ashrdi3_s.o _cmpdi2_s.o _ucmpdi2_s.o _clear_cache_s.o _trampoline_s.o __main_s.o _absvsi2_s.o _absvdi2_s.o _addvsi3_s.o _addvdi3_s.o _subvsi3_s.o _subvdi3_s.o _mulvsi3_s.o _mulvdi3_s.o _negvsi2_s.o _negvdi2_s.o _ctors_s.o _ffssi2_s.o _ffsdi2_s.o _clz_s.o _clzsi2_s.o _clzdi2_s.o _ctzsi2_s.o _ctzdi2_s.o _popcount_tab_s.o _popcountsi2_s.o _popcountdi2_s.o _paritysi2_s.o _paritydi2_s.o _powisf2_s.o _powidf2_s.o _powixf2_s.o _powitf2_s.o _mulsc3_s.o _muldc3_s.o _mulxc3_s.o _multc3_s.o _divsc3_s.o _divdc3_s.o _divxc3_s.o _divtc3_s.o _bswapsi2_s.o _bswapdi2_s.o _clrsbsi2_s.o _clrsbdi2_s.o _fixunssfsi_s.o _fixunsdfsi_s.o _fixunsxfsi_s.o _fixsfdi_s.o _fixdfdi_s.o _fixxfdi_s.o _fixunssfdi_s.o _fixunsdfdi_s.o _fixunsxfdi_s.o _floatdisf_s.o _floatdidf_s.o _floatdixf_s.o _floatundisf_s.o _floatundidf_s.o _floatundixf_s.o _divdi3_s.o _moddi3_s.o _udivdi3_s.o _umoddi3_s.o _udiv_w_sdiv_s.o _udivmoddi4_s.o cpuinfo_s.o sfp-exceptions_s.o addtf3_s.o divtf3_s.o eqtf2_s.o getf2_s.o letf2_s.o multf3_s.o negtf2_s.o subtf3_s.o unordtf2_s.o fixtfsi_s.o fixunstfsi_s.o floatsitf_s.o floatunsitf_s.o fixtfdi_s.o fixunstfdi_s.o floatditf_s.o floatunditf_s.o fixtfti_s.o fixunstfti_s.o floattitf_s.o floatuntitf_s.o extendsftf2_s.o extenddftf2_s.o extendxftf2_s.o trunctfsf2_s.o trunctfdf2_s.o trunctfxf2_s.o enable-execute-stack_s.o unwind-dw2_s.o unwind-dw2-fde-dip_s.o unwind-sjlj_s.o unwind-c_s.o emutls_s.o libgcc.a -lc && rm -f ./libgcc_s.so && if [ -f ./libgcc_s.so.1 ]; then mv -f ./libgcc_s.so.1 ./libgcc_s.so.1.backup; else true; fi && mv ./libgcc_s.so.1.tmp ./libgcc_s.so.1 && ln -s libgcc_s.so.1 ./libgcc_s.so
/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ld: cannot find /lib/libc.so.7
/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ld: cannot find /usr/lib/libc_nonshared.a
/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ld: cannot find /usr/lib/libssp_nonshared.a
collect2: error: ld returned 1 exit status
make[2]: *** [libgcc_s.so] Error 1
make[2]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.8.3/obj/x86_64-pc-freebsd10.0/libgcc'
make[1]: *** [all-target-libgcc] Error 2
make[1]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.8.3/obj'
make: *** [all] Error 2
.../bin/ld: cannot find /lib/libc.so.7
.../bin/ld: cannot find /usr/lib/libc_nonshared.a
.../bin/ld: cannot find /usr/lib/libssp_nonshared.a
$ uname -a
FreeBSD gateway 10.0-RELEASE FreeBSD 10.0-RELEASE #1: Sun Apr 20 15:45:27 CEST 2014 bachi@gateway:/usr/obj/usr/src/sys/INES amd64
$ find /lib -name 'libc.so*'
/lib/libc.so.7
$ find /usr/lib -name 'libc.so*'
/usr/lib/libc.so
$ find /usr/lib -name 'libc_nonshared*'
/usr/lib/libc_nonshared.a
$ find /usr/lib -name 'libssp_nonshared*'
/usr/lib/libssp_nonshared.a
$ lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu quantal (development branch)
Release: 12.10
Codename: quantal
$ uname -a
Linux andreas-OptiPlex-9010 3.5.0-6-generic #6-Ubuntu SMP Mon Jul 23 19:52:14 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
$ find /lib -name 'libc.so*'
/lib/x86_64-linux-gnu/libc.so.6
/lib/i386-linux-gnu/libc.so.6
$ find /usr/lib -name 'libc.so*'
/usr/lib/x86_64-linux-gnu/libc.so
$ find /usr/lib -name 'libc_nonshared*'
/usr/lib/x86_64-linux-gnu/libc_nonshared.a
$ find /usr/lib -name 'libssp_nonshared*'
/usr/lib/gcc/x86_64-linux-gnu/4.7/libssp_nonshared.a
/usr/lib/gcc/arm-linux-gnueabi/4.7/libssp_nonshared.a
$ lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 14.04.1 LTS
Release: 14.04
Codename: trusty
$ uname -a
Linux ines-OptiPlex-745 3.13.0-35-generic #62-Ubuntu SMP Fri Aug 15 01:58:01 UTC 2014 i686 i686 i686 GNU/Linux
$ find /lib -name 'libc.so*'
/lib/i386-linux-gnu/libc.so.6
$ find /usr/lib -name 'libc.so*'
/usr/lib/i386-linux-gnu/libc.so
$ find /usr/lib -name 'libc_nonshared*'
/usr/lib/i386-linux-gnu/libc_nonshared.a
$ find /usr/lib -name 'libssp_nonshared*'
/usr/lib/gcc/i686-linux-gnu/4.7/libssp_nonshared.a
/usr/lib/gcc/i686-linux-gnu/4.8/libssp_nonshared.a
–disable-multilib
The same as above
Make without LD_LIBRARY_PATH
make[2]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.7.4/objdir/gcc' Checking multilib configuration for libgcc... mkdir -p -- x86_64-pc-freebsd10.0/libgcc Configuring in x86_64-pc-freebsd10.0/libgcc configure: creating cache ./config.cache checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-pc-freebsd10.0 checking for --enable-version-specific-runtime-libs... no checking for a BSD-compatible install... /usr/bin/install -c checking for gawk... gawk checking for x86_64-pc-freebsd10.0-ar... /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ar checking for x86_64-pc-freebsd10.0-lipo... x86_64-pc-freebsd10.0-lipo checking for x86_64-pc-freebsd10.0-nm... /usr/x86_64-freebsd/src/gcc-4.7.4/objdir/./gcc/nm checking for x86_64-pc-freebsd10.0-ranlib... /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ranlib checking for x86_64-pc-freebsd10.0-strip... /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/strip checking whether ln -s works... yes checking for x86_64-pc-freebsd10.0-gcc... /usr/x86_64-freebsd/src/gcc-4.7.4/objdir/./gcc/xgcc -B/usr/x86_64-freebsd/src/gcc-4.7.4/objdir/./gcc/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/lib/ -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/include -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/sys-include checking for suffix of object files... configure: error: in `/usr/x86_64-freebsd/src/gcc-4.7.4/objdir/x86_64-pc-freebsd10.0/libgcc': configure: error: cannot compute suffix of object files: cannot compile See `config.log' for more details. make[1]: *** [configure-target-libgcc] Error 1 make[1]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.7.4/objdir' make: *** [all] Error 2
...
Configure with –with-build-sysroot
# ../configure --without-headers --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --disable-nls --enable-libssp --enable-gold --enable-ld --target=x86_64-pc-freebsd10.0 --prefix=/usr/x86_64-freebsd --with-gmp=/usr/x86_64-freebsd --with-mpc=/usr/x86_64-freebsd --with-mpfr=/usr/x86_64-freebsd --disable-libgomp --disable-multilib --with-build-sysroot=/usr/x86_64-freebsd # LD_LIBRARY_PATH=/usr/x86_64-freebsd/lib make -j 4 [...] /usr/x86_64-freebsd/src/gcc-4.7.4/objdir/./gcc/xgcc -B/usr/x86_64-freebsd/src/gcc-4.7.4/objdir/./gcc/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/lib/ -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/include -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/sys-include --sysroot=/usr/x86_64-freebsd -O2 -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fpic -pthread -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -Dinhibit_libc -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 -Wl,--version-script=libgcc.map -o ./libgcc_s.so.1.tmp -g -O2 -B./ _muldi3_s.o _negdi2_s.o _lshrdi3_s.o _ashldi3_s.o _ashrdi3_s.o _cmpdi2_s.o _ucmpdi2_s.o _clear_cache_s.o _trampoline_s.o __main_s.o _absvsi2_s.o _absvdi2_s.o _addvsi3_s.o _addvdi3_s.o _subvsi3_s.o _subvdi3_s.o _mulvsi3_s.o _mulvdi3_s.o _negvsi2_s.o _negvdi2_s.o _ctors_s.o _ffssi2_s.o _ffsdi2_s.o _clz_s.o _clzsi2_s.o _clzdi2_s.o _ctzsi2_s.o _ctzdi2_s.o _popcount_tab_s.o _popcountsi2_s.o _popcountdi2_s.o _paritysi2_s.o _paritydi2_s.o _powisf2_s.o _powidf2_s.o _powixf2_s.o _powitf2_s.o _mulsc3_s.o _muldc3_s.o _mulxc3_s.o _multc3_s.o _divsc3_s.o _divdc3_s.o _divxc3_s.o _divtc3_s.o _bswapsi2_s.o _bswapdi2_s.o _clrsbsi2_s.o _clrsbdi2_s.o _fixunssfsi_s.o _fixunsdfsi_s.o _fixunsxfsi_s.o _fixsfdi_s.o _fixdfdi_s.o _fixxfdi_s.o _fixunssfdi_s.o _fixunsdfdi_s.o _fixunsxfdi_s.o _floatdisf_s.o _floatdidf_s.o _floatdixf_s.o _floatundisf_s.o _floatundidf_s.o _floatundixf_s.o _divdi3_s.o _moddi3_s.o _udivdi3_s.o _umoddi3_s.o _udiv_w_sdiv_s.o _udivmoddi4_s.o addtf3_s.o divtf3_s.o eqtf2_s.o getf2_s.o letf2_s.o multf3_s.o negtf2_s.o subtf3_s.o unordtf2_s.o fixtfsi_s.o fixunstfsi_s.o floatsitf_s.o floatunsitf_s.o fixtfdi_s.o fixunstfdi_s.o floatditf_s.o floatunditf_s.o fixtfti_s.o fixunstfti_s.o floattitf_s.o floatuntitf_s.o extendsftf2_s.o extenddftf2_s.o extendxftf2_s.o trunctfsf2_s.o trunctfdf2_s.o trunctfxf2_s.o enable-execute-stack_s.o unwind-dw2_s.o unwind-dw2-fde-dip_s.o unwind-sjlj_s.o unwind-c_s.o emutls_s.o libgcc.a -lc && rm -f ./libgcc_s.so && if [ -f ./libgcc_s.so.1 ]; then mv -f ./libgcc_s.so.1 ./libgcc_s.so.1.backup; else true; fi && mv ./libgcc_s.so.1.tmp ./libgcc_s.so.1 && ln -s libgcc_s.so.1 ./libgcc_s.so /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ld: this linker was not configured to use sysroots collect2: error: ld returned 1 exit status make[2]: *** [libgcc_s.so] Error 1 make[2]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.7.4/objdir/x86_64-pc-freebsd10.0/libgcc' make[1]: *** [all-target-libgcc] Error 2 make[1]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.7.4/objdir' make: *** [all] Error 2
========================================================================
Alles mit sysroot
$ ./configure --enable-libssp --enable-gold --enable-ld --target=x86_64-pc-freebsd10.0 --prefix=/usr/x86_64-freebsd --with-build-sysroot=/usr/x86_64-freebsd/x86_64-pc-freebsd10.0
$ ../configure \ --with-gnu-as \ --with-gnu-ld \ --enable-languages=c,c++ \ --disable-nls \ --enable-libssp \ --enable-gold \ --enable-ld \ --target=x86_64-pc-freebsd10.0 \ --prefix=/usr/x86_64-freebsd \ --with-gmp=/usr/x86_64-freebsd \ --with-mpc=/usr/x86_64-freebsd \ --with-mpfr=/usr/x86_64-freebsd \ --disable-libgomp \ --disable-multilib \ --with-build-sysroot=/usr/x86_64-freebsd/x86_64-pc-freebsd10.0 $ LD_LIBRARY_PATH=/usr/x86_64-freebsd/lib make [...] make[2]: Entering directory `/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libgcc' # If this is the top-level multilib, build all the other # multilibs. DEFINES='' HEADERS='' \ ../../../libgcc/mkheader.sh > tmp-libgcc_tm.h /bin/bash ../../../libgcc/../move-if-change tmp-libgcc_tm.h libgcc_tm.h echo timestamp > libgcc_tm.stamp /usr/x86_64-freebsd/src/gcc-4.8.3/objdir/./gcc/xgcc -B/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/./gcc/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/lib/ -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/include -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/sys-include --sysroot=/usr/x86_64-freebsd/x86_64-pc-freebsd10.0 -g -O2 -O2 -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fpic -pthread -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -Dinhibit_libc -fpic -pthread -I. -I. -I../.././gcc -I../../../libgcc -I../../../libgcc/. -I../../../libgcc/../gcc -I../../../libgcc/../include -DHAVE_CC_TLS -o _muldi3.o -MT _muldi3.o -MD -MP -MF _muldi3.dep -DL_muldi3 -c ../../../libgcc/libgcc2.c -fvisibility=hidden -DHIDE_EXPORTS In file included from ../../../libgcc/../gcc/tsystem.h:44:0, from ../../../libgcc/libgcc2.c:27: /usr/x86_64-freebsd/src/gcc-4.8.3/objdir/gcc/include/stddef.h:56:24: fatal error: sys/_types.h: No such file or directory #include <sys/_types.h> ^ compilation terminated. make[2]: *** [_muldi3.o] Error 1 make[2]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libgcc' make[1]: *** [all-target-libgcc] Error 2 make[1]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.8.3/objdir' make: *** [all] Error 2 # find /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/usr/include -name _types.h /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/usr/include/sys/_types.h /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/usr/include/machine/_types.h /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/usr/include/x86/_types.h
==========================
/bin/bash ../libtool --tag CXX --mode=link /usr/x86_64-freebsd/src/gcc-4.8.3/objdir/./gcc/xgcc -shared-libgcc -B/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/./gcc -nostdinc++ -L/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3/src -L/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3/src/.libs -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/lib/ -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/include -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/sys-include --sysroot=/usr/x86_64-freebsd/x86_64-pc-freebsd10.0 -Wl,-O1 -Wl,-z,relro -Wl,--gc-sections -fPIC -DPIC -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=libstdc++.la -o libstdc++.la -version-info 6:19:0 -Wl,--version-script=libstdc++-symbols.ver -lm -rpath /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/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 ../libsupc++/libsupc++convenience.la ../src/c++98/libc++98convenience.la ../src/c++11/libc++11convenience.la libtool: link: /usr/x86_64-freebsd/src/gcc-4.8.3/objdir/./gcc/xgcc -shared-libgcc -B/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/./gcc -nostdinc++ -L/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3/src -L/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3/src/.libs -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/lib/ -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/include -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/sys-include --sysroot=/usr/x86_64-freebsd/x86_64-pc-freebsd10.0 -shared -nostdlib /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/usr/lib/crti.o /usr/x86_64-freebsd/src/gcc-4.8.3/objdir/./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 -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/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3/src -L/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3/src/.libs -lm -L/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/./gcc -L/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin -L/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/lib -L/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/usr/lib -lc -lgcc_s /usr/x86_64-freebsd/src/gcc-4.8.3/objdir/./gcc/crtendS.o /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/usr/lib/crtn.o -Wl,-O1 -Wl,-z -Wl,relro -Wl,--gc-sections -Wl,--version-script=libstdc++-symbols.ver -Wl,-soname -Wl,libstdc++.so.6 -o .libs/libstdc++.so.6 /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ld: /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/usr/lib/libm.a(e_sinh.o): relocation R_X86_64_32S against `.rodata.cst16' can not be used when making a shared object; recompile with -fPIC /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/usr/lib/libm.a: error adding symbols: Bad value collect2: error: ld returned 1 exit status make[5]: *** [libstdc++.la] Error 1 make[5]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3/src' make[4]: *** [all-recursive] Error 1 make[4]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3/src' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3' make[2]: *** [all] Error 2 make[2]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3' make[1]: *** [all-target-libstdc++-v3] Error 2 make[1]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.8.3/objdir' make: *** [all] Error 2
how to recompile with -fPIC
HOWTO fix -fPIC errors
===================================================
../configure --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --disable-nls --enable-libssp --enable-gold --enable-ld --target=x86_64-pc-freebsd10.0 --prefix=/usr/x86_64-freebsd --with-gmp=/usr/x86_64-freebsd --with-mpc=/usr/x86_64-freebsd --with-mpfr=/usr/x86_64-freebsd --disable-libgomp --enable-shared --with-sysroot=/usr/x86_64-freebsd/x86_64-pc-freebsd10.0
/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/./gcc/xgcc -B/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/./gcc/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/lib/ -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/include -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/sys-include -O2 -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fpic -pthread -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 -Wl,--version-script=libgcc.map -o ./libgcc_s.so.1.tmp -g -O2 -B./ _muldi3_s.o _negdi2_s.o _lshrdi3_s.o _ashldi3_s.o _ashrdi3_s.o _cmpdi2_s.o _ucmpdi2_s.o _clear_cache_s.o _trampoline_s.o __main_s.o _absvsi2_s.o _absvdi2_s.o _addvsi3_s.o _addvdi3_s.o _subvsi3_s.o _subvdi3_s.o _mulvsi3_s.o _mulvdi3_s.o _negvsi2_s.o _negvdi2_s.o _ctors_s.o _ffssi2_s.o _ffsdi2_s.o _clz_s.o _clzsi2_s.o _clzdi2_s.o _ctzsi2_s.o _ctzdi2_s.o _popcount_tab_s.o _popcountsi2_s.o _popcountdi2_s.o _paritysi2_s.o _paritydi2_s.o _powisf2_s.o _powidf2_s.o _powixf2_s.o _powitf2_s.o _mulsc3_s.o _muldc3_s.o _mulxc3_s.o _multc3_s.o _divsc3_s.o _divdc3_s.o _divxc3_s.o _divtc3_s.o _bswapsi2_s.o _bswapdi2_s.o _clrsbsi2_s.o _clrsbdi2_s.o _fixunssfsi_s.o _fixunsdfsi_s.o _fixunsxfsi_s.o _fixsfdi_s.o _fixdfdi_s.o _fixxfdi_s.o _fixunssfdi_s.o _fixunsdfdi_s.o _fixunsxfdi_s.o _floatdisf_s.o _floatdidf_s.o _floatdixf_s.o _floatundisf_s.o _floatundidf_s.o _floatundixf_s.o _divdi3_s.o _moddi3_s.o _udivdi3_s.o _umoddi3_s.o _udiv_w_sdiv_s.o _udivmoddi4_s.o cpuinfo_s.o sfp-exceptions_s.o addtf3_s.o divtf3_s.o eqtf2_s.o getf2_s.o letf2_s.o multf3_s.o negtf2_s.o subtf3_s.o unordtf2_s.o fixtfsi_s.o fixunstfsi_s.o floatsitf_s.o floatunsitf_s.o fixtfdi_s.o fixunstfdi_s.o floatditf_s.o floatunditf_s.o fixtfti_s.o fixunstfti_s.o floattitf_s.o floatuntitf_s.o extendsftf2_s.o extenddftf2_s.o extendxftf2_s.o trunctfsf2_s.o trunctfdf2_s.o trunctfxf2_s.o enable-execute-stack_s.o unwind-dw2_s.o unwind-dw2-fde-dip_s.o unwind-sjlj_s.o unwind-c_s.o emutls_s.o libgcc.a -lc && rm -f ./libgcc_s.so && if [ -f ./libgcc_s.so.1 ]; then mv -f ./libgcc_s.so.1 ./libgcc_s.so.1.backup; else true; fi && mv ./libgcc_s.so.1.tmp ./libgcc_s.so.1 && ln -s libgcc_s.so.1 ./libgcc_s.so /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ld: cannot find crti.o: No such file or directory /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ld: cannot find -lc /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ld: cannot find crtn.o: No such file or directory collect2: error: ld returned 1 exit status make[2]: *** [libgcc_s.so] Error 1 make[2]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libgcc' make[1]: *** [all-target-libgcc] Error 2 make[1]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.8.3/objdir' make: *** [all] Error 2
========================================
libtool: compile: /usr/x86_64-freebsd/src/gcc-4.8.3/objdir/./gcc/xgcc -shared-libgcc -B/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/./gcc -nostdinc++ -L/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3/src -L/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3/src/.libs -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/lib/ -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/include -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/sys-include --sysroot=/usr/x86_64-freebsd/x86_64-pc-freebsd10.0 -I/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3/include/x86_64-pc-freebsd10.0 -I/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3/include -I/usr/x86_64-freebsd/src/gcc-4.8.3/libstdc++-v3/libsupc++ -fPIC -DPIC -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=compatibility-thread-c++0x.lo -g -O2 -std=gnu++11 -c ../../../../libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc -o compatibility-thread-c++0x.o >/dev/null 2>&1 /bin/bash ../libtool --tag CXX --mode=link /usr/x86_64-freebsd/src/gcc-4.8.3/objdir/./gcc/xgcc -shared-libgcc -B/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/./gcc -nostdinc++ -L/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3/src -L/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3/src/.libs -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/lib/ -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/include -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/sys-include --sysroot=/usr/x86_64-freebsd/x86_64-pc-freebsd10.0 -Wl,-O1 -Wl,-z,relro -Wl,--gc-sections -fPIC -DPIC -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=libstdc++.la -o libstdc++.la -version-info 6:19:0 -Wl,--version-script=libstdc++-symbols.ver -lm -rpath /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/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 ../libsupc++/libsupc++convenience.la ../src/c++98/libc++98convenience.la ../src/c++11/libc++11convenience.la libtool: link: /usr/x86_64-freebsd/src/gcc-4.8.3/objdir/./gcc/xgcc -shared-libgcc -B/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/./gcc -nostdinc++ -L/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3/src -L/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3/src/.libs -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/lib/ -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/include -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/sys-include --sysroot=/usr/x86_64-freebsd/x86_64-pc-freebsd10.0 -shared -nostdlib /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/usr/lib/crti.o /usr/x86_64-freebsd/src/gcc-4.8.3/objdir/./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 -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/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3/src -L/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3/src/.libs -lm -L/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/./gcc -L/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin -L/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/lib -L/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/usr/lib -lc -lgcc_s /usr/x86_64-freebsd/src/gcc-4.8.3/objdir/./gcc/crtendS.o /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/usr/lib/crtn.o -Wl,-O1 -Wl,-z -Wl,relro -Wl,--gc-sections -Wl,--version-script=libstdc++-symbols.ver -Wl,-soname -Wl,libstdc++.so.6 -o .libs/libstdc++.so.6 /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ld: /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/usr/lib/libm.a(e_sinh.o): relocation R_X86_64_32S against `.rodata.cst16' can not be used when making a shared object; recompile with -fPIC /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/usr/lib/libm.a: error adding symbols: Bad value collect2: error: ld returned 1 exit status make[5]: *** [libstdc++.la] Error 1 make[5]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3/src' make[4]: *** [all-recursive] Error 1 make[4]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3/src' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3' make[2]: *** [all] Error 2 make[2]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libstdc++-v3' make[1]: *** [all-target-libstdc++-v3] Error 2 make[1]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.8.3/objdir' make: *** [all] Error 2
============================================
../configure --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --disable-nls --enable-libssp --enable-gold --enable-ld --target=x86_64-pc-freebsd10.0 --prefix=/usr/x86_64-freebsd --with-gmp=/usr/x86_64-freebsd --with-mpc=/usr/x86_64-freebsd --with-mpfr=/usr/x86_64-freebsd --disable-libgomp
/bin/bash ../../../libgcc/../mkinstalldirs . /usr/x86_64-freebsd/src/gcc-4.8.3/objdir/./gcc/xgcc -B/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/./gcc/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/lib/ -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/include -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/sys-include -O2 -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fpic -pthread -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -Dinhibit_libc -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 -Wl,--version-script=libgcc.map -o ./libgcc_s.so.1.tmp -g -O2 -B./ _muldi3_s.o _negdi2_s.o _lshrdi3_s.o _ashldi3_s.o _ashrdi3_s.o _cmpdi2_s.o _ucmpdi2_s.o _clear_cache_s.o _trampoline_s.o __main_s.o _absvsi2_s.o _absvdi2_s.o _addvsi3_s.o _addvdi3_s.o _subvsi3_s.o _subvdi3_s.o _mulvsi3_s.o _mulvdi3_s.o _negvsi2_s.o _negvdi2_s.o _ctors_s.o _ffssi2_s.o _ffsdi2_s.o _clz_s.o _clzsi2_s.o _clzdi2_s.o _ctzsi2_s.o _ctzdi2_s.o _popcount_tab_s.o _popcountsi2_s.o _popcountdi2_s.o _paritysi2_s.o _paritydi2_s.o _powisf2_s.o _powidf2_s.o _powixf2_s.o _powitf2_s.o _mulsc3_s.o _muldc3_s.o _mulxc3_s.o _multc3_s.o _divsc3_s.o _divdc3_s.o _divxc3_s.o _divtc3_s.o _bswapsi2_s.o _bswapdi2_s.o _clrsbsi2_s.o _clrsbdi2_s.o _fixunssfsi_s.o _fixunsdfsi_s.o _fixunsxfsi_s.o _fixsfdi_s.o _fixdfdi_s.o _fixxfdi_s.o _fixunssfdi_s.o _fixunsdfdi_s.o _fixunsxfdi_s.o _floatdisf_s.o _floatdidf_s.o _floatdixf_s.o _floatundisf_s.o _floatundidf_s.o _floatundixf_s.o _divdi3_s.o _moddi3_s.o _udivdi3_s.o _umoddi3_s.o _udiv_w_sdiv_s.o _udivmoddi4_s.o cpuinfo_s.o sfp-exceptions_s.o addtf3_s.o divtf3_s.o eqtf2_s.o getf2_s.o letf2_s.o multf3_s.o negtf2_s.o subtf3_s.o unordtf2_s.o fixtfsi_s.o fixunstfsi_s.o floatsitf_s.o floatunsitf_s.o fixtfdi_s.o fixunstfdi_s.o floatditf_s.o floatunditf_s.o fixtfti_s.o fixunstfti_s.o floattitf_s.o floatuntitf_s.o extendsftf2_s.o extenddftf2_s.o extendxftf2_s.o trunctfsf2_s.o trunctfdf2_s.o trunctfxf2_s.o enable-execute-stack_s.o unwind-dw2_s.o unwind-dw2-fde-dip_s.o unwind-sjlj_s.o unwind-c_s.o emutls_s.o libgcc.a -lc && rm -f ./libgcc_s.so && if [ -f ./libgcc_s.so.1 ]; then mv -f ./libgcc_s.so.1 ./libgcc_s.so.1.backup; else true; fi && mv ./libgcc_s.so.1.tmp ./libgcc_s.so.1 && ln -s libgcc_s.so.1 ./libgcc_s.so /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ld: cannot find crti.o: No such file or directory collect2: error: ld returned 1 exit status make[2]: *** [libgcc_s.so] Error 1 make[2]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.8.3/objdir/x86_64-pc-freebsd10.0/libgcc' make[1]: *** [all-target-libgcc] Error 2 make[1]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.8.3/objdir' make: *** [all] Error 2
==================
../configure --with-gnu-as --with-gnu-ld --enable-languages=c --disable-nls --enable-libssp --enable-gold --enable-ld --target=x86_64-pc-freebsd10.0 --prefix=/usr/x86_64-freebsd --with-gmp=/usr/x86_64-freebsd --with-mpc=/usr/x86_64-freebsd --with-mpfr=/usr/x86_64-freebsd --disable-libgomp --enable-shared --with-build-sysroot=/usr/x86_64-freebsd/x86_64-pc-freebsd10.0
libtool: link: /usr/x86_64-freebsd/src/gcc-4.7.4/objdir/./gcc/xgcc -B/usr/x86_64-freebsd/src/gcc-4.7.4/objdir/./gcc/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10.0/lib/ -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/include -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/sys-include --sysroot=/usr/x86_64-freebsd/x86_64-pc-freebsd10.0 -shared math/.libs/acoshq.o math/.libs/fmodq.o math/.libs/acosq.o math/.libs/frexpq.o math/.libs/rem_pio2q.o math/.libs/asinhq.o math/.libs/hypotq.o math/.libs/remainderq.o math/.libs/asinq.o math/.libs/rintq.o math/.libs/atan2q.o math/.libs/isinfq.o math/.libs/roundq.o math/.libs/atanhq.o math/.libs/isnanq.o math/.libs/scalblnq.o math/.libs/atanq.o math/.libs/j0q.o math/.libs/scalbnq.o math/.libs/cbrtq.o math/.libs/j1q.o math/.libs/signbitq.o math/.libs/ceilq.o math/.libs/jnq.o math/.libs/sincos_table.o math/.libs/complex.o math/.libs/ldexpq.o math/.libs/sincosq.o math/.libs/copysignq.o math/.libs/lgammaq.o math/.libs/sincosq_kernel.o math/.libs/coshq.o math/.libs/llroundq.o math/.libs/sinhq.o math/.libs/cosq.o math/.libs/log10q.o math/.libs/sinq.o math/.libs/cosq_kernel.o math/.libs/log1pq.o math/.libs/sinq_kernel.o math/.libs/erfq.o math/.libs/logq.o math/.libs/sqrtq.o math/.libs/expm1q.o math/.libs/lroundq.o math/.libs/tanhq.o math/.libs/expq.o math/.libs/modfq.o math/.libs/tanq.o math/.libs/fabsq.o math/.libs/nanq.o math/.libs/tgammaq.o math/.libs/finiteq.o math/.libs/nextafterq.o math/.libs/truncq.o math/.libs/floorq.o math/.libs/powq.o math/.libs/fmaq.o math/.libs/cacoshq.o math/.libs/cacosq.o math/.libs/casinhq.o math/.libs/casinq.o math/.libs/catanhq.o math/.libs/catanq.o math/.libs/cimagq.o math/.libs/conjq.o math/.libs/cprojq.o math/.libs/crealq.o math/.libs/fdimq.o math/.libs/fmaxq.o math/.libs/fminq.o math/.libs/ilogbq.o math/.libs/llrintq.o math/.libs/log2q.o math/.libs/lrintq.o math/.libs/nearbyintq.o math/.libs/remquoq.o printf/.libs/addmul_1.o printf/.libs/add_n.o printf/.libs/cmp.o printf/.libs/divrem.o printf/.libs/flt1282mpn.o printf/.libs/fpioconst.o printf/.libs/lshift.o printf/.libs/mul_1.o printf/.libs/mul_n.o printf/.libs/mul.o printf/.libs/printf_fphex.o printf/.libs/printf_fp.o printf/.libs/quadmath-printf.o printf/.libs/rshift.o printf/.libs/submul_1.o printf/.libs/sub_n.o strtod/.libs/strtoflt128.o strtod/.libs/mpn2flt128.o strtod/.libs/tens_in_limb.o -lm -Wl,--version-script=../../../libquadmath/quadmath.map -Wl,-soname -Wl,libquadmath.so.0 -o .libs/libquadmath.so.0 /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ld: /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/usr/lib/libm.a(fenv.o): relocation R_X86_64_PC32 against undefined symbol `__stack_chk_guard@@FBSD_1.0' can not be used when making a shared object; recompile with -fPIC /usr/x86_64-freebsd/x86_64-pc-freebsd10.0/bin/ld: final link failed: Bad value collect2: error: ld returned 1 exit status make[3]: *** [libquadmath.la] Error 1 make[3]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.7.4/objdir/x86_64-pc-freebsd10.0/libquadmath' make[2]: *** [all] Error 2 make[2]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.7.4/objdir/x86_64-pc-freebsd10.0/libquadmath' make[1]: *** [all-target-libquadmath] Error 2 make[1]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.7.4/objdir' make: *** [all] Error 2
================================
binutils
./configure \ --enable-libssp \ --enable-gold \ --enable-ld \ --target=x86_64-pc-freebsd10 \ --prefix=/usr/x86_64-freebsd \ --with-sysroot=/usr/x86_64-freebsd/x86_64-pc-freebsd10 \ --enable-static \ --enable-shared
/bin/sh ./libtool --tag=CC --mode=link gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Werror -g -O2 -release `cat libtool-soversion` -static-libstdc++ -static-libgcc -o libbfd.la -rpath /usr/x86_64-freebsd/i686-pc-linux-gnu/x86_64-pc-freebsd10/lib archive.lo archures.lo bfd.lo bfdio.lo bfdwin.lo cache.lo coffgen.lo corefile.lo format.lo init.lo libbfd.lo opncls.lo reloc.lo section.lo syms.lo targets.lo hash.lo linker.lo srec.lo binary.lo tekhex.lo ihex.lo stabs.lo stab-syms.lo merge.lo dwarf2.lo simple.lo compress.lo verilog.lo `cat ofiles` -L/usr/x86_64-freebsd/src/binutils-2.24/bfd/../libiberty/pic -liberty -Wl,-lc,--as-needed,-lm,--no-as-needed -lz libtool: link: gcc -shared .libs/archures.o .libs/targets.o .libs/dwarf2.o -L/usr/x86_64-freebsd/src/binutils-2.24/bfd/../libiberty/pic -liberty -lz -Wl,-lc -Wl,--as-needed -Wl,-lm -Wl,--no-as-needed -Wl,-soname -Wl,libbfd-2.24.so -o .libs/libbfd-2.24.so /usr/bin/ld: cannot find -liberty collect2: error: ld returned 1 exit status make[4]: *** [libbfd.la] Error 1 make[4]: Leaving directory `/usr/x86_64-freebsd/src/binutils-2.24/bfd' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/usr/x86_64-freebsd/src/binutils-2.24/bfd' make[2]: *** [all] Error 2 make[2]: Leaving directory `/usr/x86_64-freebsd/src/binutils-2.24/bfd' make[1]: *** [all-bfd] Error 2 make[1]: Leaving directory `/usr/x86_64-freebsd/src/binutils-2.24' make: *** [all] Error 2
$ pkg search libiberty gnulibiberty-2.19.1_2 $ pkg install gnulibiberty-2.19.1_2 The following 1 packages will be affected (of 0 checked): New packages to be INSTALLED: gnulibiberty: 2.19.1_2 The process will require 449 KB more space 111 KB to be downloaded Proceed with this action [y/N]: y Fetching gnulibiberty-2.19.1_2.txz: 100% of 111 KB Checking integrity... done (0 conflicting) [1/1] Installing gnulibiberty-2.19.1_2: 100% $ find /usr/local -name 'libiberty*' /usr/local/include/libiberty /usr/local/include/libiberty/libiberty.h /usr/local/lib/libiberty.a
# apt-cache search libiberty libiberty-dev - library of utility functions used by GNU programs $ sudo apt-get install libiberty-dev Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: libiberty-dev 0 upgraded, 1 newly installed, 0 to remove and 21 not upgraded. Need to get 135 kB of archives. After this operation, 542 kB of additional disk space will be used. Get:1 http://mirror.switch.ch/ftp/mirror/ubuntu/ trusty/main libiberty-dev i386 20131116-1 [135 kB] Fetched 135 kB in 0s (731 kB/s) Selecting previously unselected package libiberty-dev:i386. (Reading database ... 324870 files and directories currently installed.) Preparing to unpack .../libiberty-dev_20131116-1_i386.deb ... Unpacking libiberty-dev:i386 (20131116-1) ... Setting up libiberty-dev:i386 (20131116-1) ...
/usr/x86_64-freebsd/src/gcc-4.9.1/objdir/./gcc/xgcc -B/usr/x86_64-freebsd/src/gcc-4.9.1/objdir/./gcc/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10/bin/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10/lib/ -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10/include -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10/sys-include -O2 -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -DNATIVE_CROSS -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fpic -pthread -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 -Wl,--version-script=libgcc.map -o ./libgcc_s.so.1.tmp -g -O2 -B./ _muldi3_s.o _negdi2_s.o _lshrdi3_s.o _ashldi3_s.o _ashrdi3_s.o _cmpdi2_s.o _ucmpdi2_s.o _clear_cache_s.o _trampoline_s.o __main_s.o _absvsi2_s.o _absvdi2_s.o _addvsi3_s.o _addvdi3_s.o _subvsi3_s.o _subvdi3_s.o _mulvsi3_s.o _mulvdi3_s.o _negvsi2_s.o _negvdi2_s.o _ctors_s.o _ffssi2_s.o _ffsdi2_s.o _clz_s.o _clzsi2_s.o _clzdi2_s.o _ctzsi2_s.o _ctzdi2_s.o _popcount_tab_s.o _popcountsi2_s.o _popcountdi2_s.o _paritysi2_s.o _paritydi2_s.o _powisf2_s.o _powidf2_s.o _powixf2_s.o _powitf2_s.o _mulsc3_s.o _muldc3_s.o _mulxc3_s.o _multc3_s.o _divsc3_s.o _divdc3_s.o _divxc3_s.o _divtc3_s.o _bswapsi2_s.o _bswapdi2_s.o _clrsbsi2_s.o _clrsbdi2_s.o _fixunssfsi_s.o _fixunsdfsi_s.o _fixunsxfsi_s.o _fixsfdi_s.o _fixdfdi_s.o _fixxfdi_s.o _fixunssfdi_s.o _fixunsdfdi_s.o _fixunsxfdi_s.o _floatdisf_s.o _floatdidf_s.o _floatdixf_s.o _floatundisf_s.o _floatundidf_s.o _floatundixf_s.o _divdi3_s.o _moddi3_s.o _udivdi3_s.o _umoddi3_s.o _udiv_w_sdiv_s.o _udivmoddi4_s.o cpuinfo_s.o sfp-exceptions_s.o addtf3_s.o divtf3_s.o eqtf2_s.o getf2_s.o letf2_s.o multf3_s.o negtf2_s.o subtf3_s.o unordtf2_s.o fixtfsi_s.o fixunstfsi_s.o floatsitf_s.o floatunsitf_s.o fixtfdi_s.o fixunstfdi_s.o floatditf_s.o floatunditf_s.o fixtfti_s.o fixunstfti_s.o floattitf_s.o floatuntitf_s.o extendsftf2_s.o extenddftf2_s.o extendxftf2_s.o trunctfsf2_s.o trunctfdf2_s.o trunctfxf2_s.o enable-execute-stack_s.o unwind-dw2_s.o unwind-dw2-fde-dip_s.o unwind-sjlj_s.o unwind-c_s.o emutls_s.o libgcc.a -lc && rm -f ./libgcc_s.so && if [ -f ./libgcc_s.so.1 ]; then mv -f ./libgcc_s.so.1 ./libgcc_s.so.1.backup; else true; fi && mv ./libgcc_s.so.1.tmp ./libgcc_s.so.1 && ln -s libgcc_s.so.1 ./libgcc_s.so /usr/x86_64-freebsd/x86_64-pc-freebsd10/bin/ld: /usr/x86_64-freebsd/x86_64-pc-freebsd10/lib/libc.a(jemalloc_jemalloc.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC /usr/x86_64-freebsd/x86_64-pc-freebsd10/lib/libc.a: error adding symbols: Bad value collect2: error: ld returned 1 exit status lrwxrwxrwx 1 root root 17 Aug 31 14:41 libc.a -> ../usr/lib/libc.a -r--r--r-- 1 root root 1567216 Jan 16 2014 libc.so.7 /usr/x86_64-freebsd/src/gcc-4.9.1/objdir/./gcc/xgcc -B/usr/x86_64-freebsd/src/gcc-4.9.1/objdir/./gcc/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10/bin/ -B/usr/x86_64-freebsd/x86_64-pc-freebsd10/lib/ -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10/include -isystem /usr/x86_64-freebsd/x86_64-pc-freebsd10/sys-include -O2 -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -DNATIVE_CROSS -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fpic -pthread -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 -Wl,--version-script=libgcc.map -o ./libgcc_s.so.1.tmp -g -O2 -B./ _muldi3_s.o _negdi2_s.o _lshrdi3_s.o _ashldi3_s.o _ashrdi3_s.o _cmpdi2_s.o _ucmpdi2_s.o _clear_cache_s.o _trampoline_s.o __main_s.o _absvsi2_s.o _absvdi2_s.o _addvsi3_s.o _addvdi3_s.o _subvsi3_s.o _subvdi3_s.o _mulvsi3_s.o _mulvdi3_s.o _negvsi2_s.o _negvdi2_s.o _ctors_s.o _ffssi2_s.o _ffsdi2_s.o _clz_s.o _clzsi2_s.o _clzdi2_s.o _ctzsi2_s.o _ctzdi2_s.o _popcount_tab_s.o _popcountsi2_s.o _popcountdi2_s.o _paritysi2_s.o _paritydi2_s.o _powisf2_s.o _powidf2_s.o _powixf2_s.o _powitf2_s.o _mulsc3_s.o _muldc3_s.o _mulxc3_s.o _multc3_s.o _divsc3_s.o _divdc3_s.o _divxc3_s.o _divtc3_s.o _bswapsi2_s.o _bswapdi2_s.o _clrsbsi2_s.o _clrsbdi2_s.o _fixunssfsi_s.o _fixunsdfsi_s.o _fixunsxfsi_s.o _fixsfdi_s.o _fixdfdi_s.o _fixxfdi_s.o _fixunssfdi_s.o _fixunsdfdi_s.o _fixunsxfdi_s.o _floatdisf_s.o _floatdidf_s.o _floatdixf_s.o _floatundisf_s.o _floatundidf_s.o _floatundixf_s.o _divdi3_s.o _moddi3_s.o _udivdi3_s.o _umoddi3_s.o _udiv_w_sdiv_s.o _udivmoddi4_s.o cpuinfo_s.o sfp-exceptions_s.o addtf3_s.o divtf3_s.o eqtf2_s.o getf2_s.o letf2_s.o multf3_s.o negtf2_s.o subtf3_s.o unordtf2_s.o fixtfsi_s.o fixunstfsi_s.o floatsitf_s.o floatunsitf_s.o fixtfdi_s.o fixunstfdi_s.o floatditf_s.o floatunditf_s.o fixtfti_s.o fixunstfti_s.o floattitf_s.o floatuntitf_s.o extendsftf2_s.o extenddftf2_s.o extendxftf2_s.o trunctfsf2_s.o trunctfdf2_s.o trunctfxf2_s.o enable-execute-stack_s.o unwind-dw2_s.o unwind-dw2-fde-dip_s.o unwind-sjlj_s.o unwind-c_s.o emutls_s.o libgcc.a -lc && rm -f ./libgcc_s.so && if [ -f ./libgcc_s.so.1 ]; then mv -f ./libgcc_s.so.1 ./libgcc_s.so.1.backup; else true; fi && mv ./libgcc_s.so.1.tmp ./libgcc_s.so.1 && ln -s libgcc_s.so.1 ./libgcc_s.so /usr/x86_64-freebsd/x86_64-pc-freebsd10/bin/ld: cannot find -lc collect2: error: ld returned 1 exit status make[2]: *** [libgcc_s.so] Error 1 make[2]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.9.1/objdir/x86_64-pc-freebsd10/libgcc' make[1]: *** [all-target-libgcc] Error 2 make[1]: Leaving directory `/usr/x86_64-freebsd/src/gcc-4.9.1/objdir' make: *** [all] Error 2