title: glibc Cross Compile Configure Error
body: <p>I would like to cross compile glibc. But, I 'm getting an error.</p>
  
  <ul>
  <li>glibc version is <strong>2.24</strong>.</li>
  <li>I tried compiling host and target <strong>i686-elf</strong>.</li>
  <li>My $MACHTYPE environment label is <strong>x86_64-pc-linux-gnu</strong>.</li>
  <li>Target directory includes <strong>binutils-2.27</strong> and <strong>gcc-6.2.0</strong>.</li>
  <li><p>My PATH environment is:</p>
  
  <p>/home/ercan/cross/tools/tools_binaries/i686/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games</p></li>
  </ul>
  
  <p>Console output have been listing to below:</p>
  
  <pre><code>ercan@SAMSUNG ~/cross/tools/tools_sources/build-glibc $ ../glibc-2.24/configure --prefix="/home/ercan/cross/tools/tools_binaries/i686/i686-elf" --build=$MACHTYPE --host=i686-elf --target=i686-elf --with-headers="/home/ercan/cross/tools/tools_binaries/i686/i686-elf/include" libc_cv_forced_unwind=yes
  checking build system type... x86_64-pc-linux-gnu
  checking host system type... i686-pc-elf
  checking for i686-elf-gcc... i686-elf-gcc
  checking for suffix of object files... o
  checking whether we are using the GNU C compiler... yes
  checking whether i686-elf-gcc accepts -g... yes
  checking for gcc... gcc
  checking for i686-elf-readelf... i686-elf-readelf
  checking for i686-elf-g++... i686-elf-g++
  checking whether we are using the GNU C++ compiler... yes
  checking whether i686-elf-g++ accepts -g... yes
  checking whether i686-elf-g++ can link programs... no
  checking for sysdeps preconfigure fragments... aarch64 alpha arm hppa i386 m68k microblaze mips nacl nios2 powerpc s390 sh sparc tile x86_64 
  configure: running configure fragment for add-on libidn
  configure: error: 
  *** The GNU C library is currently unavailable for this platform.
  *** If you are interested in seeing glibc on this platform visit
  *** the "How to submit a new port" in the wiki:
  ***   https://sourceware.org/glibc/wiki/#Development
  *** and join the community!
  </code></pre>
  
  <p>It is not configured and config.log that is in build-glibc which content has been listing below:</p>
  
  <pre><code>This file contains any messages produced by compilers while
  running configure, to aid debugging if configure makes a mistake.
  
  It was created by GNU C Library configure (see version.h), which was
  generated by GNU Autoconf 2.69.  Invocation command line was
  
    $ ../glibc-2.24/configure --prefix=/home/ercan/cross/tools/tools_binaries/i686/i686-elf --build=x86_64-pc-linux-gnu --host=i686-elf --target=i686-elf --with-headers=/home/ercan/cross/tools/tools_binaries/i686/i686-elf/include libc_cv_forced_unwind=yes
  
  ## --------- ##
  ## Platform. ##
  ## --------- ##
  
  hostname = SAMSUNG
  uname -m = x86_64
  uname -r = 4.4.0-21-generic
  uname -s = Linux
  uname -v = #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016
  
  /usr/bin/uname -p = unknown
  /bin/uname -X     = unknown
  
  /bin/arch              = unknown
  /usr/bin/arch -k       = unknown
  /usr/convex/getsysinfo = unknown
  /usr/bin/hostinfo      = unknown
  /bin/machine           = unknown
  /usr/bin/oslevel       = unknown
  /bin/universe          = unknown
  
  PATH: /home/ercan/cross/tools/tools_binaries/i686/bin
  PATH: /usr/local/sbin
  PATH: /usr/local/bin
  PATH: /usr/sbin
  PATH: /usr/bin
  PATH: /sbin
  PATH: /bin
  PATH: /usr/games
  PATH: /usr/local/games
  
  
  ## ----------- ##
  ## Core tests. ##
  ## ----------- ##
  
  configure:2189: checking build system type
  configure:2203: result: x86_64-pc-linux-gnu
  configure:2223: checking host system type
  configure:2236: result: i686-pc-elf
  configure:2265: checking for i686-elf-gcc
  configure:2281: found /home/ercan/cross/tools/tools_binaries/i686/bin/i686-elf-gcc
  configure:2292: result: i686-elf-gcc
  configure:2561: checking for C compiler version
  configure:2570: i686-elf-gcc --version &gt;&amp;5
  i686-elf-gcc (GCC) 6.2.0
  Copyright (C) 2016 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  
  configure:2581: $? = 0
  configure:2570: i686-elf-gcc -v &gt;&amp;5
  Using built-in specs.
  COLLECT_GCC=i686-elf-gcc
  COLLECT_LTO_WRAPPER=/home/ercan/cross/tools/tools_binaries/i686/libexec/gcc/i686-elf/6.2.0/lto-wrapper
  Target: i686-elf
  Configured with: ../gcc-6.2.0/configure --target=i686-elf --prefix=/home/ercan/cross/tools/tools_binaries/i686 --enable-languages=c,c++ --without-headers
  Thread model: single
  gcc version 6.2.0 (GCC) 
  configure:2581: $? = 0
  configure:2570: i686-elf-gcc -V &gt;&amp;5
  i686-elf-gcc: error: unrecognized command line option '-V'
  i686-elf-gcc: fatal error: no input files
  compilation terminated.
  configure:2581: $? = 1
  configure:2570: i686-elf-gcc -qversion &gt;&amp;5
  i686-elf-gcc: error: unrecognized command line option '-qversion'; did you mean '--version'?
  i686-elf-gcc: fatal error: no input files
  compilation terminated.
  configure:2581: $? = 1
  configure:2586: checking for suffix of object files
  configure:2608: i686-elf-gcc -c   conftest.c &gt;&amp;5
  configure:2612: $? = 0
  configure:2633: result: o
  configure:2637: checking whether we are using the GNU C compiler
  configure:2656: i686-elf-gcc -c   conftest.c &gt;&amp;5
  configure:2656: $? = 0
  configure:2665: result: yes
  configure:2674: checking whether i686-elf-gcc accepts -g
  configure:2694: i686-elf-gcc -c -g  conftest.c &gt;&amp;5
  configure:2694: $? = 0
  configure:2735: result: yes
  configure:2764: checking for gcc
  configure:2780: found /usr/bin/gcc
  configure:2791: result: gcc
  configure:2815: checking for i686-elf-readelf
  configure:2831: found /home/ercan/cross/tools/tools_binaries/i686/bin/i686-elf-readelf
  configure:2842: result: i686-elf-readelf
  configure:2920: checking for i686-elf-g++
  configure:2936: found /home/ercan/cross/tools/tools_binaries/i686/bin/i686-elf-g++
  configure:2947: result: i686-elf-g++
  configure:3018: checking for C++ compiler version
  configure:3027: i686-elf-g++ --version &gt;&amp;5
  i686-elf-g++ (GCC) 6.2.0
  Copyright (C) 2016 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  
  configure:3038: $? = 0
  configure:3027: i686-elf-g++ -v &gt;&amp;5
  Using built-in specs.
  COLLECT_GCC=i686-elf-g++
  COLLECT_LTO_WRAPPER=/home/ercan/cross/tools/tools_binaries/i686/libexec/gcc/i686-elf/6.2.0/lto-wrapper
  Target: i686-elf
  Configured with: ../gcc-6.2.0/configure --target=i686-elf --prefix=/home/ercan/cross/tools/tools_binaries/i686 --enable-languages=c,c++ --without-headers
  Thread model: single
  gcc version 6.2.0 (GCC) 
  configure:3038: $? = 0
  configure:3027: i686-elf-g++ -V &gt;&amp;5
  i686-elf-g++: error: unrecognized command line option '-V'
  i686-elf-g++: fatal error: no input files
  compilation terminated.
  configure:3038: $? = 1
  configure:3027: i686-elf-g++ -qversion &gt;&amp;5
  i686-elf-g++: error: unrecognized command line option '-qversion'; did you mean '--version'?
  i686-elf-g++: fatal error: no input files
  compilation terminated.
  configure:3038: $? = 1
  configure:3042: checking whether we are using the GNU C++ compiler
  configure:3061: i686-elf-g++ -c   conftest.cpp &gt;&amp;5
  configure:3061: $? = 0
  configure:3070: result: yes
  configure:3079: checking whether i686-elf-g++ accepts -g
  configure:3099: i686-elf-g++ -c -g  conftest.cpp &gt;&amp;5
  configure:3099: $? = 0
  configure:3140: result: yes
  configure:3165: checking whether i686-elf-g++ can link programs
  configure:3188: i686-elf-g++ -o conftest -g -O2   conftest.cpp  &gt;&amp;5
  /home/ercan/cross/tools/tools_binaries/i686/lib/gcc/i686-elf/6.2.0/../../../../i686-elf/bin/ld: cannot find crt0.o: No such file or directory
  /home/ercan/cross/tools/tools_binaries/i686/lib/gcc/i686-elf/6.2.0/../../../../i686-elf/bin/ld: cannot find crtbegin.o: No such file or directory
  /home/ercan/cross/tools/tools_binaries/i686/lib/gcc/i686-elf/6.2.0/../../../../i686-elf/bin/ld: cannot find -lstdc++
  /home/ercan/cross/tools/tools_binaries/i686/lib/gcc/i686-elf/6.2.0/../../../../i686-elf/bin/ld: cannot find -lm
  /home/ercan/cross/tools/tools_binaries/i686/lib/gcc/i686-elf/6.2.0/../../../../i686-elf/bin/ld: cannot find -lgcc
  /home/ercan/cross/tools/tools_binaries/i686/lib/gcc/i686-elf/6.2.0/../../../../i686-elf/bin/ld: cannot find -lg
  /home/ercan/cross/tools/tools_binaries/i686/lib/gcc/i686-elf/6.2.0/../../../../i686-elf/bin/ld: cannot find -lc
  /home/ercan/cross/tools/tools_binaries/i686/lib/gcc/i686-elf/6.2.0/../../../../i686-elf/bin/ld: cannot find -lgcc
  /home/ercan/cross/tools/tools_binaries/i686/lib/gcc/i686-elf/6.2.0/../../../../i686-elf/bin/ld: cannot find crtend.o: No such file or directory
  collect2: error: ld returned 1 exit status
  configure:3188: $? = 1
  configure: failed program was:
  | /* confdefs.h */
  | #define PACKAGE_NAME "GNU C Library"
  | #define PACKAGE_TARNAME "glibc"
  | #define PACKAGE_VERSION "(see version.h)"
  | #define PACKAGE_STRING "GNU C Library (see version.h)"
  | #define PACKAGE_BUGREPORT "http://sourceware.org/bugzilla/"
  | #define PACKAGE_URL "http://www.gnu.org/software/glibc/"
  | #define PKGVERSION "(GNU libc) "
  | #define REPORT_BUGS_TO "&lt;http://www.gnu.org/software/libc/bugs.html&gt;"
  | /* end confdefs.h.  */
  | 
  | int
  | main ()
  | {
  | 
  |   ;
  |   return 0;
  | }
  configure:3211: i686-elf-g++ -o conftest -g -O2   -static conftest.cpp  &gt;&amp;5
  conftest.cpp:12:20: fatal error: iostream: No such file or directory
   #include &lt;iostream&gt;
                      ^
  compilation terminated.
  configure:3211: $? = 1
  configure: failed program was:
  | /* confdefs.h */
  | #define PACKAGE_NAME "GNU C Library"
  | #define PACKAGE_TARNAME "glibc"
  | #define PACKAGE_VERSION "(see version.h)"
  | #define PACKAGE_STRING "GNU C Library (see version.h)"
  | #define PACKAGE_BUGREPORT "http://sourceware.org/bugzilla/"
  | #define PACKAGE_URL "http://www.gnu.org/software/glibc/"
  | #define PKGVERSION "(GNU libc) "
  | #define REPORT_BUGS_TO "&lt;http://www.gnu.org/software/libc/bugs.html&gt;"
  | /* end confdefs.h.  */
  | 
  | #include &lt;iostream&gt;
  | 
  | int
  | main()
  | {
  |   std::cout &lt;&lt; "Hello, world!";
  |   return 0;
  | }
  | 
  configure:3226: result: no
  configure:3709: checking for sysdeps preconfigure fragments
  configure:3716: result: 
  configure:3787: running configure fragment for add-on libidn
  configure:3868: error: 
  *** The GNU C library is currently unavailable for this platform.
  *** If you are interested in seeing glibc on this platform visit
  *** the "How to submit a new port" in the wiki:
  ***   https://sourceware.org/glibc/wiki/#Development
  *** and join the community!
  
  ## ---------------- ##
  ## Cache variables. ##
  ## ---------------- ##
  
  ac_cv_build=x86_64-pc-linux-gnu
  ac_cv_c_compiler_gnu=yes
  ac_cv_cxx_compiler_gnu=yes
  ac_cv_env_CCC_set=
  ac_cv_env_CCC_value=
  ac_cv_env_CC_set=
  ac_cv_env_CC_value=
  ac_cv_env_CFLAGS_set=
  ac_cv_env_CFLAGS_value=
  ac_cv_env_CPPFLAGS_set=
  ac_cv_env_CPPFLAGS_value=
  ac_cv_env_CPP_set=
  ac_cv_env_CPP_value=
  ac_cv_env_CXXFLAGS_set=
  ac_cv_env_CXXFLAGS_value=
  ac_cv_env_CXX_set=
  ac_cv_env_CXX_value=
  ac_cv_env_LDFLAGS_set=
  ac_cv_env_LDFLAGS_value=
  ac_cv_env_LIBS_set=
  ac_cv_env_LIBS_value=
  ac_cv_env_build_alias_set=set
  ac_cv_env_build_alias_value=x86_64-pc-linux-gnu
  ac_cv_env_host_alias_set=set
  ac_cv_env_host_alias_value=i686-elf
  ac_cv_env_target_alias_set=set
  ac_cv_env_target_alias_value=i686-elf
  ac_cv_host=i686-pc-elf
  ac_cv_objext=o
  ac_cv_prog_BUILD_CC=gcc
  ac_cv_prog_CC=i686-elf-gcc
  ac_cv_prog_CXX=i686-elf-g++
  ac_cv_prog_READELF=i686-elf-readelf
  ac_cv_prog_cc_g=yes
  ac_cv_prog_cxx_g=yes
  libc_cv_cxx_link_ok=no
  libc_cv_forced_unwind=yes
  libc_cv_nss_crypt=no
  
  ## ----------------- ##
  ## Output variables. ##
  ## ----------------- ##
  
  AR=''
  AS=''
  ASFLAGS_config=''
  AUTOCONF=''
  AWK=''
  BASH_SHELL=''
  BISON=''
  BUILD_CC='gcc'
  CC='i686-elf-gcc'
  CFLAGS='-g -O2'
  CPP='i686-elf-gcc -E'
  CPPFLAGS=''
  CPPUNDEFS=''
  CXX=''
  CXXFLAGS='-g -O2'
  CXX_SYSINCLUDES=''
  DEFINES=''
  DEFS=''
  ECHO_C=''
  ECHO_N='-n'
  ECHO_T=''
  INSTALL_DATA=''
  INSTALL_INFO=''
  INSTALL_PROGRAM=''
  INSTALL_SCRIPT=''
  LD=''
  LDFLAGS=''
  LIBGD=''
  LIBOBJS=''
  LIBS=''
  LN_S=''
  LTLIBOBJS=''
  MAKE=''
  MAKEINFO=''
  MSGFMT=''
  NM=''
  OBJCOPY=''
  OBJDUMP=''
  OBJEXT='o'
  PACKAGE_BUGREPORT='http://sourceware.org/bugzilla/'
  PACKAGE_NAME='GNU C Library'
  PACKAGE_STRING='GNU C Library (see version.h)'
  PACKAGE_TARNAME='glibc'
  PACKAGE_URL='http://www.gnu.org/software/glibc/'
  PACKAGE_VERSION='(see version.h)'
  PATH_SEPARATOR=':'
  PERL=''
  PKGVERSION='(GNU libc) '
  PKGVERSION_TEXI='(GNU libc) '
  READELF='i686-elf-readelf'
  RELEASE=''
  REPORT_BUGS_TEXI='@uref{http://www.gnu.org/software/libc/bugs.html}'
  REPORT_BUGS_TO='&lt;http://www.gnu.org/software/libc/bugs.html&gt;'
  SED=''
  SHELL='/bin/bash'
  SYSINCLUDES=''
  VERSION=''
  ac_ct_CC=''
  ac_ct_CXX=''
  add_on_subdirs=' libidn'
  add_ons='libidn'
  all_warnings=''
  base_machine='i386'
  bindir='${exec_prefix}/bin'
  bindnow='no'
  build='x86_64-pc-linux-gnu'
  build_alias='x86_64-pc-linux-gnu'
  build_cpu='x86_64'
  build_nscd='default'
  build_os='linux-gnu'
  build_pt_chown='no'
  build_vendor='pc'
  cross_compiling='yes'
  datadir='${datarootdir}'
  datarootdir='${prefix}/share'
  docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
  dvidir='${docdir}'
  enable_lock_elision='no'
  enable_timezone_tools='yes'
  enable_werror='yes'
  exec_prefix='NONE'
  fno_unit_at_a_time=''
  force_install='yes'
  hardcoded_path_in_tests='no'
  have_libaudit=''
  have_libcap=''
  have_selinux=''
  host='i686-pc-elf'
  host_alias='i686-elf'
  host_cpu='i686'
  host_os='elf'
  host_vendor='pc'
  htmldir='${docdir}'
  includedir='${prefix}/include'
  infodir='${datarootdir}/info'
  ldd_rewrite_script=''
  libc_cv_cc_loop_to_function=''
  libc_cv_cc_nofma=''
  libc_cv_cc_submachine=''
  libc_cv_cc_with_libunwind=''
  libc_cv_complocaledir=''
  libc_cv_cxx_thread_local=''
  libc_cv_fpie=''
  libc_cv_gcc_unwind_find_fde=''
  libc_cv_has_glob_dat=''
  libc_cv_hashstyle=''
  libc_cv_localstatedir=''
  libc_cv_mtls_dialect_gnu2=''
  libc_cv_nss_crypt='no'
  libc_cv_output_format=''
  libc_cv_pic_default=''
  libc_cv_pie_default=''
  libc_cv_protected_data=''
  libc_cv_rootsbindir=''
  libc_cv_rtlddir=''
  libc_cv_slibdir=''
  libc_cv_sysconfdir=''
  libc_cv_z_combreloc=''
  libc_cv_z_execstack=''
  libc_extra_cflags=''
  libc_extra_cppflags=''
  libdir='${exec_prefix}/lib'
  libexecdir='${exec_prefix}/libexec'
  link_obsolete_rpc='no'
  localedir='${datarootdir}/locale'
  localstatedir='${prefix}/var'
  mach_interface_list=''
  mandir='${datarootdir}/man'
  multi_arch='default'
  oldincludedir='/usr/include'
  pdfdir='${docdir}'
  prefix='/home/ercan/cross/tools/tools_binaries/i686/i686-elf'
  profile='no'
  program_transform_name='s,x,x,'
  psdir='${docdir}'
  sbindir='${exec_prefix}/sbin'
  shared='yes'
  sharedstatedir='${prefix}/com'
  stack_protector=''
  static=''
  static_nss='no'
  subdirs='  '
  submachine=''
  sysconfdir='${prefix}/etc'
  sysdeps_add_ons=''
  sysheaders='/home/ercan/cross/tools/tools_binaries/i686/i686-elf/include'
  sysnames=''
  target_alias='i686-elf'
  use_default_link='default'
  use_ldconfig=''
  use_nscd='yes'
  with_fp='yes'
  
  ## ----------- ##
  ## confdefs.h. ##
  ## ----------- ##
  
  /* confdefs.h */
  #define PACKAGE_NAME "GNU C Library"
  #define PACKAGE_TARNAME "glibc"
  #define PACKAGE_VERSION "(see version.h)"
  #define PACKAGE_STRING "GNU C Library (see version.h)"
  #define PACKAGE_BUGREPORT "http://sourceware.org/bugzilla/"
  #define PACKAGE_URL "http://www.gnu.org/software/glibc/"
  #define PKGVERSION "(GNU libc) "
  #define REPORT_BUGS_TO "&lt;http://www.gnu.org/software/libc/bugs.html&gt;"
  #define HAVE_LIBIDN 1
  
  configure: exit 1
  </code></pre>
  
  <p>How I cross compile glibc for i686-elf? Thanks for replies.</p>