build tshark 1.10.7 fails on luaL_openlibs - linux

I want to build a stripped down version of tshark 1.10.7 x86 with lua support.
The options i currently use are those:
/configure --disable-wireshark --disable-packet-editor --disable-editcap --disable-mergecap --disable-reordercap --disable-text2pcap --disable-dftest --disable-randpkt --disable-airpcap --disable-dumpcap --disable-rawshark --disable-ipv6 --with-gnutls=no --with-gcrypt=no --disable-glibtest --with-lua=/usr/local/lib/
different approaches tested:
--with-lua=/usr/local
--with-lua=/usr/local/src/lua-5.2.3
--disable-usr-local (just in case i did miss some lua header file somewhere)
When i set '--with-lua=no' it builds fine and was previously used that way.
Here are the error logs from above command:
checking whether to use liblua for the Lua scripting plugin... yes
checking Lua version... Lua 5.2
checking lua.h usability... yes
checking lua.h presence... yes
checking for lua.h... yes
checking lualib.h usability... yes
checking lualib.h presence... yes
checking for lualib.h... yes
checking lauxlib.h usability... yes
checking lauxlib.h presence... yes
checking for lauxlib.h... yes
checking for luaL_openlibs in -llua... no
checking for luaL_openlibs in -llua5.2... no
configure: error: Linking with liblua failed.
i did install lua 5.2.3 from sorce lua.org
As slackware seems to need readline linked again libncurses i have done the same with lua 5.2.3 to have it compile correctly.
make linux MYLIBS=-lncurses
Lua seems to at least point out the correct version:
# lua -v
Lua 5.2.3 Copyright (C) 1994-2013 Lua.org, PUC-Rio
here are my lua files locations:
bash-4.1# find /usr/local/include/ -iname "lu*"
/usr/local/include/lualib.h
/usr/local/include/lua.hpp
/usr/local/include/lua.h
/usr/local/include/luaconf.h
bash-4.1# find /usr/local/bin/ -iname "lu*"
/usr/local/bin/luac
/usr/local/bin/lua
bash-4.1# ls /usr/local/lib/liblua*
/usr/local/lib/liblua.a
The installation itself was done from /usr/local/src/lua-5.2.3/
I tried different includedirs where i checked the header files are in, removing lua again, reinstalling slackware 13.37, but it seems to somehow still fail on the same value.
Google did only show me a few links which did not match my issue.
The possible relevant link to ask.wireshark lua
did not solve the issue as it might be a build bug.
Different search strings mostly seem to link to issues with a missing header file, lua missing, or readline issues, which i think i have ruled out already.
Based on the comments i did some further reason (which is not yet finished)
The output of the config.log clearly shows the lualib.h lua.h are there.
Here is the in my opinion relevant part:
configure:31529: checking for luaL_openlibs in -llua
configure:31554: gcc -o conftest -g -O2 -Wall -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wpointer-arith -Wno-pointer-sign -Warray-bounds -Wcast-align -Wformat-security -Wold-style-definition -Wstrict-prototypes -Wjump-misses-init -Wvla -Waddress -Warray-bounds -Wattributes -Wdiv-by-zero -Wignored-qualifiers -Wpragmas -Wno-overlength-strings -Wwrite-strings -Wno-long-long -Wc++-compat -Wshadow -Wlogical-op -fexcess-precision=fast -fvisibility=hidden -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -DG_DISABLE_SINGLE_INCLUDES -D_FORTIFY_SOURCE=0 -I/usr/local/include -I/usr/include -I/usr/local/lib//include -Wl,--as-needed -L/usr/local/lib -L/usr/local/lib//lib conftest.c -llua -lz -L/usr/local/lib//lib -llua -lm -lm >&5
conftest.c:63:1: warning: function declaration isn't a prototype
conftest.c:65:1: warning: function declaration isn't a prototype
conftest.c: In function 'main':
conftest.c:65:1: warning: old-style function definition
/usr/local/lib/liblua.a(loadlib.o): In function `ll_loadfunc':
loadlib.c:(.text+0x7f7): undefined reference to `dlsym'
loadlib.c:(.text+0x857): undefined reference to `dlopen'
loadlib.c:(.text+0x8d1): undefined reference to `dlerror'
loadlib.c:(.text+0x901): undefined reference to `dlerror'
/usr/local/lib/liblua.a(loadlib.o): In function `gctm':
loadlib.c:(.text+0xb78): undefined reference to `dlclose'
collect2: ld returned 1 exit status
configure:31554: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "wireshark"
| #define PACKAGE_TARNAME "wireshark"
| #define PACKAGE_VERSION "1.10.7"
| #define PACKAGE_STRING "wireshark 1.10.7"
| #define PACKAGE_BUGREPORT "http://bugs.wireshark.org/"
| #define PACKAGE_URL "http://www.wireshark.org/"
| #define PACKAGE "wireshark"
| #define VERSION "1.10.7"
| #define VERSION_MAJOR 1
| #define VERSION_MINOR 10
| #define VERSION_MICRO 7
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define YYTEXT_POINTER 1
| #define HTML_VIEWER "mozilla"
| #define _FILE_OFFSET_BITS 64
| #define HAVE_NL80211 1
| #define HAVE_NL80211_CMD_SET_CHANNEL 1
| #define _U_ __attribute__((unused))
| #define DATAFILE_DIR "/usr/local/share/wireshark"
| #define DOC_DIR "/usr/local/share/doc/wireshark"
| #define HAVE_GLIB_PRINTF_GROUPING 1
| #define HAVE_LIBPCAP 1
| #define HAVE_PCAP_OPEN_DEAD 1
| #define HAVE_PCAP_FREECODE 1
| #define HAVE_PCAP_BREAKLOOP 1
| #define HAVE_PCAP_FINDALLDEVS 1
| #define HAVE_PCAP_DATALINK_VAL_TO_NAME 1
| #define HAVE_PCAP_DATALINK_NAME_TO_VAL 1
| #define HAVE_PCAP_DATALINK_VAL_TO_DESCRIPTION 1
| #define HAVE_PCAP_LIST_DATALINKS 1
| #define HAVE_PCAP_SET_DATALINK 1
| #define HAVE_PCAP_LIB_VERSION 1
| #define HAVE_PCAP_GET_SELECTABLE_FD 1
| #define HAVE_PCAP_FREE_DATALINKS 1
| #define HAVE_PCAP_CREATE 1
| #define HAVE_BPF_IMAGE 1
| #define PCAP_NG_DEFAULT 1
| #define HAVE_LIBZ 1
| #define HAVE_INFLATEPRIME 1
| #define HAVE_LUA_H 1
| #define HAVE_LUALIB_H 1
| #define HAVE_LAUXLIB_H 1
| /* end confdefs.h. */
|
| /* Override any GCC internal prototype to avoid an error.
| Use char because int might match the return type of a GCC
| builtin and then its argument prototype would still apply. */
| #ifdef __cplusplus
| extern "C"
| #endif
| char luaL_openlibs ();
| int
| main ()
| {
| return luaL_openlibs ();
| ;
| return 0;
| }
configure:31563: result: no
i will now read a bit more to understand the warnings and fix them.

With the help of sifflejoe i was able to track down that the libdl detection did somehow not completely work.
LDFLAGS="-ldl" ./configure --disable-wireshark --disable-packet-editor --disable-editcap --disable-mergecap --disable-reordercap --disable-text2pcap --disable-dftest --disable-randpkt --disable-airpcap --disable-dumpcap --disable-rawshark --disable-ipv6 --with-gnutls=no --with-gcrypt=no --disable-glibtest --with-lua=/usr/local/lib/
did solve the issue for us.

Related

configure dropbear failure: zlib missing

I already have a cross-compiled zlib:
path/to/zlib/install/
├── include
│   ├── zconf.h
│   └── zlib.h
├── lib
│   ├── libz.a
│   ├── libz.so -> libz.so.1.2.11
│   ├── libz.so.1 -> libz.so.1.2.11
│   ├── libz.so.1.2.11
│   └── pkgconfig
│   └── zlib.pc
└── share
└── man
└── man3
└── zlib.3
but when I run configure of dropbear, console shows configure: error: *** zlib missing - install first or check config.log ***:
CC=arm-linux-gcc \
./configure \
--host=arm-linux \
--with-zlib=path/to/zlib/install
here's a part of config.log near by error:
configure:4845: checking for deflate in -lz
configure:4870: arm-linux-gcc -o conftest -Os -W -Wall -Wno-pointer-sign -fno-strict-overflow -fPIE -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -I/path/to/zlib/install/include -L/path/to/zlib/install/lib -Wl,-pie -Wl,-z,now -Wl,-z,relro conftest.c -lz >&5
/usr/local/arm_linux_4.8/lib/gcc/arm-linux-uclibceabi/4.8.4/../../../../arm-linux-uclibceabi/bin/ld: cannot find -lssp_nonshared
/usr/local/arm_linux_4.8/lib/gcc/arm-linux-uclibceabi/4.8.4/../../../../arm-linux-uclibceabi/bin/ld: cannot find -lssp
collect2: error: ld returned 1 exit status
configure:4870: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define _FILE_OFFSET_BITS 64
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| /* end confdefs.h. */
|
| /* Override any GCC internal prototype to avoid an error.
| Use char because int might match the return type of a GCC
| builtin and then its argument prototype would still apply. */
| #ifdef __cplusplus
| extern "C"
| #endif
| char deflate ();
| int
| main ()
| {
| return deflate ();
| ;
| return 0;
| }
configure:4879: result: no
configure:4889: error: *** zlib missing - install first or check config.log ***
Solved.
My compiler doesn't support SSP. Using --disable-harden to disable SSP.
Thanks #nhatnq a lot.

Stack/GHC Permission Error: "configure: error: C compiler cannot create executables"

I am trying to use stack to build a simple project (created withstack new simple) but when I run stack build I get the following error:
configure: error: in `/Users/xxx/.stack/programs/x86_64-osx/ghc-8.8.3.temp/ghc-8.8.3':
configure: error: C compiler cannot create executables
It seems like there is a permissions issue with gcc as running configure manually with sudo completes successfully:
cd /Users/xxx/.stack/programs/x86_64-osx/ghc-8.8.3.temp/ghc-8.8.3
sudo ./configure
I have also checked that I can compile and c files with gcc and run the outputs successfully.
Any guidance is appreciated!
Output of config.log for failed build:
configure:3853: $? = 1
configure:3873: checking whether the C compiler works
configure:3895: clang -l/usr/local/opt/libxml2/include -L/usr/local/opt/libxml2/lib conftest.c >&5
ld: library not found for -l/usr/local/opt/libxml2/include
clang: error: linker command failed with exit code 1 (use -v to see invocation)
configure:3899: $? = 1
configure:3937: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "The Glorious Glasgow Haskell Compilation System"
| #define PACKAGE_TARNAME "ghc-8.8.3"
| #define PACKAGE_VERSION "8.8.3"
| #define PACKAGE_STRING "The Glorious Glasgow Haskell Compilation System 8.8.3"
| #define PACKAGE_BUGREPORT "glasgow-haskell-bugs#haskell.org"
| #define PACKAGE_URL ""
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:3942: error: in `/Users/xxx/.stack/programs/x86_64-osx/ghc-8.8.3.temp/ghc-8.8.3':
configure:3944: error: C compiler cannot create executables
See `config.log' for more details

