Thanks Jeff :),
That worked to some extent and exited giving the error
/usr/include/bits/types.h:187: error: conflicting types for ÃâË__loff_tÃââ
/home/stangeda/newlib_08022010/newlib-1.18.0/newlib/libc/include/machine/types.h:22:
error: previous declaration of ÃâË__loff_tÃââ was here
make[5]: *** [argz_add.lo] Error 1
make[5]: Leaving directory
`/home/stangeda/newlib_08022010/newlib_compile/i686-pc-linux-gnu/newlib/libc/argz'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory
`/home/stangeda/newlib_08022010/newlib_compile/i686-pc-linux-gnu/newlib/libc'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory
`/home/stangeda/newlib_08022010/newlib_compile/i686-pc-linux-gnu/newlib'
make[2]: *** [all] Error 2
make[2]: Leaving directory
`/home/stangeda/newlib_08022010/newlib_compile/i686-pc-linux-gnu/newlib'
make[1]: *** [all-target-newlib] Error 2
make[1]: Leaving directory `/home/stangeda/newlib_08022010/newlib_compile'
make: *** [all] Error 2
So i understand that types.h is being called twice from two different
locations, to overcome this i compiled fom the directory
/home/stangeda/newlib_08022010/newlib_compile/i686-pc-linux-gnu/newlib/libc/argz/
using -nostdinc command in commandline
gcc
-I/home/stangeda/newlib_08022010/newlib_compile/i686-pc-linux-gnu/newlib/targ-include
-I/home/stangeda/newlib_08022010/newlib-1.18.0/newlib/libc/include
-DPACKAGE_NAME=\"newlib\" -DPACKAGE_TARNAME=\"newlib\"
-DPACKAGE_VERSION=\"1.18.0\" "-DPACKAGE_STRING=\"newlib 1.18.0\""
-DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1
-DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1
-DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1
-DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I.
-I../../../../../newlib-1.18.0/newlib/libc/argz -Wall
-D_I386MACH_ALLOW_HW_INTERRUPTS -DHAVE_FCNTL -DHAVE_GETOPT -fPIC
-D_I386MACH_NEED_SOTYPE_FUNCTION -nostdinc -DMISSING_SYSCALL_NAMES
-fno-builtin -g -O2 -c
../../../../../newlib-1.18.0/newlib/libc/argz/argz_add.c -fPIC -DPIC -o
.libs/argz_add.o
I tried to see if it successfully compiles with nostdinc flags..but that
didnt work quite well since it was missing few files. The first error it
produced was
/home/stangeda/newlib_08022010/newlib_compile/i686-pc-linux-gnu/newlib/targ-include/sys/_types.h:25:20:
error: stddef.h: No such file or directory
So i understand few files are being called twice and when i use -nostdinc
there are other files missing. Could you throw some light on this scenario.
Thanks,
Sravs
*******************************************************************************
Jeff Johnston wrote:
It's Jeff actually :)
There are a few problems here.
1. newlib does not build natively by default. By default, sourceware
expects glibc on a native system so you need to specify --with-newlib
on the configuration.
2. the only linux target currently supported is x86 (e.g.
i686-pc-linux-gnu)
and there isn't x86_64 support. If you like, you can look at
porting the
libc/sys/linux/machine/x86 directory to
libc/sys/linux/machine/x86_64 or
you could just try specifying --target=i686-pc-linux-gnu and run in
x86 32-bit mode
Regards.
-- Jeff J.
On 03/08/10 02:44 PM, sravs wrote:
Hello John,
I am facing some difficulties to successfully run Makefile.I have gcc
version 11.1 and binutils-2.17.50.0.6-9.e15 installed on my machine
already.
below are the commands that i follow to generate Makefile
cd newlib-1.18.0
mkdir ../newlib_compile
cd ../newlib_compile
../newlib-1.18.0/configure --srcdir=../newlib-1.18.0/
--build=x86_64-redhat-linux.
make
I can successfully generate Make file using the configure command but
makefile doesnot generate any object files and quits building nothing, it
displays following message.
make[1]: Entering directory
`/home/stangeda/newlib_07152010/newlib_compile'
Configuring in ./etc
configure: loading cache ./config.cache
checking for a BSD-compatible install... /usr/bin/install -c
configure: creating ./config.status
config.status: creating Makefile
make[2]: Entering directory
`/home/stangeda/newlib_07152010/newlib_compile/etc'
for f in standards.info configure.info; do \
if test -f ../../newlib-1.18.0/etc/`echo $f | sed -e
's/.info$/.texi/'`; then \
if make "MAKEINFO=makeinfo --split-size=5000000
--split-size=5000000" $f; then \
true; \
else \
exit 1; \
fi; \
fi; \
done
make[3]: Entering directory
`/home/stangeda/newlib_07152010/newlib_compile/etc'
make[3]: `standards.info' is up to date.
make[3]: Leaving directory
`/home/stangeda/newlib_07152010/newlib_compile/etc'
make[3]: Entering directory
`/home/stangeda/newlib_07152010/newlib_compile/etc'
make[3]: `configure.info' is up to date.
make[3]: Leaving directory
`/home/stangeda/newlib_07152010/newlib_compile/etc'
make[2]: Leaving directory
`/home/stangeda/newlib_07152010/newlib_compile/etc'
make[1]: Nothing to be done for `all-target'.
make[1]: Leaving directory
`/home/stangeda/newlib_07152010/newlib_compile'
This is my first time playing with one such library, any suggestions are
highly appreciated to get me through this issue.
Thanks,
Sravs