Cross-Compiler

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

Cross-compiling GHC

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

Leave a Reply

Your email address will not be published. Required fields are marked *