error: C preprocessor "/usr/local/bin/cpp" fails sanity check

I'm trying to install freetype 2.8, unfortunately I started getting this error everytime I run the configure file I run into this issue: error: C preprocessor "/usr/local/bin/cpp" fails sanity check
I tried some solutions I found on the site but they didn't solve my problem, maybe you can.
I'll paste here the configure.log file:
`
$ ./configure
## --------- ##
## Platform. ##
## --------- ##
hostname = ubuntu
uname -m = x86_64
uname -r = 4.10.0-38-generic
uname -s = Linux
uname -v = #42~16.04.1-Ubuntu SMP Tue Oct 10 16:32:20 UTC 2017
/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/tabi/bin
PATH: /home/tabi/.local/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
PATH: /snap/bin
configure:2934: $? = 0
configure:2923: gcc -v >&5
Using built-in specs.
COLLECT_GCC=gcc
Thread model: posix
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
configure:2934: $? = 0
configure:2923: gcc -V >&5
gcc: error: unrecognized command line option '-V'
gcc: fatal error: no input files
compilation terminated.
configure:2934: $? = 1
configure:2923: gcc -qversion >&5
gcc: error: unrecognized command line option '-qversion'
gcc: fatal error: no input files
compilation terminated.
configure:2934: $? = 1
configure:2954: checking whether the C compiler works
configure:2976: gcc conftest.c >&5
configure:2980: $? = 0
configure:3028: result: yes
configure:3031: checking for C compiler default output file name
configure:3033: result: a.out
configure:3039: checking for suffix of executables
configure:3046: gcc -o conftest conftest.c >&5
configure:3050: $? = 0
configure:3072: result:
configure:3094: checking whether we are cross compiling
configure:3102: gcc -o conftest conftest.c >&5
configure:3106: $? = 0
configure:3113: ./conftest
configure:3117: $? = 0
configure:3132: result: no
configure:3137: checking for suffix of object files
configure:3159: gcc -c conftest.c >&5
configure:3163: $? = 0
configure:3184: result: o
configure:3188: checking whether we are using the GNU C compiler
configure:3207: gcc -c conftest.c >&5
configure:3207: $? = 0
configure:3216: result: yes
configure:3225: checking whether gcc accepts -g
configure:3245: gcc -c -g conftest.c >&5
configure:3245: $? = 0
configure:3286: result: yes
configure:3303: checking for gcc option to accept ISO C89
configure:3366: gcc -c -g -O2 conftest.c >&5
configure:3366: $? = 0
configure:3379: result: none needed
configure:3404: checking how to run the C preprocessor
configure:3474: result: /usr/local/bin/cpp
configure:3494: /usr/local/bin/cpp conftest.c
./configure: line 1609: /usr/local/bin/cpp: No such file or directory
configure:3494: $? = 127
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "FreeType"
| #define PACKAGE_TARNAME "freetype"
| #define PACKAGE_VERSION "2.8"
| #define PACKAGE_STRING "FreeType 2.8"
| #define PACKAGE_BUGREPORT "freetype#nongnu.org"
| #define PACKAGE_URL ""
| /* end confdefs.h. */
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
| Syntax error
configure:3494: /usr/local/bin/cpp conftest.c
./configure: line 1609: /usr/local/bin/cpp: No such file or directory
configure:3494: $? = 127
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "FreeType"
| #define PACKAGE_TARNAME "freetype"
| #define PACKAGE_VERSION "2.8"
| #define PACKAGE_STRING "FreeType 2.8"
| #define PACKAGE_BUGREPORT "freetype#nongnu.org"
| #define PACKAGE_URL ""
| /* end confdefs.h. */
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
| Syntax error
configure:3524: error: in `/home/tabi/Downloads/freetype-2.8/builds/unix':
configure:3526: error: C preprocessor "/usr/local/bin/cpp" fails sanity check
See `config.log' for more details
`

System crashed during glibc compile, refuses to compile again even after remaking build directory

I am chrooted into the temporary system (/tools). During the compile of glibc (step 6.9 of LFS), my computer unexpectedly shut down. After booting back up, remaking the build directory, running configure and make, it fails. Here is the log:
root:/sources/glibc-2.24/build# make
make -r PARALLELMFLAGS="" -C .. objdir=`pwd` all
make[1]: Entering directory '/sources/glibc-2.24'
make subdir=csu -C csu ..=../ subdir_lib
make[2]: Entering directory '/sources/glibc-2.24/csu'
gawk -f ../scripts/gen-as-const.awk ../sysdeps/x86_64/nptl/tcb-offsets.sym \
| gcc -S -o /sources/glibc-2.24/build/tcb-offsets.hT3 -std=gnu11 -fgnu89-inline -O2 -Wall -Werror -Wundef -Wwrite-strings -fmerge-all-constants -frounding-math -g -Wstrict-prototypes -Wold-style-definition -ftls-model=initial-exec -I../include -I/sources/glibc-2.24/build/csu -I/sources/glibc-2.24/build -I../sysdeps/unix/sysv/linux/x86_64/64 -I../sysdeps/unix/sysv/linux/x86_64 -I../sysdeps/unix/sysv/linux/x86 -I../sysdeps/unix/sysv/linux/wordsize-64 -I../sysdeps/x86_64/nptl -I../sysdeps/unix/sysv/linux/include -I../sysdeps/unix/sysv/linux -I../sysdeps/nptl -I../sysdeps/pthread -I../sysdeps/gnu -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/x86_64 -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/x86_64/64 -I../sysdeps/x86_64/fpu/multiarch -I../sysdeps/x86_64/fpu -I../sysdeps/x86/fpu/include -I../sysdeps/x86/fpu -I../sysdeps/x86_64/multiarch -I../sysdeps/x86_64 -I../sysdeps/x86 -I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64/wordsize-64 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/wordsize-64 -I../sysdeps/ieee754 -I../sysdeps/generic -I.. -I../libio -I. -D_LIBC_REENTRANT -include /sources/glibc-2.24/build/libc-modules.h -DMODULE_NAME=libc -include ../include/libc-symbols.h -x c - \
-MD -MP -MF /sources/glibc-2.24/build/tcb-offsets.h.dT -MT '/sources/glibc-2.24/build/tcb-offsets.h.d /sources/glibc-2.24/build/tcb-offsets.h'
In file included from ../sysdeps/generic/hp-timing-common.h:42:0,
from ../sysdeps/x86_64/hp-timing.h:38,
from ../include/libc-internal.h:7,
from ../sysdeps/x86_64/nptl/tls.h:29,
from ../sysdeps/unix/sysv/linux/x86_64/sysdep.h:24,
from <stdin>:1:
../sysdeps/generic/_itoa.h:32:25: error: "LONG_MAX" is not defined [-Werror=undef]
# define _ITOA_NEEDED (LONG_MAX != LLONG_MAX)
^
../sysdeps/generic/_itoa.h:97:6: note: in expansion of macro '_ITOA_NEEDED'
#if !_ITOA_NEEDED
^~~~~~~~~~~~
cc1: all warnings being treated as errors
make[2]: *** [../Makerules:224: /sources/glibc-2.24/build/tcb-offsets.h] Error 1
make[2]: Leaving directory '/sources/glibc-2.24/csu'
make[1]: *** [Makefile:214: csu/subdir_lib] Error 2
make[1]: Leaving directory '/sources/glibc-2.24'
make: *** [Makefile:9: all] Error 2
root:/sources/glibc-2.24/build#
It seems like limits.h doesn't exist, but I checked, and it does indeed exist.
root:/usr/include/linux# ls | grep "limits.h"
limits.h
EDIT: I catted limits.h and noticed that LONG_MAX indeed was not included in the file. Here is the file:
#ifndef _LINUX_LIMITS_H
#define _LINUX_LIMITS_H
#define NR_OPEN 1024
#define NGROUPS_MAX 65536 /* supplemental group IDs are available */
#define ARG_MAX 131072 /* # bytes of args + environ for exec() */
#define LINK_MAX 127 /* # links a file may have */
#define MAX_CANON 255 /* size of the canonical input queue */
#define MAX_INPUT 255 /* size of the type-ahead buffer */
#define NAME_MAX 255 /* # chars in a file name */
#define PATH_MAX 4096 /* # chars in a path name including nul */
#define PIPE_BUF 4096 /* # bytes in atomic write to a pipe */
#define XATTR_NAME_MAX 255 /* # chars in an extended attribute name */
#define XATTR_SIZE_MAX 65536 /* size of an extended attribute value (64k) */
#define XATTR_LIST_MAX 65536 /* size of extended attribute namelist (64k) */
#define RTSIG_MAX 32
#endif
root:/usr/include/linux# ls | grep "limits.h"
limits.h
root:/usr/include/linux# cat limits.h
#ifndef _LINUX_LIMITS_H
#define _LINUX_LIMITS_H
#define NR_OPEN 1024
#define NGROUPS_MAX 65536 /* supplemental group IDs are available */
#define ARG_MAX 131072 /* # bytes of args + environ for exec() */
#define LINK_MAX 127 /* # links a file may have */
#define MAX_CANON 255 /* size of the canonical input queue */
#define MAX_INPUT 255 /* size of the type-ahead buffer */
#define NAME_MAX 255 /* # chars in a file name */
#define PATH_MAX 4096 /* # chars in a path name including nul */
#define PIPE_BUF 4096 /* # bytes in atomic write to a pipe */
#define XATTR_NAME_MAX 255 /* # chars in an extended attribute name */
#define XATTR_SIZE_MAX 65536 /* size of an extended attribute value (64k) */
#define XATTR_LIST_MAX 65536 /* size of extended attribute namelist (64k) */
#define RTSIG_MAX 32
#endif
#ifndef _LINUX_LIMITS_H
This is include/linux/limits.h. The LONG_MAX is supposed to come from include/limits.h, which is a different file.
It's likely that your sources got corrupted after unclean shutdown. You should restore them from a pristine copy.

glibc Cross Compile Configure Error

I would like to cross compile glibc. But, I 'm getting an error.
glibc version is 2.24.
I tried compiling host and target i686-elf.
My $MACHTYPE environment label is x86_64-pc-linux-gnu.
Target directory includes binutils-2.27 and gcc-6.2.0.
My PATH environment is:
/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
Console output have been listing to below:
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!
It is not configured and config.log that is in build-glibc which content has been listing below:
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 >&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 >&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 >&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 >&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 >&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 >&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 >&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 >&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 >&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 >&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 >&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 >&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 >&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 >&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 "<http://www.gnu.org/software/libc/bugs.html>"
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:3211: i686-elf-g++ -o conftest -g -O2 -static conftest.cpp >&5
conftest.cpp:12:20: fatal error: iostream: No such file or directory
#include <iostream>
^
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 "<http://www.gnu.org/software/libc/bugs.html>"
| /* end confdefs.h. */
|
| #include <iostream>
|
| int
| main()
| {
| std::cout << "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='<http://www.gnu.org/software/libc/bugs.html>'
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 "<http://www.gnu.org/software/libc/bugs.html>"
#define HAVE_LIBIDN 1
configure: exit 1
How I cross compile glibc for i686-elf? Thanks for replies.
You are trying to build glibc for a bare metal target. This won't work as far as I know.
Use newlib if the target is in fact bare metal.
For linux targets, use --host=i686-pc-linux-gnu instead, and pass CC=i686-elf-gcc to configure if necessary.

Resources